Exp 4 恶意代码分析

一、实验要求

1.实践目标

  •  是监控你自己系统的运行状态,看有没有可疑的程序在运行。
  •  是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
  •  假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。

2.实践内容

  •  系统运行监控

(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。

(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。

  •  恶意软件分析

分析该软件在启动回连、安装到目标机及其他任意操作时,该后门软件:

(1)读取、添加、删除了哪些注册表项

(2)读取、添加、删除了哪些文件

(3)连接了哪些外部IP,传输了什么数据(抓包分析)

二、实验过程

(一)系统运行监控

 1.使用计划任务和netstat监控

(1)在桌面创建名为“netstat4312.txt”的文件,并在文件中输入以下内容:

date /t >> C:\netatat4312.txt
time /t >> C:\netstat4312.txt
netstat -bn >> C:\netstat4312.txt

 将文件另存为“netstat4312.bat”,并且将“netstat4312.bat”复制到C盘的根目录下

 在任务计划程序中设置任务计划,步骤如下图所示:

在右侧选择“创建任务”

对任务的名称进行填写(我做实验时,下面若选“只在用户登录时运行”,不会报错,选另外一个则会让输入密码,但是我的计算机其实并未设置密码):

 设置触发器:(此处设置的是每5分钟运行一次,持续一个小时)

 新建操作时,选择之前创建好的“netstat4312.bat”文件:

 可以看到任务计划已经在列表中:

 (2)在一个小时后,参考同学的博客,将记录的文本数据导入Excel,并制作出柱状图进行分析:

分析结果:360tray.exe是360安全卫士实时监控程序;360wpsrv.exe是360壁纸的可执行文件

                  FlashHelperService.exe是Flash Player的进程(看百度上说 ,这个进程好像会不停地推送广告);

                  NeteaseMusic.exe是网易云音乐下载器,当时正在使用网易云;

                  SogouExplorer.exe是搜狗浏览器进程;

                  SearchUI.exe是windows10小娜的搜索进程;

                  svchost.exe是一个属于微软Windows操作系统的系统程序(不可中断或关闭);

                  video.ui.exe是win10自带的视频播放工具(在记录的时间段内,我并未播放视频);

                  windows.media.background.playback.exe可以一次点击简单删除启动程序、浏览器辅助对象、工具栏、服务等;

在百度FlashHelperService.exe后,发现是推送广告的流氓软件,电脑确实会时不时弹出广告,现在已卸载,观察一段时间是否还会有弹窗广告。

2.使用sysmon监控

 (1)编写名为“sysmon4312.xml”的配置文件,内容如下:

<Sysmon schemaversion="10.42">
  <!-- Capture all hashes -->
  <HashAlgorithms>*</HashAlgorithms>
  <EventFiltering>
    <!-- Log all drivers except if the signature -->     
    <!-- contains Microsoft or Windows -->
    <DriverLoad onmatch="exclude">           //驱动签名为微软和windows的可以免检
      <Signature condition="contains">microsoft</Signature>      
      <Signature condition="contains">windows</Signature>
    </DriverLoad>

    <NetworkConnect onmatch="exclude">        //网络链接若是免检,需要满足以下条件
      <Image condition="end with">chrome.exe</Image>    //谷歌浏览器
      <Image condition="end with">iexplorer.exe</Image>    //ie浏览器
      <SourcePort condition="is">137</SourcePort>         //目的端口为137,提供局域网中ID或ip查询服务
      <SourceIp condition="is">127.0.0.1</SourceIp>      //源ip为127.0.0.1,即本机ip
    </NetworkConnect>

    <CreateRemoteThread onmatch="include">          //远程线程创建必检条件
      <TargetImage condition="end with">explorer.exe</TargetImage>
      <TargetImage condition="end with">svchost.exe</TargetImage>
      <TargetImage condition="end with">winlogon.exe</TargetImage>
      <SourceImage condition="end with">powershell.exe</SourceImage>
    </CreateRemoteThread>
  </EventFiltering>
</Sysmon>

 (2)下载安装sysmon

下载老师提供的SysinternalsSuite201608压缩包,并解压。

使用管理员身份运行cmd命令(不使用管理员身份会提示权限不够),之后先使用cd进入之前下载好的文件解压后的目录,输入命令 .\Sysmon.exe -i C:\Users\zzzyyy\Desktop\sysmon4312.xml 安装sysmon,报下图所示错误:(看英文好像是版本不正确的原因)

解决办法是从官网下载sysmon安装包,并解压,然后将“sysmon4312.xml”放在解压后的文件夹里,接着以管理员身份运行cmd命令,使用cd命令进入Sysmon64.exe所在目录,输入 Sysmon64.exe -i sysmon4312.xml 进行安装(弹窗选择agree),可成功完成:

 (3)使用sysmon

进入【事件查看器】,【应用程序和服务日志】-【Microsoft】-【Sysmon】-【Operational】,查看根据“sysmon4312.xml”记录的信息。在此随便看了两个:

 mmc.exe是Windows管理控制程序,是显示管理插件的控制面板,例如驱动器管理。

 另外一个是有道词典的进程信息。

(二)恶意软件分析

 1.wireshark抓包分析

(1)打开之前可以使用的wireshark时,说找不到接口,在网上查了一下,需要单独下载一个npcap并安装,再打开wireshark就不会报错了。

(2)分别在恶意软件启动回连、安装到目标机、击键、截取目标屏幕时,用wireshark捕包

 (3)对抓到的包进行分析

       双方传递了大量的tcp包,但是我看了几个包的详细内容,并没有发现什么可疑之处。从包的详细信息里,没有看出具体传了什么。能看出kali接受信息的端口是之前设置好的5313号端口。从sysmon记录的日志来看(如下图),使用过一个与图片有关的应用“backgroundTaskHost.exe”,猜测此应用的使用是否和截屏操作有关。

2.使用SysTracer分析

(1)安装SysTracer。安装包可以从老师给的附件里面下载,安装步骤如下:

 

 (2)使用SysTracer

  • 在windows使用systracer进行快照,记为#1
  • 将恶意文件植入目标机,记为#2
  • 目标机回连,记为#3
  • 在kali中获取击键记录,记为#4
  • 在kali中进行屏幕抓取,记为#5

 (3)分析

将#1(没有植入恶意文件)与#2(植入恶意文件后)对比,注册表有如下变化:

  在网上查到:hkey_current_user包含当前登录用户的配置信息的根目录,用户文件夹、屏幕颜色和控制面板均存储在此处;

                     hkey_local_machine包含针对该计算机(对于任何用户)的配置信息;

                     hkey_users包含计算机上所有用户的配置文件的根目录,hkey_current_user是它的子项。

 并且可以找到恶意文件:

 将#2和#3对比,可以看到后门程序在运行:

       注册表有增加也有减少,比如显示“del”的wmiprvse.exe,是windows操作系统的一个组件,能够实现为用户提供管理信息的控制功能,比如显示“add”的SmartScreen是一种帮助检测仿冒网站的功能。

 3.使用PEiD(PE Identifier)分析

PEiD是一款著名的查壳工具,在此使用此工具对之前实验生成的文件进行检查。

对只经过upx加壳的恶意程序进行检查:

对只经过hyperion加壳的恶意程序进行检查:

对先经过upx加壳,再经过hyperion的恶意文件检查:(这个结果就很迷惑,不是PE文件?)

 

 4.使用PE explorer分析

(1)网上下载并安装

(2)打开实验三产生的经过upx加壳的文件

 

查看dll库:(dll文件是动态链接库文件)

        其中:kernel32.dll控制着系统的内存管理、数据的输入输出操作和中断处理;

           msvcrt.dll是微软在windows操作系统中提供的C语言运行库执行文件,其中提供一些C语言库函数的具体运行实现;

           user32.dll是windows用户界面相关应用程序接口;

           wsock32.dll支持很多Internet和网络应用程序。

4.virustotal上检测

三、实验总结

1.实验体会

        总体感觉实验操作上是比较简单的,但是实际分析比较难。比如分析wireshark捕到的包,只能看懂一些很浅显的东西,太深的就看不懂;用sysTracer快照对比注册表和文件的变化,只能通过百度来看看都是什么文件改变了,这些文件是干什么用的,其它则并不是很清楚。成功卸载了flash helper service这个插件,感觉有点开心。

2.问题回答

(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。

答:用windows计划任务记录主机的联网行为,通过Excel转成柱状图可以很直观的看出连接了哪些网址,查看ip更方便简洁;看sysmon记录的日志,主机都调用了哪些可执行文件,但是我觉得日志有点多,每个都看有点困难;wireshark捕包分析;sysTracer快照对比,看主机文件变化。

(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。

 答:把多余程序关掉,只运行这一个程序,排除过多干扰。看sysmon记录的,这个程序运行时调用了什么其他可执行文件;wireshark捕包,看此程序连接了哪些网络;计划任务监控方便统计连接每个网址的次数;systracer快照对比,看此文件运行时更改了哪些注册表或其他文件;利用 PE  explorer反汇编,看源代码有没有什么问题(虽然我觉得这很难做到)。

posted @ 2020-04-17 23:26  zhaiying0000  阅读(724)  评论(0编辑  收藏  举报