Lab03-02分析
问题及分析:
问题1
你怎样才能让这个恶意代码自行安装?
先使用静态分析技术PEview
找到这么五个导出函数
然后再用Dependency Walker
查看,里面有
Advapi32.dll 提供核心Windows组件访问,如服务管理器和注册表
Kernel32.dll 提供系统核心功能,访问和操作内存、文件、硬件等
Wininet.dll 实现应用层网络函数,如FTP、HTTP等协议
Wsock32.dll 用于联网,或执行网络相关操作
发现CreateProcessA
Create Thread
函数说明代码会创建进程、线程
发现Creat ServiceA
RegCloseKey
RegCreateKeyA
等函数,说明代码会操作服务,和操作注册表
发现HttpSendRequestA
说明这个恶意代码还会链接网络
下面strings.exe查看字符串
字符串中我们可以发现
-
可疑的域名
practicalmalwareanalysis.com
serve.html
-
可疑函数:
ServiceMain
UninstallService
installA
uninstallA
-
下载函数:
getfile
扫描二维码关注公众号,回复: 9593319 查看本文章
下面尝试用install
这个导出函数来安装恶意代码,在cmd里输入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...
发现pid
为1044然后我们去查找这个pid
为1044,名字叫svchost.exe
的进程
这样就找到了
问题4
你可以在procmon工具中设置什么样的过滤器,才能收集这个恶意代码的信息?
在procmon
里,打开Filter
---->然后设置PID为刚刚发现的值1044,就可以收集这个恶意代码的信息
过滤信息
问题5
这个恶意代码在主机上的感染迹象特征是什么?
在第一问发现他会创建一个服务叫IPRIP
,所以感染迹象就是会有创建一个服务叫IPRIP
问题6
这个恶意代码是否存在一些有用的网络特征码?
我们先去看看DNSChef
和INetSim
服务器上的 记录
先检查一下dns的解析记录,用DNSChef
虚拟机看
和我们前面发现的恶意域名是对应的
然后我们在看看INetSIm
虚拟机上的记录,记录在log/service.log
里面
我们可以注意到这个解析
这个DLL从我们搭建的服务器下载一个serve.html,而我们服务器返回了sample.html作为serve.html
其实这里就不需要用netcat来监听本地80端口了
所以这个网络特征就是那个漫长的恶意域名的解析,和对恶意域名请求一个serve.html
关键提示和要求:
一:静态分析
1、首先进行静态分析。列出这个DLL文件的导出和导入函数,分别是什么?哪个导出函数提供比较特殊的功能?这个功能是什么?值得关注的导入函数有哪些?那些导入函数与网络操作相关?这些导入函数说明这个进程使用了什么网络服务?2、通过检查程序的字符串,写出与注册表、域名、网络、网页等相关的字符串。初步估计该程序的功能,例如该程序可能提供什么服务?
二、dll注册
1、由于可能改动了注册表,因此使用Regshot工具对注册表进行第一次快照。2、启动Process Explorer;
3、由于Lab03-02中有dll文件,单独运行dll文件需要使用rundll32.exe;使用下面指令安装恶意代码。
rundll32.exe Lab03-02.dll, installA4、通过Process Explorer确定rundll32终止。
5、再次用Regshot对注册表进行第二次快照。列出不同之处,并查询资料分析各项修改的作用( 特别注意是否有IPRIP字样?)。
三、运行服务
1、运行服务前的准备:
运行procmon,并清除所有事件;
运行Process Explorer;
启动并配置ApateDNS;
由于字符串分析中,出现http,因此开启Netcat监听端口80。nc -l -p 802、启动IPRIP服务c:\net start IPRIP
3、等待10秒,让程序正常运行。
四、分析
1、在Process Explorer中,查找恶意代码进程: Find->Find Handle or DLL, 输入Lab03-02.dll,单击Search。
结果说明这个dll由svchost.exe加载的,记录进程号(PID)。
2、在Process Explorer中,鼠标停留在这个PID项上,会显示相关加载信息。查找Intranet Network Awareness (INA+)IPRIP的字段。3、ApateDNS出现DNS的请求,是什么?
4、请查http协议资料,分析和理解Netcat获取的结果。
向serve.htm发出GET请求,这个特征可以成为该恶意代码的网络特征;User-Agent中的字符串,也可以成为网络特征。
引用
《 Practical Malware Analysis 》 By Michael Sikorski, Andrew Honig · 2012
以及网上前辈的一些作品,由于查阅过多过细,这里就不一一例举。