Lab 7-2
问题
1.这个程序如何完成持久化驻留?
解答: 我们可以先从静态分析开始,然后这里估计会用一下动态分析看看
我们会发现这个导入库OLE32.DLL,然后导入了CoCreateInstance, OleInitialize, OleUninitialize这三个函数,这三个函数不是很常见的样子,但是导入了肯定有他的作用,我们查查看
第一个函数CoCreateInstance这个函数是这样的
看不懂,什么鬼,剩下两个函数看字面意思,一个是OleInitialize也就是ole初始话的,然后OleUninitialize这个函数,是反初始话ole的
然后剩下的两个DLL并没有什么有价值的导入函数,第二DLL甚至没有导入函数
然后还有这么几个导入DLL没有识别出来
往后我们分析一下字符串看看,还是这个老套路
也没有什么有价值的字符串出现,然后书中那些个出现的函数,我是没发现,是不是因为在这个两个DLL中没被识别出来
我试试用winxp去运行看看,然后还是这个样子的
依旧找不到这个DLL
无法了,我们只好开始动态分析
直接点运行之后,就会跳出一个窗口,然后就开始连接这个网址
我们会发现这里,删除了一个键
已删除键 (1) 快照 A
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\MSHist012017090520170906]
然后新建了这么几个键
新添加键 (5) 快照 B
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Default HTML Editor]
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar\WebBrowser]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Favorites]
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0\Cache\Extensible Cache\MSHist012017092620170927]
这个看样子的话,是将这个Default HTML Editor设置成了Internet Explorer,然后便是增加了一个\Toolbar\WebBrowser,这个应该是浏览器的工具栏这里的位置,然后MenuOrder\Favorites应该就是收藏夹
然后看这个得不出什么重要的结论,我们开始IDA分析吧
这里的main函数,一开始是先调用了OleInitialize这个函数,然后这个函数的作用根据书中的介绍就是初始化COM,然后便是一个判断jl跳转,具体不懂的可以看看我的Lab 4的博客
这里使用了test之后然后再使用这个jl跳转,这个其实就是判断两种情况的,具体的汇编原理分析我在Lab 4里面写了,就是这么两种情况
eax >= 0 和 eax < 0
如果eax>=0的话,jl不会跳转
然后如果eax<0的话,jl就会跳转了
然后我们看看这个函数OleInitialize返回值在MSDN中的定义是这样的
如果调用成功,返回S_OK,S_OK=0
如果调用失败,返回S_FALSE,S_FALSE==1
其他错误返回特定的错误类型,一般这些错误都是小于0的
所以这个jl语句的意思就是,如果返回的是除了S_OK和S_FALSE之外的错误,那就直接跳转退出程序
然后如果没有跳转结束,便是这样的一个代码片段
这里IDA将这个CoCreateInstance这个函数的返回COM对象标记为了ppv,然后按照书中的做法,我们为了确定这个程序是调用了那个COM对象,所以我们要去查看riid和rclsid是对应了那个功能
我们双击就可以查看这两个变量真正的值是多少了
riid的值是这样的
然后rclsid是这样的
所以我们就开始查呗,书中是提到这个东西在的位置的,我们通过打开注册表编辑器可以看到,CLSID在注册表中的具体位置是在这里
HKLM\SOFTWARE\Classes\CLSID\
还有
HKCU\SOFTWARE\Classes\CLSID
我们可以先看第一个位置HKLM\SOFTWARE\Classes\CLSID\的地方
这里有很多的CLSID,我们来找我们IDA中发现的值
第一个数是2DF01h
我们最后可以找到这个值的位置
点LocalServer32就会发现这个CLSID会调用什么函数
这里的数据显示的是"C:\Program Files\Internet Explorer\iexplore.exe"也就是IE浏览器的可执行文件在的地方
然后我们再去找找这个位置有什么HKCU\SOFTWARE\Classes\CLSID
不过我们并没有在这个地方发现这个CLSID
然后我们就查明,这个函数调用了什么程序
然后如果创建那个COM对象没失败,便开始调用这一串代码
这里就是通过调用这个COM对象,来将参数也就是那个网址传进去,然后便是打开一直到http://www.malwareanalysisbook.com/ad.html的IE窗口
2.这个程序的目的是什么?
解答: 打开一个导向http://www.malwareanalysisbook.com/ad.html网页的IE浏览器
3.这个程序什么时候完成执行?
解答: 打开完IE导向那个网址之后就结束了
本文完
本文通过静态和动态分析方法,详细解析了一个旨在打开特定网址的恶意软件样本。该样本利用OLE32.DLL库中的函数实现IE浏览器的启动,并对注册表进行修改以达到持久化目的。
561

被折叠的 条评论
为什么被折叠?



