rundll32.exe 工具加载并执行DLL动态库中指定导出函数的方法,理解DLL作为恶意代码加载器的运行机制。Lab03-02.dll 的导出表与导入表,识别 Install、ServiceMain 等关键函数及 HTTP 相关 API;使用 Strings 工具提取可疑域名与文件名,初步判断代码具备网络通信与服务注册功能。rundll32 命令调用 DLL 的安装函数,通过 Regshot 工具对比执行前后的注册表快照,分析新增的系统服务项(如服务名称、显示名及路径)。步骤1:静态信息收集与初步分析
首先使用 StudyPE 打开 Lab03-02.dll 文件,查看导出表(Export Table),发现包含 Install、ServiceMain、UninstallService 等导出函数,其中 installA 为可疑的安装入口。接着查看导入表(Import Table),发现包含大量 RegCreateKey、StartService 等注册表与服务操作 API,以及 InternetOpenA、HttpSendRequestA 等网络通信 API。随后使用 Strings 工具搜索字符串,提取到关键信息:域名 practicalmalwareanalysis.com、文件 serve.html 以及系统进程 svchost.exe。由此推断该 DLL 会注册服务并通过网络传输数据。
步骤2:执行恶意代码安装与注册表比对
打开 Regshot 工具,点击“Shot”按钮建立当前系统状态的“快照A”。打开命令行提示符(CMD),切换到 DLL 文件所在目录,执行安装命令 rundll32.exe Lab03-02.dll,installA,该命令会调用 DLL 中的 installA 函数执行恶意安装逻辑。等待命令执行完毕后,回到 Regshot 界面,点击“Shot”建立“快照B”。点击“Compare”按钮对比两次快照的差异。分析对比结果,重点关注新增的注册表键值,发现系统新增了一个名为 IPRIP 的服务,其显示名为 Intranet Network Awareness (INA+),镜像路径指向 svchost.exe。
步骤3:启动服务与进程定位
为了观察恶意代码的运行行为,需要手动启动安装的服务。在 CMD 中输入命令 net start IPRIP 启动该恶意服务。此时打开 Process Explorer,点击工具栏上的“Find”图标或使用快捷键 Ctrl+F,在搜索框中输入 Lab03-02.dll 并回车。搜索结果显示该 DLL 文件已被加载到 svchost.exe 进程中。记录下该 svchost.exe 进程的 PID(例如 1108),确认恶意代码已通过系统服务伪装运行。
步骤4:动态行为监控与过滤设置
由于系统中存在多个 svchost.exe 进程,直接监控会产生大量无关数据。打开 Process Monitor,设置过滤器规则:将 Process ID 设为刚才记录的 PID(如 1108),或者设置 Process Name is svchost.exe 并结合 Operation 过滤。重新执行 net start IPRIP 命令或在 ProcMon 中开启捕获,重点观察该进程发起的 RegOpenKey、Connect 等操作。同时打开 Wireshark 开始抓包,再次重启服务以触发网络行为。
步骤5:网络特征验证与分析
在 Wireshark 的流量记录中,使用过滤器 dns 或 http 进行筛选。分析发现目标进程发起了对域名 practicalmalwareanalysis.com 的 DNS 查询请求。随后观察到 HTTP 流量,目标发起了 GET /serve.html HTTP/1.1 的请求。验证了静态分析中提取到的字符串特征,确认该恶意代码试图连接远程服务器获取指令或数据。结合 Process Monitor 中观察到的文件读写和网络连接,完成了对 DLL 动态行为的完整分析。
实验结果
通过本次实验,成功利用 rundll32.exe 加载了 Lab03-02.dll 并通过 installA 函数完成了恶意安装。Regshot 比对结果显示恶意代码在系统中注册了名为 IPRIP 的系统服务,利用 svchost.exe 作为载体进程。Process Explorer 确认了 DLL 被注入到系统进程中运行。Process Monitor 监控和 Wireshark 抓包进一步证实了其网络行为,包括解析 DNS 域名 practicalmalwareanalysis.com 并访问 HTTP 路径 serve.html。
个人收获 本次实验深入理解了 DLL 文件无法独立运行而必须依托宿主进程的特性,以及恶意代码如何利用 Windows 服务机制实现持久化。通过对比静态分析(字符串、导入表)与动态分析(注册表快照、网络抓包)的结果,我体会到了多维度分析在恶意代码溯源中的重要性。特别是学会了在多实例系统进程(如 svchost)中通过 PID 精准定位恶意模块的技巧,这对后续分析复杂的恶意软件具有重要的实践意义。
本文作者:Linxiong
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!