网络对抗实验四 恶意代码分析
实践内容
(一)系统运行监控
1.使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
首先写好批处理脚本netcontrol1206.bat
date /t >> C:\Users\18824\Desktop\netstatlog.txt
time /t >> C:\Users\18824\Desktop\netstatlog.txt
netstat -bn >> C:\Users\18824\Desktop\netstatlog.txt
用命令行创建任务计划
schtasks /create /TN netcontrol1206 /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > C:\Users\18824\Desktop\netstatlog1206.txt"
Win+R
再输入taskschd.msc
打开任务计划管理窗口
在常规中选择“使用最高权限运行”
将“只有在计算机使用交流电源时才启动此任务”勾掉
选择批处理文件
等待一段时间即可获得在所创建任务计划netcontrol1206监视下获得的数据
在收集一定数量的数据后停止任务,将所得数据导入Excel中,在“数据”选项栏中选择“导入数据”
勾选所有的分隔符号,插入数据透视图,获得“协议”的统计分析
可以发现其中TCP检测到次数最多,为226次,第二多的是[chrome.exe]谷歌浏览器
同理可获得“外部IP” 的数据透视图
查询其中访问次数较多的一个外部IP172.217.160.74
另一个外部IP157.148.62.239
可以发现其来源于广东广州,是联通的网络
2.安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为
编写xml配置文件,xml关系如下
<Sysmon schemaversion="4.81">
<!-- 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>
<Image condition="end with">QQBrowser.exe</Image>
</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">winlogon.exe</TargetImage>
<SourceImage condition="end with">powershell.exe</SourceImage>
</CreateRemoteThread>
</EventFiltering>
</Sysmon>
输入Sysmon.exe -i sysmon1206.xml
开始安装sysmon
安装完成
Win+R
输入eventvwr.msc
打开事件查看器
应用程序和服务日志 -> Microsoft -> Windows -> Sysmon -> Operational
用Kali的windows/meterpreter组件生成Windows下的exe后门,并按照后门程序进行配置(实验二内容)
在WIndows事件查看器中查找sysmon的进程创建事件
(二)恶意软件分析
1.用wireshark分析TCP流量包
三次握手原理:
打开wireshark开始抓包,在Kali中打开msfconsole并进行监听,在Windows上运行20201206_backdoor.exe后门程序,Kali攻击机中通过TCP反弹获取到Windows端口
过滤wireshark捕获的包,筛选ip.addr == 192.168.217.135 && tcp
框中的内容为TCP的三次握手
2.使用SysTracer分析
systracer工具链接:https://gitee.com/wildlinux/NetSec/attach_files
systracer可以记录下计算机某个时刻的状态。然后过一段时间后再次记录。通过比较两次记录中计算机的不同进行相应的分析。
若出现提示systracer not registered
,是因为免费版的只能用五次,解决办法卸载后重新下载就可以用了
我进行了三次snapshot
第一次是初始状态
第二次是是攻击机已经通过reverse_tcp攻击成功后的状态
第三次是攻击机进入到靶机的shell后的状态
比较第一次和第二次的不同
比较第二次与第三次的不同
3.使用Process Explorer分析恶意软件
下载链接:https://download.sysinternals.com/files/ProcessExplorer.zip
打开procexp.exe
Process Explorer可以监听到电脑上所有正在运行的程序,找到可疑行为,仔细观察是否有后门程序
通过Process Explorer中的Find工具查找使用了cmd的进行,直接定位到后门程序20201206_backdoor.exe
选中此后门程序后,可以直接点击Kill Progress杀死进程
报告内容
(一)实验后回答问题
1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所以想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- 可以使用windows自带的schtasks,设置一个计划任务,设置适当的时间间隔让它全天都监控,导入WPS,制作出数据透视表和数据图表,根据联网次数排查出有疑点的进程,针对这部分进程进行静态或动态分析。
- 使用Process Explorer监视主机状态,查找与该进程相关的句柄,看看其是否进行了危险操作(如运行cmd.exe等)
- 使用systracer工具建立不同的快照,然后进一步分析注册表、端口、文件等变化情况
2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息.
- 静态分析
- 用PE Explorer工具,对该程序进行抽丝剥茧地探查,这款工具的反汇编功能很强大,还可以扫描和显示处该程序依赖于外部的DLL列表,知道这个进程都有哪些功能模块
- 使用IDA对程序进行静态分析,反汇编代码并进行进一步分析
- 动态分析
- 使用Wireshark抓包,分析恶意软件的通信过程
- SysTracer记录不同时刻系统的快照,对比不同时刻系统在注册表、磁盘文件、应用程序活动等方面的差异,发现该进程或程序都对自己的电脑做了哪些修改,好让自己知道自己应该采取什么样的应对措施进行弥补
- Process Explorer可以看的很清楚这个进程的实施者、端口等等
(二)实验总结与体会
这次试验任务量比之前的三次实验大了很多,而且比较侧重于自己分析,通过利用一些专业的分析工具,可以对恶意代码进行静态和动态的分析,这些工具除了wireshark在之前学习使用过,其他工具都是从没有听说过,通过这些工具的使用也让我对恶意代码有了更深的认识。