在尝试学习分析的过程中,判断结论不一定准确,只是一些我自己的思考和探索。敬请批评指正!
1. 实践内容
- 搜索、下载并执行Process Monitor,观察随着时间的推移,软件所记录信息;设置监控条件对恶意代码敏感的功能进行监控。
- 搜索、下载并执行Process Explorer,查看进程列表,选择相应进程进行签名验证,对比其硬盘上的文件和内存中的镜像,结合Dependency Walker对其所载入的dll文件进行比对。
- 搜索、下载并执行Regshot,观察注册表的变化情况。
2. 实践一:lab03-01.exe
(1)简单静态分析
-
使用常用工具查看:
-
本程序被加壳,只能看到一个导入函数。
-
虽然是加过壳的,但是可以看到比较多的信息:
- 有一些路径、一个网址:可能有联网下载的操作
- 一个exe程序名:可能是写入的恶意程序
- 注册表自启动项键值:可能程序要把自己写入自启动项
-
在之后的分析中应该关注网络连接和下载、注册表更改、新程序的写入的操作。
-
然后就可以开启监视工具并运行Lab01-03.exe进行简单的动态分析了。
(2)使用Process Monitor分析
-
由于这个工具监视的项目过多,进行过滤操作:对Lab03-01.exe程序对注册表键值的更改操作、写文件的操作过滤显示。
-
可以看到:
-
恶意代码在系统盘下写入了一个新程序vmx32to64.exe(就是之前看到的那个exe字符串),这个新的可执行程序的长度为7168。实际上,它与Lab03-01.exe程序本身长度是一致的:
-
可以推测它将自己复制到了system32文件夹下。
-
再看过滤出的写入注册表值:
-
显示对注册表键值的更改成功。双击查看详情:
-
可以看到写入的注册表自启动项键值的数据,路径就是刚创建的那个可执行程序。
(3)使用Process Explorer分析
-
开启Process Explorer:
-
可以看到Lab03-01.exe是一个已经运行的进程。查看这个进程连接的dll:
-
这个程序应该是有联网的操作。对dll进行签名验证:
-
查看内存镜像和硬盘镜像中可执行文件的字符串列表(之前验证的是磁盘上的镜像而不是内存中的,通过这样的比较可以分析代码是否有做手脚):
(4)Regshot注册表的变化情况
-
在运行Lab03-01.exe之前进行一次注册表快照,运行之后在进行一次,并进行比较:
-
可以看到显示注册表有一个值有改变:
-
键值名为VideoDriver,键值为C盘下system32中的vmx32to64.exe。
(5)网络行为
-
由于分析它有网络行为,所以用wireshark进行抓包:
-
可以看到这个程序有一个向www.practicalmalwareanalysis.com连接的包,之后与这个ip(192.0.78.25)有数据传递的包。
(6)从主机上观察现象
-
新增加了一个文件:
-
修改的注册表键值:
3. 实践二:lab03-02.dll
(1)简单静态分析
-
从PEiD中我们可以知道,这个dll文件是没有加壳的,并且很可能开启了一个服务:
-
导入函数显示它很有可能是网络相关的:
-
查看这个dll的导出函数有五个,而导出名部分看起来应该是installA。
(2)运行这个dll程序
-
借助rundll32.exe工具运行起来这个dll:
-
查看注册表的变化:
-
可以看到这个恶意代码将自身安装为一个IPRIP的服务,很有可能是通过svchost.exe程序来运行自身的。使用命令行来启动这个服务:
(3)Process Explorer分析
-
查找是哪一个进程调用了Lab03-02.dll:
-
双击关注这个进程:
-
发现svchost.exe进程调用了Lab03-02.dll,可以看到这个进程具有恶意代码的特征字符串。
在ProcessMonitor中按进程PID号过滤: -
可以看到有多项更改:
(4)使用Wireshark分析
-
Wireshark抓包一开始没有反应,过了一会儿才开始有包出现:
-
可以看到第一个是一个DNS解析,网址仍是practicalmalwareanalysis.com,ping一下找到ip进行过滤:
4. 实践三:lab03-03.exe
(1)简单静态分析
-
没有加壳,编译器是VC6.0:
-
在PEview中我们发现数据段有一串exe文件名,是svchost.exe
(2)注册表快照
-
是干扰项,注册表并没有被修改:
(3)使用Process Explorer查看
-
刚一运行Lab03-03.exe时:
-
Lab03-03.exe瞬间变绿变红:
-
说明Lab03-03.exe执行后自行结束,遗留下孤儿进程:
-
比较svchost.exe的磁盘镜像字符串列表和内存镜像字符串列表:
-
两者很明显是更改过的。观察内存中的字符串列表,还可以看到一些信息:
-
可以通过这个进程的PID过滤ProcessMonitor的选项
(4)使用Process Monitor
-
可以看到进行了写文件操作:
-
而点开写文件的操作,会发现会有连续的几次都写入长度为1的数据。
-
这些写文件的操作都是在一个名为practicalmalwareanalysis.log的文件中,这个文件是程序新创建的,写进了Lab03-03.exe所在文件夹下:
-
查看这个文件:
-
显示的信息时我之前在ProcessMonitor中输入过滤信息时的字符,还有一个误输入的“a”也被记录了下来。判断这个恶意代码用于键盘活动记录。