2018-2019-2 20165204《网络对抗技术》 Exp4 恶意代码分析
一、实践目标
监控你自己系统的运行状态,看有没有可疑的程序在运行。
试分析一个恶意软件,就分析Exp2或Exp3中生成后门软件;分析工具尽量使用原生指令或sysinternals,systracer套件。
二、实验内容
任务一:系统运行监控
1.使用schtasks指令监控系统(使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述分析结果)
- 首先使用指令
schtasks /create /TN netstat /sc MINUTE /MO 1 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
生成计划任务,将每分钟网络状况进行记录。
- 创建.bat文件于C盘,文件内指令为
date /t >> c:\netstatlog.txt
time /t >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
用于保证输出格式。
在计算机管理的任务管理库中,我们可以看到我们已经创建的任务。
其中我们需要将操作部分设置为刚刚创建的脚本文件,以便将内容记录到文件中。
在设置中还需要设置为最高权限运行,以及关闭交流电运行等一系列干扰其自启的选项。(电脑一整天都开着,关不关交流电没啥影响)
过一段时间后,生成文件。
在EXCEL中导入新生成的文件。将联网文件设置为统计数目的选项,看哪个进程进行网络连接次数最多。以下为统计图
可以观察到没有什么异常,而且我都认识这一堆进程都是啥,每天偷偷占用我的网速,什么[nvcontainer.exe]是 英伟达显卡驱动更新程序,[svchost.exe]是操作系统后台更新程序,打游戏突然丢包一般都是这几个东西偷偷更新。最多的[chrome.exe]就是浏览器啦。
扫描二维码关注公众号,回复: 5794191 查看本文章
2.使用sysmon工具监控系统
- 首先进行xml文件的编写。以下为我的XML内容。
<Sysmon schemaversion="3.10">
<!-- 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>
</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 C:\20165204sysmon.xml
安装成功后,可以在计算机管理中根据以下路径
/Microsoft/Windows/Sysmon/Operational
找到Sysmon的日志。
以下是对TIM的日志分析。可以在日志中观察到端口号、IP、相关协议等。
-但是VEIL生成的后门程序无法直接在日志中直接观察到端口号、IP等相关信息。
- 在运行过screenshot指令后,发现日志中多出了一个SearchProtocolHost.exe。上网查过之后发现是桌面搜索引擎的索引程序,它会在计算机空闲时自动扫描索引位置的文件名、属性信息和给定类别的文件内容。
任务二:恶意软件分析
分析该软件在、启动回连、安装到目标机、及其他任意操作时。该后门软件:
(1)读取、添加、删除了哪些注册表项
(2)读取、添加、删除了哪些文件
(3)连接了哪些外部IP,传输了什么数据(抓包分析)
使用腾讯哈勃来分析
因为ViruScan中总是不给出合适的行为分析信息,故我将后门程序上传到了腾讯哈勃上,进行分析。
可以看到其网络行为、注册表行为以及其他行为。
当我想要查看更多相关信息时,提示我充值会员,然而充值会员入口有关闭了,所以我只能了解到上图的少量信息。
VirusTotal
在Virustotal中我也能观察到相关行为的分析。可以看到我的后门文件在运行时会加载那些DLL文件。
Process Explorer
该软件的感觉和任务管理器差不多,都是监控进程的,现在任务管理器做的已经非常好用了,如果按照内存占用去观察的话,哪个后台程序基本上都无所遁形。
不过详细信息中能够比任务管理器更加细致。(而且为什么我名字的缩写也会在这个详细内容里?)
以下为任务管理器
SysTracer
该软件可以通过保存屏幕快照的方式进行比较分析,类似于实验中的控制变量法。
我共进行了3次快照拍摄,依次是正常状态、反弹连接成功、Kali端实施dir等操作三种情况。
对第一次与第二次进行比较,可以发现在系统中多出了Veildoor这个exe,以及我的主机与10.1.1.206(Kali主机IP地址)建立了TCP连接。应该是后门程序将真正的进行后门控制的程序通过TCP传输至了我的电脑。
以及其使用的端口、传输IP等信息
将第二次和第三次进行比较。发现在经过了dir、screenshot等操作后,veildoor程序有了大量的活动情况,增加了许多dll以及别的文件。
Wireshark
Wireshark这个工具算是老朋友了,使用起来也是得心应手。
打开包捕获,进行连接,关闭包捕获。
将IP过滤条件设置为ip.addr == 10.1.1.206
就可以只观察Kali主机和win10主机之间的通信了。
可以观察到三次握手的协议包。
以及每次传输所经过的端口。可以观察到主要发送了ACK、PUS包进行数据传输。
三、基础问答
1. 实验后回答问题
(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所以想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
答:使用不同的工具,监控自启动程序、监控网络流量、监控占用内存以及显卡性能的程序、监控注册表情况等。感觉最有用的还是进程监控,以及网络监控,因为所有程序不管想要做什么都逃不过要启动这一环节。而恶意代码想要将信息泄露,不通过网络是基本上不可能的,所以我更倾向于这两项监控指标。
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
答:按理来说第一反应应该是将有问题的程序删除,但是经过上次实验之后我发现应该给360多杀几次,这样全国人民中这个病毒的就都会被杀出来了(云查杀流啤)。如果我想进一步得到信息还是要先扔在沙盒里进行,以免造成更大的破坏。然后使用ViruScan、VirusTotal、腾讯哈勃等在线工具进行分析,或者再使用实验中使用到的众多工具对其行为、端口、目的IP等进行追踪,甚至可以根据这些信息找到恶意代码制作人的相关信息。这个恶意程序就像在实验笼里的小白鼠一样供人宰割了。
2.实验感想
本次实验对于曾经想尽一切办法提升家里电脑性能玩大型游戏的我来说没有什么问题,甚至还有一丝怀念。如何在爸妈不太会用的千疮百孔的电脑中关掉所有后台进程,如何在玩游戏的时候阻止任何程序占用我的网速,那些不受我控制的各种程序在我看来都是“恶意代码”。本次实验最重要的还是教会了我们怎么分析自己电脑的平时的状态,能够让自己的电脑真正成为自己的电脑。记得当时steam上有一款热卖的18X游戏,后来被人们发现是打着游戏的幌子在后台大量占用显存为游戏制作者挖矿。这种事情很多,不太懂的朋友们还是要多看看任务管理器,以免性能被奇怪的进程吃的七七八八。