Lab 3-2
问题
1.你怎样才能让这个恶意代码自行安装?
解答: 这个看书上解答是
利用rundll32.exe工具,使用命令
rundll32.exe Lab03-02.exe, installA
,来运行恶意代码导出installA函数,便可将恶意代码安装为一个服务
这是怎么发现的呢
先使用静态分析技术
PEview
找到这么五个导出函数
然后再用Dependency Walker
查看依赖,会发现一些有趣的函数
说明代码会创建进程,线程
说明代码会操作服务,还有操作注册表
然后这个恶意代码还使用网络连接等等
然后我们看看字符串列表
字符串中我们可以发现譬如域名
practicalmalwareanalysis.com
还有函数
ServiceMain
UninstallService
installA
uninstallA
还有一个网页
serve.html
还有譬如下载文件的
getfile
运行文件的
cmd.exe /c
还有一些注册表操作的语句
其实一般的DLL是没有这个.rdata
比如我们随便找个系统dll打开
我们也可以尝试用install
这个导出函数来安装恶意代码,试试
这里有个小技巧,就是windows下用cmd切换目录感觉很饭的样子,其实cmd.exe
本身就是放在c:\windows\system32\cmd.exe
,可以把它拷贝出来,放桌面,然后你要切换到哪个目录,就直接把这个exe又复制到那个目录,然后点击打开就切换到了,当然,这是歪门邪道
做好一切的必要准备,注册表快照存储,process explorer
打开,输入
rundll32.exe Lab03-02.dll,install
然后查看注册表对比,发现
这个DLL创建了一个叫IPRIP
的服务
然后我们发现这么几个新建的注册表值很有意思
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\Parameters]
"ServiceDll"=hex(2):43,00,3a,00,5c,00,44,00,6f,00,63,00,75,00,6d,00,65,00,6e,\
00,74,00,73,00,20,00,61,00,6e,00,64,00,20,00,53,00,65,00,74,00,74,00,69,00,\
6e,00,67,00,73,00,5c,00,36,00,34,00,5c,00,4c,68,62,97,5c,00,42,00,69,00,6e,\
00,61,00,72,00,79,00,43,00,6f,00,6c,00,6c,00,65,00,63,00,74,00,69,00,6f,00,\
6e,00,5c,00,43,00,68,00,61,00,70,00,74,00,65,00,72,00,5f,00,33,00,4c,00,5c,\
00,4c,00,61,00,62,00,30,00,33,...
install
这个函数基本就是干这些事的,没见任何可疑的,然后我们还原在试试installA
然后和刚才那个一样,所以我们可以得出这个结论install
和installA
是一样
然后我们开始分析
这里有个可以注意的地方ImagePath
值分析过来就是下面这个
%SystemRoot%\System32\svchost.exe -k netsvcs
然后可以分析得出就是这个DLL会将自己安装成为一个服务IPRIP
,然后由于这个恶意代码是个DLL文件,它就依赖一个可执行文件来执行它,然后它依赖的就是svhost.exe
这个可执行文件来启动
2.在安装之后,你如何让这个恶意代码运行起来?
解答: 用windows启动服务的方式来启动
net start IPRIP
3.你怎么能找到这个恶意代码是在哪个进程下运行的?
解答: 用Process Explorer
Find
菜单-> Find Handle or DLL...
然后
寻找我们那个DLL文件
然后点search
就行了
结果我们会发现这个pid
为1100(在不同电脑上这个值会不同)
然后我们去查找这个pid
为1100,名字叫svchost.exe
的进程
然后就找到了
4.你可以在procmon工具中设置什么样的过滤器,才能收集这个恶意代码的信息?
解答: 书中的答案是
用发现的PID就行过滤
我们试试
(我这个虚拟机同时开procexp和procmon会崩溃-_-)
然后我是看svchost.exe
启动那个exe来找这个svchost.exe
的
然后我发现一个有趣的东西
去看看这是啥
INDEX.BTR
是这样的
唯一一个能看懂明文的是这个
然后里面记录了本机的一些基本信息
CIM是啥
这个恶意代码在主机上的感染迹象是什么?
解答: 感染迹象就是会有创建一个服务叫IPRIP
这个恶意代码是否存在一些有用的网路特征码?
解答: 我们先去看看DNSChef
和INetSim
服务器上的 记录
先检查一下dns的解析记录,用DNSChef
虚拟机看
和我们前面发现的恶意域名是对应的
然后我们在看看INetSIm
虚拟机上的记录,记录在log/service.log
里面
我们可以注意到这个解析
这个DLL从我们的fake服务器下载一个serve.html
,而我们伟大的INetSim
返回了sample.html
作为serve.html
其实这里就不需要用netcat
来监听本地80端口了
所以这个网络特征就是那个漫长的恶意域名的解析,和对恶意域名请求一个serve.html
本文完