20155313 杨瀚 《网络对抗技术》实验四 恶意代码分析
20155313 杨瀚 《网络对抗技术》实验四 恶意代码分析
一、实验目的
- 1.是监控你自己系统的运行状态,看有没有可疑的程序在运行。
- 2.是分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
- 3.假定将来工作中你觉得自己的主机有问题,就可以用实验中的这个思路,先整个系统监控看能不能找到可疑对象,再对可疑对象进行进一步分析,好确认其具体的行为与性质。
二、实验后回答问题
-
1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
-
答:我会考虑监控异常的网络连接、异常的端口输入、修改注册表等非法操作,分别使用
schtasks
、sysmon
和Process Monitor
系统检测软件进行监控。 -
2.如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
-
答:可以在命令行中使用
netstat
查看网络连接,并追踪外部IP地址;可以使用wireshark
捕获传输数据包并分析详细信息。
三、实验内容
第一阶段
-
1.首先我们使用schtasks指令监控系统来监控,这个监控系统是windows自带的功能,我们只需要创建一个文本文件来进行记录就可以了。
-
2.我们在桌面创建一个
netstat5313.txt
的文本文件,然后其中输入以下的内容:
date /t >> c:\netstat5313.txt //在netstat5313.txt中记录日期
time /t >> c:\netstat5313.txt //在netstat5313.txt中记录时间
netstat -bn >> c:\netstat5313.txt //在netstat5313.txt中记录本地计算机的网络连接情况
-
然后我们把文件的后缀名改成
.bat
,这是一个dos下的一个批处理文件格式,每当我们双击这个文件的时候就会调用cmd.exe来逐个执行.bat中的指令。 -
3.接着我们再创建一个
netstat5313.txt
的空白文件用来存储数据,再将这两个文件移动到c盘的根目录下(需要使用管理员权限)。 -
4.之后我们打开命令行使用
schtasks /create /TN netstat /sc MINUTE /MO 1 /TR "c:\netstat5313.bat"
创建一个监控任务,记录本地计算机每1分钟的网络连接情况。
-
5.在实验过程中我们会发现以下情况:
-
这说明我们的任务的权限不够,因此我们在重新使用管理员权限的cmd的同时还将计划任务中的权限提到最高,再次运行
.bat
的时候,我们就会发现.txt
文本上就开始记录网络连接情况。
-
6.但是我们在实验中也出现了一个问题,就是监控是每分钟都进行的(因为每分钟都会有小黑框弹出来,很影响玩游戏),但是文本是要运行
.bat
文件才能记录的。不过如果我们使用计划任务创建监控任务的话文本就会自动记录连接情况。
-
在计划任务中创建任务只需注意在添加操作的时候选择
.bat
的文件作为脚本就可以了。 -
7.因为周末出去的时候忘了将监控打开收集网络连接数据,所以就临时收集了一点数据做成了柱状统计图:
-
然后我也去查询源IP的网站上查找了一下这个连接最后的IP地址到底是谁,结果发现是微软爸爸,毕竟从操作系统到办公软件都是微软的产品,这么多的网络连接也算正常。
-
同时也批量处理了一部分IP地址,也发现一些比较奇怪的连接,比如巴西的IP?
第二阶段
- 1.然后我们换着使用sysmon工具进行系统监控,老师在码云中也给了我们实验指导。首先我们去Sysmon 4.00这个地址去下载这个监控软件,因为它不是自带的。然后我们将它解压,并在其解压目录里创建一个
test.txt
,在其中输入老师给的代码:
<Sysmon schemaversion="3.10">
<!-- 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>
- 配置好文件以后我们使用命令行切换到
.exe
文件指定文件目录下,使用
Sysmon.exe -i test.txt
进行安装。
-
2.如果你照着老师给的代码直接安装是会出问题的,因为版本号不对,错误提示如下:
-
只需要将上面的代码中的3.10改成4.00就可以了。再次运行安装命令就可以正常安装了。
-
安装完毕以后我们再使用
Sysmon.exe -c test.txt
更新配置,就可以使用啦~
-
3.然后我们使用事件查看器就可以查看相关的日志:
-
我们通过查询ID的号码可以知道这个事件的类型,下面举了几个比较常见的例子:
Event ID 1: Process creation
Event ID 2: A process changed a file creation time
Event ID 3: Network connection
Event ID 4: Sysmon service state changed
Event ID 5: Process terminated
- 这个是创建记事本进程的事件。
-
这个是360浏览器的进程修改文件的事件。
-
这个是运行上一次实验的后门程序的中止事件。
-
4.同时我们可以修改文本让监控系统选择监控的端口号、目的IP地址等信息。以下给出部分代码,用来监控80、443、5313端口,可以查看后门程序进行连接的5313端口的信息:
<NetworkConnect onmatch="include">
<DestinationPort condition="is">80</DestinationPort>
<DestinationPort condition="is">443</DestinationPort>
<DestinationPort condition="is">5313</DestinationPort>
</NetworkConnect>
- 修改完
test.txt
的代码以后,只需要在命令行中输入Sysmon.exe -c test.txt
更新配置就可以使用了。
第三阶段
- 1.now我们使用第二次实验制作后门程序放到VirusTotal病毒检测网站上进行测试,测试结果当然是很悲惨的:
- 查看详细信息。
第四阶段
-
1.最后我们使用systracer工具分析恶意软件,首先也是进行下载安装
Systracer。这个软件的安装没有特别需要注意的地方。 -
2.我们打开systracer,并且运行后门程序,建立一个快照,然后我们关闭后门程序,再建立一个快照。
-
我们使用软件下方的对比功能,将两次快照进行对比,观察后门程序对系统网络连接的影响。
-
结果是很明显的,首先两次的快照建立时间不同,肯定有不同的连接,同时也发现了我们关闭后门程序前后不同的连接状态。
-
3.我们也可以尝试使用Process Monitor v3.50来实时检测进程的状态,以下是运行后门程序时出现的进程异常:
-
点开这个连接,我们可以查看到具体的连接状态与安装属性。