2018-2019-2 20165115 《网络对抗技术》Exp4 恶意代码分析
-
- 使用计划任务等方式,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里,运行一段时间并分析该文件,综述一下分析结果.
- 安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点可疑行为.
-
-
对一个恶意软件进行分析,在其
- 启动回连
- 安装到目标机
- 其他任意操作时
-
该后门软件
- 读取、添加、删除了哪些注册表项
- 读取、添加、删除了哪些文件
- 连接了哪些外部IP,传输了什么数据
实验步骤
-
1.系统运行监控
1.1 Windows计划任务方式
-
以管理员身份运行命令行,使用指令
schtasks /create /TN 5115netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c: etstatlog.txt
,创建任务计划5115netstat
-
创建脚本文件netstat.bat
-
在脚本文件中添加如下内容
date /t >> c:
etstat5115.txt
time /t >> c:
etstat5115.txt
netstat -bn >> c:
etstat5115.txt
- 在任务计划中可以找到刚刚创建的netstat5115,对其进行编辑,在“操作”选项卡中,将“程序或脚本”的内容更改为上一步创建的netstat.bat;
- 执行次任务几分钟后,打开文件进行查看即可查看到记录的联网记录
- 将记录的数据导入到Excel中进行分析
1.2 使用sysmon工具
- 创建配置文件sysmon20165115.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>
<!-- Do not log process termination -->
<ProcessTerminate onmatch="include" />
<!-- Log network connection if the destination port equal 443 -->
<!-- or 80, and process isn't InternetExplorer -->
<NetworkConnect onmatch="include">
<DestinationPort>443</DestinationPort>
<DestinationPort>80</DestinationPort>
<DestinationPort>5314</DestinationPort>
</NetworkConnect>
<NetworkConnect onmatch="exclude">
<Image condition="end with">iexplore.exe</Image>
</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 -c Sysmon20165115.xml
命令指定配置文件.若此时出现版本匹配错误,更改文件中的版本即可;
-
重新配置,在事件查看器中依次找到[Microsoft]->[Windows]->[Sysmon]->[operational]并打开;
-
打开之前实验中植入的后门程序,并在kali当中进行回连;
-回到事件查看器中即可查看到结果
1.3 恶意软件分析
(1).使用virustotal进行扫描并查看分析结果
- 可以在后面的选项卡中查看该文件的具体信息,如SHA-1算法、MD5摘要值、文件类型、算法库支持情况等;
(2).使用Peid对上次实验中产生的后门程序进行查壳;
-
upx壳很容易就被发现了;
-
使用Hyperion加密过的壳没有被发现;
-
Peid还有一个功能比较强大的通用脱壳器,效果要比一般的通用脱壳器好.
(3).使用PE explorer进行反汇编、反编译
- 下载PE explorer工具,使用效果截图如下:
-
2.恶意软件分析
2.1 使用SysTracer工具进行快照对比
-
点击
take snapshot
存储快照- 快照一:移植后门程序
- 快照二:运行后门程序并在kali中实现回连
- 在kali中运行
ls
指令 - 在kali中运行
screenshot
指令
-
使用左下角
compare
按钮进行比较,勾选只查看不同的选项,可以对不同处进行比较 -
快照一和快照二的比较,最大的变化就是端口上出现了连接到kali的端口,显然是因为后门程序的回连
-
快照二和快照三的比较,还是在端口上出现的变化,应该是出现了一个删除操作,但具体的意义我还不太了解;
-
快照三和快照四的变化,主要是一些文件上的变化,这一次在端口上没有检测到变化,不知道原因是什么。
2.2 使用Dependency Walker进行dll文件的查看
- 下载完成后可以直接在win7中进行使用,使用的截图如下
实验总结
问题回答
(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控
- 对于Windows主机,可以通过任务计划设置每间隔一定的时间对主机的联网记录进行监控,从而发现是否存在异常情况
- 也可以使用诸如sysmon等工具,对一些端口、注册表等具体信息进行监控;
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息
- 通过systracer工具对不同的快照进行比较
实验感想
本次实验主要就是分析,通过分析之前学习并制作的恶意软件,提高了对这些恶意软件的了解并逐步学会如何对这些软件进行监控,以及怀疑自己电脑出现问题是如何进行排查。
这几次试验做下来,可以明显的感觉到杀毒软件并不能完全适应现在的恶意软件现状,所以掌握如何全面的检测主机现状就是非常重要的技术了。