20165101刘天野 2018-2019-2《网络对抗技术》Exp4 恶意代码分析
1. 实践目标
1.1是监控你自己系统的运行状态,看有没有可疑的程序在运行。
1.2是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
1.3假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
2. 实践内容
2.1 系统运行监控
(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
以管理员身份打开cmd,使用指令schtasks /create /TN 20165101netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt
创建计划任务20165101netstat,记录每1分钟计算机联网情况:
在桌面上创建一个20165101netstatlog.txt
文件,编辑文件内容如下:
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
保存后修改文件名为“20165101netstatlog.bat
”;
粘贴到C盘中,此时需要用管理员权限;
打开计算机管理的“任务计划程序库”,可以查看到20165101netstat任务就绪,打开其属性,修改其指令为c:\20165101netstatlog.bat
在属性中“条件”这一选项中的“电源”一栏中,取消勾选“只有计算机使用交流电源才启动此任务”,这里主要防止笔记本电脑一断开电源任务就停止
等待一段时间,将存储的数据通过excel表进行整理
总结:
由上图得知,最常用的几个进程是360se.exe(360浏览器)、vmnat.exe
(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
首先创建配置文件20165101sysmon.xml,文件中包含指令:
<Sysmon schemaversion=":4.20">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<DriverLoad onmatch="exclude">
<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>
<SourcePort condition="is">137</SourcePort>
<SourceIp condition="is">127.0.0.1</SourceIp>
</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>
在官网上下载sysmon工具
以管理员身份打开命令行,使用指令Sysmon.exe -i C:\20165101sysmon.xml
安装sysmon
安装成功
在事件查看器中的应用程序和服务日志下,查看Microsoft->Windows->Sysmon->Operational
。在这里,我们可以看到按照配置文件的要求记录的新事件,以及事件ID、任务类别、详细信息。
打开后门程序,在服务日志中发现了后门程序
2.2 恶意软件分析
分析该软件在(1)启动回连,(2)安装到目标机(3)及其他任意操作时(如进程迁移或抓屏,重要是你感兴趣)。该后门软件
(1)读取、添加、删除了哪些注册表项
(2)读取、添加、删除了哪些文件
(3)连接了哪些外部IP,传输了什么数据(抓包分析)
第一步:使用Systracer分析。
1.首先下载完成后进行安装,步骤为:agree->选第二个
2.设置监听端口号
3.在打开后门前先快照一下,点击“take snapshot”
本实验共拍摄五个快照
快照一:未移植后门程序
快照二:移植后门程序
快照三:运行后门程序并在kali中实现回连
快照四:在kali中使用dir
指令
快照五:在kali中使用record_mic
指令
4.分析结果
对比快照一和快照二,发现后门程序已经被植入电脑中
对比快照二和快照三,发现后门程序已经启动,并建立了TCP连接,同时增加了注册表主键
对比快照三和快照四,发现后门程序删除了一些注册表的主键,同时又增加了新的主键
对比快照四和快照五,发现发现后门程序删除了一些注册表的主键,同时又增加了新的主键。同时由于此时Windows Defender发现了后门程序,TCP连接中断。
第二步:使用wireshark分析。
1.在回连之前,开始捕获;
2.回连完成后结束捕获,并把过滤规则设置为ip.src == 192.168.1.172 or ip.addr == 192.168.1.172,这里我只想查看和虚拟机IP有关的数据包
3.这里我们可以看到完整的TCP三次握手协议
4.我们再Kali里输入dir指令,我们可以看到产生了大量的数据包。
第三步:使用peid。
下载Peid工具,对上次实验中用Veil生成的加壳的后门程序进行查壳
从上面我们可以看到该程序加的是UPX的壳,版本为0.89.6
加密壳貌似没成功
3. 实验后回答问题
(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所以想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
利用sysmon工具,配置好想要监控的端口、注册表信息、网络连接等信息,通过其生成的日志文件进行查看
利用wireshark查看数据包,但是由于数据量太大,分析起来比较困难
利用systracer进行快照,比照注册表、文件等信息
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
用wireshark分析数据包
systracer进行快照的对比(注册表、文件等)
peid查看是否加壳