实验四 系统监控与恶意代码分析
实验原理与要求
这次试验主要做系统监控,利用netstat监控网络状态,使用sysmon软件生成日志文件,都能达到监控的目的。
恶意代码分析主要根据systracer和wireshark进行行为跟踪,分析代码的功能和目的,推断出病毒的行为类型和目的。还可以依靠virustotal等网站帮助检测软件行为!
实验步骤
netstat实现网络监控
netstat是一款多平台通用的网络监控指令,在Windows下直接打开命令提示符,敲入netstat命令后就可以实现网络监控,个人感觉有点像抓包的那些软件,我觉得这个实验开一天的抓包也不是不行。。。如果可以的话-_-||
这个是命令运行后的效果。
如果感觉哪里不对劲的话,大概是目标看不大明白,这个时候使用netstat -n就可以转化为查看IP地址,是不是一目了然?
接下来修改一下我们的计划任务,可以自动收集好……长时间的网络连接动态信息。
首先创建一个文件c:
etstatlog.bat,然后在文件内写入以下信息:
date /t >> c: etstatlog.txt
time /t >> c: etstatlog.txt
netstat -bn >> c: etstatlog.txt
emmmmm.......然后打开管理员模式的命令提示符(亲测Windows Powershell管理员也是可以的,右键点击开始键就可以看到了),输入命令
cmd /c netstat -bn > c: etstatlog.txt
这样,电脑的每五分钟计划任务就会被替换为上面文件内容的任务,大概就是将时间日期和netstat命令得到的信息都添加在c:
etstatlog.txt文件里面,这样,文件里面的东西就很整齐了。看一下效果:
这个可以放在Excel文件里面统计数据!
Windows10 的电脑可以很轻松地放到控制面板->计划任务中去,还可以很自由地设置触发器规则,不用担心停不下来的问题!
直到现在都是在我的主机下面做的,完全没考虑那么多,所以我只想先把计划任务关掉!不多说了我去开我的虚拟机去了……
sysmon实现日志监控
这个软件并不是Windows的自带软件,所以命令行中不管怎么敲都是没有用滴!可以的话从Microsoft官网上下载一个(度娘搜索sysmon就可以看到!),我个人觉得用起来不是很舒服,所以最后还是选择下载了老师提供的3.10版本。
首先编写一个设置文件,用来设置sysmon监视的内容,语法与XML文件很相似,但是首次接触的人们学习起来还是有一些困难的,不得不编写比较多的次数才能做到不出错。。。做这个实验的大部分时间就是花在这里了。
就是这样!(烦死了,吐槽一下老师应该不会看见)
最终文件内容如下:
<Sysmon schemaversion="3.10">
<EventFiltering>
<DriverLoad onmatch="exclude">
<Signature condition="contains">Microsoft</Signature>
<Signature condition="contains">Windows</Signature>
</DriverLoad>
<NetworkConnect onmatch="include">
<DestinationPort>443</DestinationPort>
<DestinationPort>80</DestinationPort >
</NetworkConnect>
<FileCreateTime onmatch="exclude" >
<Image condition="end with">MicrosoftEdge.exe</Image>
</FileCreateTime>
<NetworkConnect onmatch="exclude">
<Image condition="end with">MicrosoftEdge.exe</Image>
<SourcePort condition="is">137</SourcePort>
<SourcePortName condition="is">llmnr</SourcePortName>
<DestinationPortName condition="is">llmnr</DestinationPortName>
</NetworkConnect>
</EventFiltering>
</Sysmon>
这就是我花了好大劲设计出来的监视设置,这个语法掌握还需要很长时间,在过程中经常会出现“含有无法辨认的字符”以及某个标签内不能含有文本之类的错误提示,大多是不小心才会犯下的错误。
通过之后大概是这样的效果(细节,这里要用管理员权限运行,如果不用管理员权限肯定是不行的,但是在检查配置文件错误的时候并不影响):
然后去事件与日志查看器中去看一下我们抓到的日志!看看有没有什么不是很正常的地方?我的好像是没有吧……
开启我们在实验三中制作的后门,然后观察我们的日志文件,看看,观察到了一点点猫腻呢!
每次查看日志,只需要在事件与日志查看器,按照以下路径打开文件夹(Applications and Services Logs/Microsoft/Windows/Sysmon/Operational),找到最后的文件,就可以查看到sysmon监视的日至事件。
systracer进行恶意代码分析
这个环节需要用到一个软件叫做SYSTracer,在这里可以用来对比两个时间点的计算机状态发生了什么变化。
原理上就是先在正常状态下拍摄一个系统快照(跟虚拟机那个快照很像),然后再对比一下病毒开启状态下的系统快照有什么不一样的地方,控制变量法分析恶意代码。如果你的电脑本来就有病毒,辣么你就可以直接研究啦!(开个玩笑-_-||)
两个快照拍下来啦!第一个是我在正常状态下的快照,然后运行后门程序,在进程还存在的时候再拍一个快照!(为了保证这段实验的效果,推荐关掉一些比较活跃的进程,不然会干扰判断)
这是对比两个快照的详细信息,其中可以看出来我的后台还在运行着搜狗拼音输入法和Cortana(微软小娜)两个程序,还有我的后门程序加入了进程,还有很多我看不太懂的东西…………希望老师满足在下的好奇心!(老师看这里看这里 ( ^ o ^)/~)
Wireshark抓包观察恶意代码的网络使用状况
Wireshark是一款网络分析时常用的网络监听软件,这个软件会把网卡调整到混杂模式,在这个模式下网卡会接收所有它能听到的数据包,软件就会将这些数据包统统监听下来,进行一些简单分析。
这个实验中我们还是先关掉一些网络活跃的进程,或者好好设置一下抓包规则,这样方便我们观察网络情况。我们还是观察后门程序的网络情况。
可以很舒服地看到我的受感染机(192.168.43.16)发起反弹连接,连接到控制端(Linux192.168.43.74)ARP协议内容可以看得出来哟!
这里我觉得大概就是传送命令的地方(直觉,我觉得是这里)因为这里不一样了。
实验感想
由于这个计划任务搞得有点晚(之前代码敲错了一直在覆盖原文件而不是追加在文件尾,收集的数据并不多),还没能做到数据统计,会补上这一条。
由于我们的计算机操作系统非常复杂,在查看两个快照对比的时候,还是有很多阅读困难的,不能很敏锐地观察到恶意代码的存在,如果这不是自己写的代码,或许我们还不能从sysTracer中发现病毒的踪迹,这一点看得出来我们还有很多需要学习的地方。
这次试验的实用性还是很高的,也增强了我们的保护意识和计算机防御能力,提供了除依赖杀毒软件以外的防御方式。