2018-2019-2 20155334『网络对抗技术』Exp4:恶意代码分析
一、原理与实践说明
-
是监控你自己系统的运行状态,看有没有可疑的程序在运行。
-
是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
-
假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
二.实践过程记录
1.使用schtasks指令监控系统
-
使用
schtasks /create /TN netstat5334 /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c: etstatlog.txt"
命令创建计划任务netstat5334
,如下图所示:
-
在C盘中创建一个
netstat5334.bat
脚本文件
\netstat5334.bat
date /t >> c:
etstat5334.txt
time /t >> c:
etstat5334.txt
netstat -bn >> c:
etstat5334.txt
-
打开任务计划程序,查看新创建的任务
-
双击这个任务,点击操作并编辑,将“程序或脚本”改为我们创建的netstat5303.bat批处理文件,确定。
- 将记录信息导入excel进行分析
- 由上图可知使用最多的是
chrome.exe
原因是在做后续的实验时下载了大量的程序。
2.使用sysmon工具监控系统
System Monitor(sysmon)是由Windows Sysinternals出品的一款Sysinternals系列中的工具。它以系统服务和设备驱动程序的方法安装在系统上,并保持常驻性。sysmon用来监视和记录系统活动,并记录到windows事件日志,可以提供有关进程创建,网络链接和文件创建时间更改的详细信息。之后再结合WindowsEvent Collection或SIEM进行分析,可以识别网络上的异常入侵或运行的恶意软件。
特点:用完整的命令行记录下子进程和父进程的创建行为。使用sha1(默认),MD5,SHA256或IMPHASH记录进程镜像文件的hash值。可以同时使用多个hash,包括进程创建过程中的进程GUID。每个事件中包含session的GUID。
1. 记录驱动程序或者加载的DLL镜像的签名及其hash
2. 记录磁盘和卷的原始数据的读取请求
3. 记录网络连接,包括每个连接的源进程,IP地址,端口号,主机名和端口名(可选)
4. 如果更改注册表则自动重新加载配置
5. 具有规则过滤,以便动态包括或排除某些事件
6. 在加载进程的初期生成事件,能记录在复杂的内核模式运行的恶意软件
- 一键安装命令(需要以管理员身份运行cmd)
sysmon -accepteula -i -n
- 创建配置文件
Sysmon20165334.xml
<Sysmon schemaversion="4.00">
<!-- 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>5334</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.exe -c Sysmon20165334.xml
,将sysmon
按照修改好的配置文件进行更新。
- 打开【开始】菜单,搜索【事件查看器】并打开,在左侧控制台树按照【事件查看器】->【应用程序和服务日志】->【Microsoft】->【Windows】依次展开,找到【Sysmon】下的【Operational】并双击打开:
- 打开
teshell.exe
后门,Kali攻击机用meterpreter
回连,可以看到连接的详细信息,包括ip、端口、pid等:
3.使用VirusTotal分析恶意软件
- 把生成的恶意代码放在VirusTotal进行分析,基本情况如下:
- 可以看出它的SHA-1、MD5摘要值、文件类型、文件大小,以及TRiD文件类型识别结果。(注:TRiD通过读取文件头,根据特征码进行文件类型匹配。)
- 还可以看到加壳情况:
4.使用Process Monitor分析恶意软件
Process Monitor
是一款由Sysinternals
公司开发的包含强大的监视和过滤功能的高级Windows
监视工具,可实时显示文件系统、注册表、进程/线程的活动。
打开软件,可以看出其对各个进程的详细记录:
5.使用Process Explorer分析恶意软件
-
Process Explorer是由Sysinternals开发的Windows系统和应用程序监视工具,目前已并入微软旗下。不仅结合了Filemon(文件监视器)和Regmon(注册表监视器)两个工具的功能,还增加了多项重要的增强功能。包括稳定性和性能改进、强大的过滤选项、修正的进程树对话框(增加了进程存活时间图表)、可根据点击位置变换的右击菜单过滤条目、集成带源代码存储的堆栈跟踪对话框、更快的堆栈跟踪、可在 64位 Windows 上加载 32位 日志文件的能力、监视映像(DLL和内核模式驱动程序)加载、系统引导时记录所有操作等。
-
靶机运行木马,回连攻击机时,我们可以看到Process Explorer对其进行的记录:
6.使用PEiD分析恶意软件
- PEiD(PE Identifier)是一款著名的查壳工具,其功能强大,几乎可以侦测出所有的壳,其数量已超过470 种PE 文档的加壳类型和签名
- 检测以前加壳的后门
7.使用systracer分析恶意软件
-
给快照取名,使用默认设置,点击【确定】开始创建第1个快照Snapshot20165334 #1
-
Kali攻击机启动Meterpreter进行攻击,同时win7打开上次实验生成的后门程序5314.exe进行回连,并创建第2个快照Snapshot20155314 #2
-
Kali攻击机输入ls命令后,win7创建第3个快照Snapshot20165334 #3
-
Kali攻击机输入screenshot命令抓屏,win7创建第4个快照Snapshot20165334 #4:
-
启动回连时,注册表发生了变化
-
新增的文件
- 点击【应用程序】可发现后门程序对很多.dll文件都进行了修改!
8、抓包分析(WireShark工具)
- Kali攻击机打开监控,win7打开后门程序进行回连,此时Wireshark上捕获到了巨大的流量
- 将过滤条件设为IP=192.168.56.102(kali的ip)
三、问题回答
1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
- 可以使用systracer工具比较某个程序的执行前后计算机注册表、文件、端口的变化情况。
- 可以使用Wireshark进行抓包分析,然后查看该程序联网时进行了哪些操作。
- 使用netstat命令设置一个计划任务,指定每隔一定时间记录主机的联网记录等等。
- 可以通过sysmon工具,配置好想记录事件的文件,然后在事件查看器里面查看相关文件。
2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
- 可以使用systracer工具比较某个程序的执行前后计算机注册表、文件、端口的变化情况。
- 可以使用Wireshark进行抓包分析,然后查看该程序联网时进行了哪些操作
四、实验体会
通过这次实验,提高了对恶意代码的认识,体会道用工具分析而已代码,病毒程序的好处,提高了安全认识。