Exp4 恶意代码分析 20164309
实践内容
一、系统运行监控
(1)使用如计划任务,每隔一分钟记录自己的电脑有哪些程序在联网,连接的外部IP是哪里。运行一段时间并分析该文件,综述一下分析结果。目标就是找出所有连网的程序,连了哪里,大约干了什么(不抓包的情况下只能猜),你觉得它这么干合适不。如果想进一步分析的,可以有针对性的抓包。
①使用计划任务监控联网情况
以管理员身份运行命令提示符
输入 schtasks /create /TN 20164309netstat /sc MINUTE /MO 5 /TR "cmd /c netstat -bn > c:\netstatlog.txt"
其中TN是Task Name;SC:是SChedule type;MO是 MOdifier;TR:是Task Run
这里有一些小小的问题,尽管我们是以管理员身份运行的命令行提示符,但是在计划中的权限还是要手动改为最高权限,为了记录时间的准确性,还可以将间隔时间改为1分钟;如果直接使用学长学姐的代码,会覆盖原有的内容,所以在>的后面要多加一个>才会输出追加重定向。
创建一个bat文件“netstatlog.bat”,内容为:
date /t >> c:\netstatlog.txt time /t >> c:\netstatlog.txt netstat -bn >> c:\netstatlog.txt
本机不能直接编辑bat文件,并且不能直接在c盘根目录中创建txt文件,我是先在d盘中创建txt文件,其中输入内容再将后缀改为bat,再将文件剪切至c盘中。
再进入计划任务中创建任务“20164309 netstat1”,本任务的作用是通过记录时间。统一标准,设置为1分钟运行一次。
同样要以最高权限运行。
设置完毕之后可以看到文件内容不仅有数据还有时间了。
②使用Excel数据透视表对收集的数据进行分析
使用自文本导入外部数据netstatlog.txt
使用分隔字符将文本导入向导
插入数据透视表
选取协议列进行分析
删去不必要的二级字段,将一级字段拖入轴与值
将统计数据转换成图表
③将这些程序一一检查,发现了以下几个有问题:
1. [BrowserProtect99.exe]
2.[devenv.exe]
3.[GameBarPresenceWriter.exe]
4.DiagTrack
5.wlidsvc
(2)安装配置sysinternals里的sysmon工具,设置合理的配置文件,监控自己主机的重点事可疑行为。
①编写配置文件
根据之前的数据收集编写相应的配置文件20164309.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> <Image condition="end with">MicrosoftEdgeCP.exe</Image> <Image condition="end with">QQ.exe</Image> </ProcessCreate> <FileCreateTime onmatch="exclude" > <Image condition="end with">chrome.exe</Image> <Image condition="end with">MicrosoftEdgeCP.exe</Image> <Image condition="end with">QQ.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> <DestinationPort condition="is">4309</DestinationPort> </NetworkConnect> <CreateRemoteThread onmatch="include"> <TargetImage condition="end with">explorer.exe</TargetImage> <TargetImage condition="end with">MicrosoftEdgeCP.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>
输入“sysmon64.exe -i ”安装sysmon
输入sysmon64.exe -c 20164309sysmonfig.xml,使用配置文件
发现使用的版本号错误,在xml中改为4.20
配置成功
②复现实验二,使用后门进行回连
进入事件查看器
搜索4309端口有关的信息
可以清楚地看到回连过程中的各项信息
(2)恶意软件分析
使用Systracer,对快照进行分析
我创建了五组快照,分别为:
snapshot#1.不做操作
snapshot#2.使用ncat传输后门
snapshot#3.使用后门,进行连接
snapshot#4.使用dir指令查看文件
snapshot#5.使用webcam_snap进行拍照
由于老师提供的systracer是未破解版本,最多只能创建五次快照容错率低,在我摸索快照使用时造成了一定的困扰,所以我下载了一个破解版进行试验,但由于破解版缺少相应openhandle与openport部分的功能所以我结合两个版本进行了实验。同时我在实验开始之时没有理解快照的含义,片面地认为操作必须在创建快照的时候进行,导致数据分析时产生了问题。
在此选取了情况一些进行分析:
snapshot#1 与snapshot#2
最直观地差异就是传输的成果——20164309_backdoor.exe
我是通过ncat传输后门的记录快照时同时也使用了systracer,因此ncat、systracer注册表都有了更改;
snapshot#2 与snapshot#3
注册表中很多项被更改
查看端口可以看到连接到虚拟机4309端口
snapshot#3 与snapshot#4
查看openhandle发现SearchFilterHost被频繁使用,可能与搜索文件有关
snapshot#4 与snapshot#5
调用摄像头时传输照片数据时可能对流量管理有了一些影响
使用wireshark进行抓包
通过抓包可以看到通信在kali端地址为192.168.236.131端口为4309与以太网适配器端(即主机端)192.168.236.131端口为59132间进行,尽管只是进行了回弹与文件查询,但数据传输进行了五百多次,可见后门之所以这么小还能实现这么多功能并不是由于本身的功劳,更多的是对系统的调用。
实验后回答问题
(1) 如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
和本次实验中所做的一样,通过运用计划任务隔一段时间来记录本机中程序的运行情况;
安装sysmon,有针对性地配置文件,监控主机程序联网情况,查看日志进行分析
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
virscan,静态分析
systracer,通过快照分析更改的文件、注册表、应用程序等等
Wireshark,通过抓包分析传输数据的具体内容
遇到的问题与实验心得
遇到的问题在实验内容中已经详细描述过了,再此不多做赘述;
这四次实验极大程度上磨炼了我的耐心,对知识掌握不够牢靠和对工具使用的不熟练导致了我一次次的失败,尽管磕磕绊绊最后还是成功了,但我还是深感自己能力的不足,希望在余下的五次实验中,我的能力能够得到进一步的提升。