Exp4 恶意代码分析 20155223
使用原生命令schtasks
监视系统运行
- 在系统盘目录下建立脚本文件netstatlog.bat,包含以下命令:
date /t >> c:\\netstatlog.txt
time /t >> c:\\netstatlog.txt
netstat -bn >> c:\\netstatlog.txt
-
在netstatlog.bat同一目录下建立空文本文件netstatlog.txt,用来接收系统运行信息。
-
进入Windows系统下的计划任务程序,新建立一个任务,刚才的脚本文件为操作,给予该任务 最高权限。
-
运行计划任务。
-
运行一个小时之后,删除该计划任务,查看netstatlog.txt。
我似乎不应该在计划任务运行时开这么多的网页。
学习使用Sysmon
- 下载最新版本的Sysmon并安装。
- 在Sysmon.exe同目录下建立文件
test.txt
,文件内容包括以下XML:
<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>
</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 test.txt
安装,使用命令行Sysmon.exe -c test.txt
配置。
-
使用win+R,输入 eventvwr 打开事件查看器。
-
事件1(进程创建):
-
事件2(事件更改):
-
事件3(连接记录):
玩玩TCPView
TCPView可以监控当前系统所有进程的状态,后门进程在TCPView之下难以隐藏。
我忘记关Sysmon了!
抓包分析
-
启动Wireshark。
-
按照前两次实验在虚拟机Kali启动监听。
-
搜索攻击机的IP:192.168.129.133以寻找后门开启的数据包.
这一部分我很好奇,明明后门已经连接好了,怎么会还有那么多的“三次握手”过程?
我可以肯定的是,那一段时间我已经是在通过后门查看本机的文件了。那么有没有可能是后门正在使用TCP“三次握手”的特点来传输数据给攻击机?有意思,伪装得挺好。
systracer工具
- 下载。这工具在网上一百度就可以得到。
- 启动。
- 建立三个快照,每个快照都只扫描C盘。
- 第一个快照只是扫描C盘的正常运转情况。
- 第二个快照是C盘后门已开启(并没有使用后门)的情况。
- 第三个快照是C盘后门以开启并被使用的情况。
- 对比结果:
没看到多少实质性信息。
PEiD工具
PEiD工具可以用来检测是否存在加壳程序。
未加壳的后门:
已加壳的后门:
连加壳用的程序版本都可以看到。
实验后问题
(1)如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么。请设计下你想监控的操作有哪些,用什么方法来监控。
首先用systracer进行广泛的监视,当发现可疑进程后,再调用sysmon更详细的监控。
(2)如果已经确定是某个程序或进程有问题,你有什么工具可以进一步得到它的哪些信息。
原生命令stchtasks、wireshark、TCPView可以监视可疑进程,并可以获取可疑进程的网络连接信息、对其他进程的影响、可疑进程的运行信息。
感想
说是恶意代码分析,实际上并不是对恶意代码本体的分析,而是对其行为的分析。要想真的找到并消灭恶意代码,只靠观察其特征码还不够。只观察特征码容易引起误伤,当然只看代码行为也会引起误伤。都看,误伤率就大大降低。
不过,我还是认为引入人工智障智能来监视可疑进程会更好。