恶意代码分析实战:Lab07-02

问题

用ida打开Lab07-02.exe,查看恶意程序的导入表。
d3pPHO.png
可以发现,该样本的的函数导入表并没有文件、服务及注册表的操作。所以可以判断该样本没有持久化驻留的行为,运行一次便退出了。
d3p5Ie.png
这个程序首先调用了OleInitialize用于初始化组件对象模型库,之后调用CoCreateInstance用于创建一个COM的对象。返回的COM对象被保存在栈上的一个变量中,IDA将它标记为ppv。为了判断这个程序在使用什么COM功能,我们需要检查接口标识符(IID)以及类标识符(CLSID)。首先看一下riid:
d39Czn.png
可以看到,riid的值为D30C1661-CDAF-11D0-8A3E-00C04FC9E26E。 接下来再看一下rclsid:
d391L6.png
可以看到,rclsid的值为0002DF01-0000-0000-C000-000000000046。
通过搜索查看注册表键值,可以知道这个IID对应IwebBrowser2,CLSID对应Internet Explorer。
d3CGXq.png
d3CS0K.png
可以看到,这段代码首先将之前创建的COM对象(这里表示为ppv)的地址赋给了eax,之后这个eax中的内容又赋给了edx,也就是说,此时的edx指向的就是刚才所创建的COM对象的基址。接下来的call函数调用的是位于这个基址加上0x2C处的内容。
d3CcB6.png
通过ida的Structures视图,按下Insert键,出现定义结构提示框,但由于IDA已经有IwebBrowser2的结构定义了,所以我们直接点Add standard structure按钮查询IWebBrowser2结构。
d3PZ8J.png
添加完IWebBrowser2结构后,回到[edx+2Ch]处点击右键,便会出现IWebBrowser2Vtbl.Navigate的标识。
d3PGPe.png
这个Navigate函数会允许程序启动Internet Explorer,并且访问一个Web地址。之后程序会调用一些清理函数,清理完毕,程序也就终止了

1、这个程序如何完成持久化驻留?

这个函数不会进行持久化驻留。

2、这个程序的目的是什么?

这个程序会显示一个网页。

3、这个程序什么时候完成执行?

这个程序在完成网页的显示后,就完成了执行。