2019-2020-2 20175309刘雨恒 《网络对抗技术》 EXP4恶意代码分析
一、实验任务
(一)实验目标
·监控你自己系统的运行状态,看有没有可疑的程序在运行。
·分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
·假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
(二)实验内容
系统运行监控
(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包 的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
恶意软件分析
分析该软件在启动回连,安装到目标机及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。
·读取、添加、删除了哪些注册表项
·读取、添加、删除了哪些文件
·连接了哪些外部IP,传输了什么数据(抓包分析)
二、实验步骤
1.使用schtasks指令监控系统
使用命令schtasks /create /TN netstat5309 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
创建计划任务netstat5309
新建schtasks5309.bat,输入以下内容:
date /t >> c:\netstat20175309.txt
time /t >> c:\netstat20175309.txt
netstat -bn >> c:\netstat20175309.txt
打开计算机管理的任务计划程序库,可以看到我们新创建的这个任务
双击这个这个任务,点击操作-->编辑-->程序或脚本,改成我们新建的net5309.bat
。
在常规
一栏选择不管用户是否登录都要运行
和使用最高权限运行
。
之后打开netstat5309.txt
即可查看运行结果,累计十多个小时后,通过WPS将数据整理成图如下:
可以看出,除了TCP之外,用的最多的就是VM虚拟机,QQ以及微信(WeChat),其他并没有什么可以的程序。
2.使用sysmon工具监测系统
下载SysinternalsSuite.zip并解压
选择Sysmon64.exe
,右键属性
,打开详细信息
,查看版本,发现是10.42。
之后在这个目录下编写sysmon20175309.xml
<Sysmon schemaversion="10.42">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<ProcessCreate onmatch="exclude">
<Image condition="end with">chrome.exe</Image>
</ProcessCreate>
<ProcessCreate onmatch="include">
<ParentImage condition="end with">cmd.exe</ParentImage>
</ProcessCreate>
<FileCreateTime onmatch="exclude" >
<Image condition="end with">chrome.exe</Image>
</FileCreateTime>
<NetworkConnect onmatch="exclude">
<Image condition="end with">chrome.exe</Image>
<SourcePort condition="is">137</SourcePort>
<SourceIp condition="is">127.0.0.1</SourceIp>
</NetworkConnect>
<NetworkConnect onmatch="include">
<DestinationPort condition="is">80</DestinationPort>
<DestinationPort condition="is">443</DestinationPort>
</NetworkConnect>
<CreateRemoteThread onmatch="include">
<TargetImage condition="end with">explorer.exe</TargetImage>
<TargetImage condition="end with">svchost.exe</TargetImage>
<TargetImage condition="end with">firefox.exe</TargetImage>
<TargetImage condition="end with">winlogon.exe</TargetImage>
<SourceImage condition="end with">powershell.exe</SourceImage>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>
之后以管理员身份进入cmd,进入这个目录,输入命令Sysmon.exe -i sysmon20175309.xml
启动。
单击agree
,启动成功。
打开计算机管理——>事件查看器——>应用程序和服务日志——>Microsoft——>Windows——>Sysmon——>Operational,可以查看根据配置信息记录的进程信息。
翻到最后可以看到sysmon20175309
的配置信息
3.恶意软件分析
用实验三的生成的后门程序回连kali虚拟机
打开wireshark捕包这次连接过程(数据太多,我只截取三条)
可以很清楚的看出回连的过程建立了三次握手连接,由win10(192.168.95.1)连接kali(192.168.95.128)
之后可以成功地在日志中找到我的后门程序backdoor5309
尝试使用命令screenshot
截屏,查看会发生些什么。
·首先wireshark出现一大堆数据,可以肯定有数据在传输,具体的就不太懂了。
·查看日志,更新了好多条,这里选出两条。
这一条很直观,VM的活动被记录。
这一条是截图工具SnippingTool
的工作情况。
之后又尝试了其他几条命令,都有很多的数据传输和日志记录,在这就不一一列举了。(其实是忘了截图)
使用Systracer进行分析
下载Systracer并安装
记得输入自己的专属端口号
安装完成后进入进行拍照Take snapshot
。
我只拍照了三次便提示了被限制,也不晓得为什么。
第一次时未植入后门程序,第二次植入了后门程序,第三次回连之后。
回连之后,点击上方Applications
——>左侧Running Processes
——>找到后门程序backdoor5309.exe
——>Opened Ports
,可以看到回连的地址和端口号
点击右下角的View differences list
,比较这三次的差别。
第一次和第二次
发现了我们的后门程序
同时还增删了很多的文件和注册表(有很多被拒绝了无法查看)
第二次和第三次
这次在运行的程序中发现了我们的后门程序
这里还看到了回连的IP地址和端口,侧面证明了我们回连成功。
其他静态分析
这里使用PEiD,一个专门查壳的工具。
·先查杀没有任何处理的后门软件。
·再来查杀加了压缩壳的后门软件。
·最后查杀在压缩壳基础上又加加密壳的后门软件。
显而易见,压缩壳会被查出来,而加密壳没有被查出来。
最后再用我们的老朋友——Virustotal扫描一下
结果如下:
三、思考题:
1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所以想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
答:这次实验已经教会了我们几种方法:用schtasks指令监控系统、用sysmon记录系统日志、还可以用Systracer拍照对比前后有什么不同。
2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
答:用Systracer提供的对比情况进行分析查看它对注册表和其他文件的修改情况。
四、实验感想
本次实验并不困难,只是需要下载的软件比较多。上次实验教会我们怎样把自己的“矛”(后门程序)变得更加“锋利”(避免查杀),这次学会了怎样使自己的“盾”(保护程序)变得更加“坚固”(记录后门程序行踪),学习网络对抗技术很类似于打篮球,蓝球场上都说防守赢得总冠军,把自己保护好至少保证自己不吃亏,仅仅会进攻极有可能换来的是伤敌八百自损一千的赔本买卖,只有把“盾”变得更加坚固,才能更好的使用自己的“矛”,至少保证不能后花园起火。