网络对抗实验四
Exp4 恶意代码分析
1.实践目标
1.1监控你自己系统的运行状态,看有没有可疑的程序在运行。
1.2分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
1.3假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
2.实践内容
2.1系统运行监控
(1)计划任务
1.1首先写好批处理脚本20201214.bat
date /t >> C:\Users\20201214.txt
time /t >> C:\Users\20201214.txt
netstat -bn >> C:\Users\20201214.txt
1.2 添加任务计划(每分钟记录一下网络状态)
schtasks /create /TN netstat /sc MINUTE /MO 1 /TR "C:\Users\20201214.txt"
打开任务计划程序
win R + taskschd.msc
找到刚刚创建的任务,查看它的属性
在常规中选择使用最高权限运行,在条件中关闭电源限制
在操作中把要执行的 cmd 改成之前写好的 bat 脚本
之后 windows 就会每个一分钟,执行一次指定的脚本。这里要注意写入的文件不可以和之前的.txt文件重名,否则会导致无法写入。
1.3 日志数据分析
然后使用 Excel 分析刚刚脚本产生的数据
导入数据、设置分割符
选择数据源为刚刚的txt文件,并且设置分隔符勾选所有符号。
之后选择插入,数据透视图,获得“协议”的统计分析。
(在这里我忘记把无用的字段删去,将就看看)
进行排列之后就可以看见了。把这些进行百度一下,可以看见好像都没啥问题,是比较合理的应用,我就没有详细地查询下去。
(2)sysmon实现系统运行监控
sysmon是由Windows Sysinternals出品的一款Sysinternals系列中的工具,用来监视和记录系统活动,并记录到Windows事件日志,可以提供有关进程创建、网络链接和文件创建时间更改的详细信息。
编写配置文件如下:
chrome.exe
QQBrowser.exe
<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">winlogon.exe</TargetImage>
<SourceImage condition="end with">powershell.exe</SourceImage>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>
启动sysmon,输入.\Sysmon.exe -i sysmon1218.xml开始安装sysmon
Win+R再输入eventvwr.msc打开事件查看器
应用程序和服务日志 -> Microsoft -> Windows -> Sysmon -> Operational
使用程序二生成的后门软件20201214.exe(在这里我直接把他从kali里复制到主机文件夹)按照后门程序进行配置,输入exploit,并在Windows中运行20201214.exe,成功连接到Windows,在Kali获取的反弹窗口中输入时间指令.(也就是先shell,后在kali的cmd里输入time获取时间)
根据回显的时间在WIndows事件查看器中查找sysmon的进程创建事件
可以看见采用tcp进行的连接。
2.2恶意软件分析
(1)wireshark流量抓包
由于我们是在虚拟机上,所以本次捕包使用的是VMware Network Adapter VMnet8.
限制条件为ip.addr == 192.168.249.131 && tcp(tcp是上一步得出的)
然后统计流量图,就可以看见流量包的发送与接收了
是不是49352端口呢?
看来确实是它。我们开始进行分析其中一个。
选择一个,wireshark就会自动显示对应的流量包,我们打开来看看。
显示了源端口和目的端口。
点开TCP层,就可以看见详细的源地址和目的地址,以及传输的数据大小。
(2)Systarcer
我先为主机拍摄了快照。
随后为虚拟机进入了shell的主机拍摄了快照。
把他们两个compare一下,注意勾选只看不同。
绿色是增加,红色是减少。
很明显,我的电脑上的恶意软件运行了,然后还打开了我的cmd窗口。但是还出现了一个conhost.exe,有点可疑,查了一下是命令行窗口的宿主进程,可以理解。
随后我们找到最上面的export differences输出为一个pdf文件
就可以看见这个恶意软件究竟在干嘛,可以看见给我加了许多dll文件,然后也可以看见tcp协议以及两个源地址之类的,我尝试打开dll文件看看是啥,发现完全不明白。
随后百度其中一个原来是为了在64位的电脑上运行32位的进程(wow64.dll),而我们的cmd.exe恰好就是一个32位的命令行程序,也就是说20201214_backdoor.exe为了要打开cmd,然后还为我们自动开启了wow64.dll。
(3)PE Exploer
在PE Exploer中打开后门程序backdoor.exe,显示出文件头信息,在图片中我们可以看到平台类型、节的数量、时间戳、符号表的位置、可选文件头、代码节的大小以及优先装载地址等信息.
点击视图里的导入,就可以看见它使用了哪些dll文件。
还可以点击视图里的资源,
可以查看到VirusTotal里的版本信息。
当然还可以反汇编一下这个软件,就可以知道这个软件到底要干嘛了。
实验到这里也结束了。
基础问题问答
(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
我认为需要监控端口连接情况、注册表信息和文件信息。
像实验中的操作一样,可以使用wireshark抓包分析,分析网络连接状态;查看软件注册表信息;使用Systracer或者sysmon等软件查看一段时间内系统事件、注册表信息文件变化情况,将这些信息录入excel中分析。
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息?
可以用Systracer分析注册表差异和文件的不同;
可以用wireshark查看数据包,查找可疑的数据连接;
还可以用virscan、Threatbook等软件分析工具来得到各种杀软报毒的疑似病毒,以及得到一些可疑签名、静态信息等。
实验总结与体会
本次实验难度较大,实验的重点就在于分析。我们需要运用各种软件对恶意代码进行分析,不仅仅是动态的,也需要包括静态的。我个人觉得比较困难的是wireshark流量抓包分析,由于对于各种流量包比较陌生,这就导致了我的分析较为浅显以及简单。
这次试验所使用的多种工具给了我极为深刻的印象,通过两张快照的前后对比就可以看出一个恶意软件做了什么,这加深了我对于这门课程的理解。