3.1动态分析基础实验(1)--《恶意代码分析实战》
实验1
Lab03-01.exe
实验内容:
1、找出这个恶意代码的导入函数与字符串列表?
2、这个恶意代码在主机上的感染特征是什么?
3、这个恶意代码是否存在一些有用的网络特征码?如果存在,他们是什么?
1.导入函数和字符串列表

字符串有几处可疑的地方:网址、三个注册表值,其中一个注册表值还是自启动的注册表键值。

2.恶意代码在主机上的感染特征是什么?
(1)使用 Process Explorer 查看进程的 Handle
view - Lower Pane View - DLLS/Handles 查看dll与句柄
发现创建了互斥体。

查看dll发现调用了ws2_32.dll,说明此程序有网络通讯的功能。

(2)使用 Process Monitor 查看进程做了什么
使用过滤器,过滤目标进程,WriteFile 和 RegSetValue 行为。


- 程序在 windows\system32 写入了文件 vmx32to64.exe
- 程序添加了自启动注册表值 CurrenVersion\Run\VideoDriver
- 程序操作了随机数,注册表值 RNG\Seed
(3)使用 Wireshark 网络封包分析软件
使用 ApateDNS 查看是否有 DNS 请求。发现一个对 www.practicalmalwareenalysis.com 域名的请求,这也匹配字符串查找的结果。(为了确定恶意代码是否进行额外的DNS请求,可以执行多次分析过程,查看DNS请求的变化,或者使用 ApateDNS 的 NXDOMAIN 功能 )

使用 wireshark 监听网卡流量
WireShark 监控中看到有DNS协议,恶意软件解析了域名www.practicalmalwareanalysis.com。

使用 HTTPS 进行通信。

使用 Netcat 进行监听,监听80(hppt)和443(https)端口。发现恶意代码在443端口上发出了一些信号。多次测试,发现数据是随机的。

WireShark 后续分析得知,这些信号数据包是固定长度的(256字节),是随机数据。

实验二:动态分析不可运行的DLL
Lab03-02.dll
使用工具:
1. Process Explorer
2. Strings
3. Process Monitor
4. StudyPE
5. WireShark
6. Regshot
实验内容:
1、你怎么样让这个恶意代码自行安装?
2、在安装之后,你如何让这个恶意代码运行起来?
3、你怎么能找到这个恶意代码是在哪个进程下运行的?
4、你可以在Process Monitor工具中设置什么样的过滤器,才能收集这个恶意代码的信息?
5、这个恶意代码在主机上的感染迹象特征是什么?
6、这个恶意代码是否存在一些有用的网络特征码?
1.静态分析
分析 DLL 的导出表,从 ServiceMain 与 UninstallService 看,此恶意代码需要安装成一个服务,使其能正常运行。

从导入表来看,包括了一些服务操作的函数;以及注册表操作函数;以及网络操作函数,表明恶意代码使用了HTTP。


IPA Pro分析字符串发现,有域名、注册表位置、svchost.exe出现。
注:svchost.exe 是Windows的一个宿主程序,有许多的系统dll都附着在该程序中运行,所以本次使用目的有可能也是需要通过附着到svchost上到达代码运行的效果。


2.使用 rundll32.exe 安装 DLL
通过静态分析,我们相信恶意代码将需要使用导出函数中installA函数将自身注册为一个服务。
在Windows系统中程序rundll32.exe是专门用来安装dll程序的。
在安装之前,我们使用 Regshot 对注册表进行快照拍摄。安装前拍摄快照A,安装后拍摄快照B。

对 dll 进行安装,cmd 命令如下:
rundll32.exe Lab03-02.dll,installA
Regshot 比较结果:


十六进制转换为文本后结果如下:

分析 Regshot 结果发现,在 Keys added 节中,显示了恶意代码将自身安装成 IPRIP 服务。由于这个代码是个 DLL,依赖于一个可执行文件,注册表中,ImagePath 被设置为 svchost.exe,这说明恶意代码会在一个 svchost.exe 进程中启动。
其余 DisplayName(服务名) 和 Description(服务信息) 可以作为是识别此程序的指纹特征。
3.运行DLL所安装的服务
方法1:win+r 打开 services.msc,找到 Intranet Network Awareness (INA+) 服务,右键启动。
方法2:恶意代码将自身安装成IRPIP服务,所以 cmd 运行 net start IPRIP
4.找到恶意代码附着的进程
使用Process Explorer中点击Find菜单,并且输入需要查找的dll回车后即可得到dll附加进程的信息。
系统中有很多的svchost.exe导致我们不好定位,这里解决的办法是得到进程的pid。

通过PID,可以在 PROCESS MONITOR 过滤进程

5.wireshark 进行网络数据抓包
可以看到,恶意代码始终发出一个对 serve.html 的 GET 请求。



浙公网安备 33010602011771号