mfahdk/MalwareAnalysisDynamic

GitHub: mfahdk/MalwareAnalysisDynamic

该项目详细记录了对木马化 PDF 及其植入的恶意程序进行基础动态分析的完整过程,涵盖了系统监控、内存取证和网络流量模拟等关键技术环节。

Stars: 0 | Forks: 0

## 基础动态分析 **执行人:Muhammad Fahd Khan** 基础动态分析是整个恶意软件分析流程中的第三阶段,紧接着在高级静态分析之后,发生在对文件的静态分析进行到尽可能深入的程度之后。它涉及在受控环境中运行恶意软件,并研究它的行为以及它如何与系统交互。 基础动态分析的主要优势在于它能够绕过推测性假设,并在恶意软件于系统上执行时暴露其实际行为。虽然通过静态分析单独检查文件只能提供有限的洞察,但恶意软件的真实性质只有在其实际运行过程中才会变得明显。 基础动态分析是恶意软件分析过程中的重要环节,使分析师能够观察和监视系统修改、网络通信、文件操作和进程活动的发生情况。这种实时观察提供了对恶意软件目标和行为的更全面、更准确的理解,这是仅靠静态分析无法完全揭示的。 此外,单次执行恶意软件往往不足以捕捉其全部行为范围。某些恶意功能可能仅在特定环境或条件下才会被触发,因此在基础动态分析会话中,某些活动可能会保持隐藏状态。当这种行为未被检测到时,分析师可能需要采用更高级的分析技术来揭示恶意软件操作的完整范围。(Sikorski & Honig, 2012) ### 1. 初始 PDF 分析 在进行动态分析之前,我们将打开 PDF 样本。默认情况下,FlareVM 没有像 Adobe Acrobat 这样的 PDF 阅读器,因此首先在 Web 浏览器中打开该 PDF。 ![Screenshot 1](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/502912c3c0122016.png) **截图:** 在浏览器中分析 PDF 在浏览器中打开后,一切看起来都很正常,就像一份合法的 Anaconda 文档。但是,在点击链接时(这些链接也是合法的),我们发现了一个置顶评论,显示“group5.exe”。点击它没有任何反应,正如 Process Hacker 2 监测到的那样,没有创建新进程或任何其他活动。 使用 Adobe Acrobat Reader 检查是否有任何直接反应,例如自动脚本执行、尝试提取嵌入内容或异常提示。这些行为可以揭示恶意软件最初如何尝试感染系统,从而在我们进行更深入的调查之前提供重要线索。 ![Screenshot 2](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/d6343eece0122022.png) **截图:** 在 Adobe Acrobat 中分析 PDF 如上所示,该可执行文件是在最新版本的 Adobe Acrobat 中打开的,因为虽然 PDF 可以通过 Web 服务器读取,但它们无法像 Acrobat 那样打开 .exe 文件,而 Acrobat 经过一些修改后可以打开 .exe 文件。 我们要注意的第一件事是 PDF 内的所有 URL,之前在静态分析中这些 URL 曾出现过,虽然我们当时发现它们很可疑,但在打开文件后,我们可以看到该文件类似于 Anaconda 速查表文件。 在 Acrobat 中打开它时,我们没有收到任何错误或警报,但确实看到了一个包含 group5.exe 的置顶评论,点击它后文件就会打开。它被方便地放置在 Anaconda 所有包列表链接的上方,普通用户点击它最终会打开该文件而不是该链接。 这意味着这目前是一个被木马化的 PDF,因为它显然包含一个嵌入在 PDF 中的可执行文件,并且其设计旨在看起来完全合法。 ### 2. 监控系统和进程活动 Procmon 和 Process Hacker 将用于监控和记录恶意软件在运行时的行为,包括进程创建、网络连接、注册表修改和 DLL 加载。这将使我们能够观察样本在执行时执行的操作。 使用 Procmon,我们可以通过应用程序内的进程树查看任何注册表修改、执行的函数以及特定可执行文件的任何其他操作,如下所示。 ![Screenshot 3](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/0d2534b4ad122029.png) **截图:** 使用 ProcMon 如图所示,恶意软件可以创建、读取和关闭文件,以及进行注册表项修改。现在,我们可以保存这些数据,这是使用 ProcMon 的优点之一,以便我们可以使用不同的工具进一步分析这些数据。 为了可视化和解析从 ProcMon 获得的原始数据,可以使用 Noriben,这是一个基于 Python 的恶意软件分析脚本,它利用 ProcMon 提供简洁的报告。 ![Screenshot 4](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/ae38390059122036.png) **截图:** 使用 Noriben 这使得更容易识别关键更改,包括:文件活动、注册表更改和网络流量。以下是 Noriben 生成的报告(除可执行文件外的所有内容均已过滤)。 ``` Processes Created: ================== [CreateProcess] Explorer.EXE:4220 > "%UserProfile%\Desktop\group5_unpacked.exe " [Child PID: 7108] File Activity: ================== [CreateFile] group5_unpacked.exe:7108 > %LocalAppData%Low\Microsoft\CryptnetUrlCache\MetaData\57C8EDB95DF3F0AD4EE2DC2B8CFD4157 [SHA256: d873ac24ba079700073b93d7c2950ad652c3ad9437bcee15d31c60c3c87baabe] [CreateFile] group5_unpacked.exe:7108 > %LocalAppData%Low\Microsoft\CryptnetUrlCache\Content\57C8EDB95DF3F0AD4EE2DC2B8CFD4157 [SHA256: fe4b63ad9f486b7664c240397ccdee91fabf15df5ccd39b80b0eeaa6a47b86e4] [CreateFile] group5_unpacked.exe:7108 > %LocalAppData%Low\Microsoft\CryptnetUrlCache\MetaData\57C8EDB95DF3F0AD4EE2DC2B8CFD4157 [SHA256: d873ac24ba079700073b93d7c2950ad652c3ad9437bcee15d31c60c3c87baabe] [CreateFile] group5_unpacked.exe:7108 > %LocalAppData%Low\Microsoft\CryptnetUrlCache\Content\57C8EDB95DF3F0AD4EE2DC2B8CFD4157 [SHA256: fe4b63ad9f486b7664c240397ccdee91fabf15df5ccd39b80b0eeaa6a47b86e4] [CreateFile] group5_unpacked.exe:7108 > %LocalAppData%Low\Microsoft\CryptnetUrlCache\MetaData\57C8EDB95DF3F0AD4EE2DC2B8CFD4157 [SHA256: d873ac24ba079700073b93d7c2950ad652c3ad9437bcee15d31c60c3c87baabe] [CreateFile] group5_unpacked.exe:7108 > %LocalAppData%Low\Microsoft\CryptnetUrlCache\Content\57C8EDB95DF3F0AD4EE2DC2B8CFD4157 [SHA256: fe4b63ad9f486b7664c240397ccdee91fabf15df5ccd39b80b0eeaa6a47b86e4] Registry Activity: ================== [RegSetValue] group5_unpacked.exe:7108 > HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\ProxyBypass = 1 [RegSetValue] group5_unpacked.exe:7108 > HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\IntranetName = 1 [RegSetValue] group5_unpacked.exe:7108 > HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\UNCAsIntranet = 1 [RegSetValue] group5_unpacked.exe:7108 > HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\AutoDetect = 0 Network Traffic: ================== [TCP] group5_unpacked.exe:7108 > 212.55.1.3:8085 [TCP] 212.55.1.3:8085 > group5_unpacked.exe:7108 [UDP] group5_unpacked.exe:7108 > 192.168.79.132:53 [UDP] 192.168.79.132:53 > group5_unpacked.exe:7108 [TCP] group5_unpacked.exe:7108 > 192.0.2.123:80 [TCP] 192.0.2.123:80 > group5_unpacked.exe:7108 Unique Hosts: ================== 192.0.2.123 212.55.1.3 ``` 就文件活动而言,可以看到恶意软件反复写入 Windows CryptnetUrlCache 目录,特别是创建和修改 MetaData 和 Content 缓存文件。从表面上看,恶意软件可能试图操纵主机系统上的证书信任。 关于注册表修改,恶意软件修改了 `HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap` 下的四个项,将 `ProxyBypass`、`IntranetName` 和 `UNCAsIntranet` 设置为 1,同时将 `AutoDetect` 设置为 0。这是为了禁用代理检测并降低 Windows Internet 区域限制。 在网络通信方面,恶意软件与 212.55.1.3 的端口 8085 建立了 TCP 连接,这可能是也可能不是命令与控制(C2)服务器。它还与 192.0.2.123 的端口 80 建立了连接,但根据 RFC 5737 定义,该地址用于文档和测试。 使用 Process Hacker 2,我们可以通过检查可执行文件在执行期间的属性、已加载模块、内存区域和环境路径,来观察恶意软件的实时运行情况。 在 Process Hacker 2 中导航到 Modules 选项卡,向我们展示了执行时加载的所有 DLL。 ![Screenshot 5](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/716b0c9a3e122043.png) **截图:** 使用 Process Hacker 2 下表显示了 `group5_unpacked.exe` 执行时加载的所有 DLL,正如通过 Process Hacker 2 中的 Modules 选项卡观察到的那样。 | 名称 | 基址 | 大小 | 描述 | |:----------------------------|--------------:|--------:|:----------------------------------------| | advapi32.dll | 0x7ff8e2660000 | 700 kB | Advanced Windows 32 Base API | | bcryptprimitives.dll | 0x7ff8e0fd0000 | 520 kB | Windows Cryptographic Primitives Library | | clbcatq.dll | 0x7ff8e2c90000 | 676 kB | COM+ Configuration Catalog | | combase.dll | 0x7ff8e2130000 | 3.33 MB | Microsoft COM for Windows | | gdi32.dll | 0x7ff8e16e0000 | 176 kB | GDI Client DLL | | gdi32full.dll | 0x7ff8e1190000 | 1.08 MB | GDI Client DLL | | iertutil.dll | 0x7ff8d7350000 | 2.69 MB | Run time utility for Internet Explorer | | imm32.dll | 0x7ff8e2770000 | 192 kB | Multi-User Windows IMM32 API Client DLL | | IPHLPAPI.DLL | 0x7ff8e0000000 | 240 kB | IP Helper API | | kernel.appcore.dll | 0x7ff8deb10000 | 72 kB | AppModel API Host | | kernel32.dll | 0x7ff8e2070000 | 764 kB | Windows NT BASE API Client DLL | | KernelBase.dll | 0x7ff8e0ca0000 | 2.96 MB | Windows NT BASE API Client DLL | | locale.nls | 0x400000 | 804 kB | — | | msvcp_win.dll | 0x7ff8e1510000 | 628 kB | Microsoft® C Runtime Library | | msvcrt.dll | 0x7ff8e1740000 | 632 kB | Windows NT CRT DLL | | mswsock.dll | 0x7ff8e0310000 | 424 kB | Microsoft Windows Sockets 2.0 Service Provider | | mswsock.dll.mui | 0x550000 | 12 kB | Microsoft Windows Sockets 2.0 Service Provider | | netutils.dll | 0x7ff8e0110000 | 48 kB | Net Win32 API Helpers DLL | | nsi.dll | 0x7ff8e1970000 | 32 kB | NSI User-mode interface DLL | | ntdll.dll | 0x7ff8e3550000 | 1.97 MB | NT Layer DLL | | oleaut32.dll | 0x7ff8e15b0000 | 820 kB | OLEAUT32.DLL | | OnDemandConnRouteHelper.dll | 0x7ff8d0050000 | 92 kB | On Demand Connctiond Route Helper | | profapi.dll | 0x7ff8e0b70000 | 124 kB | User Profile Basic API | | R000000000006.clb | 0x4d0000 | 28 kB | — | | rpcrt4.dll | 0x7ff8e1840000 | 1.15 MB | Remote Procedure Call Runtime | | sechost.dll | 0x7ff8e1a60000 | 624 kB | Host for SCM/SDDL/LSA Lookup APIs | | SHCore.dll | 0x7ff8e25b0000 | 692 kB | SHCORE | | shlwapi.dll | 0x7ff8e1b00000 | 340 kB | Shell Light-weight Utility Library | | SortDefault.nls | 0x8a0000 | 3.22 MB | — | | srvcli.dll | 0x7ff8d6f90000 | 160 kB | Server Service Client DLL | | sspicli.dll | 0x7ff8e0b20000 | 200 kB | Security Support Provider Interface | | ucrtbase.dll | 0x7ff8e1090000 | 1 MB | Microsoft® C Runtime Library | | urlmon.dll | 0x7ff8d6fc0000 | 1.92 MB | OLE32 Extensions for Win32 | | user32.dll | 0x7ff8e2940000 | 1.61 MB | Multi-User Windows USER API Client DLL | | win32u.dll | 0x7ff8e0fa0000 | 136 kB | Win32u | | windows.storage.dll | 0x7ff8ded10000 | 7.57 MB | Microsoft WinRT Storage API | | winhttp.dll | 0x7ff8d99f0000 | 1.04 MB | Windows HTTP Services | | wininet.dll | 0x7ff8cf710000 | 4.85 MB | Internet Extensions for Win32 | | winnsi.dll | 0x7ff8da850000 | 44 kB | Network Store Information RPC interface | | wldp.dll | 0x7ff8e05b0000 | 184 kB | Windows Lockdown Policy | | ws2_32.dll | 0x7ff8e27a0000 | 428 kB | Windows Socket 2.0 32-Bit DLL | **表格:** Process Hacker 2 Modules 选项卡的结果 像 ws2_32.dll、mswsock.dll、winhtpp.dll、wininet.dll、urlmon.dll、IPHLPAPI.dll 和 OnDemandConnRouteHelper.dll 这样的 DLL 都用于网络通信、处理 HTTP 请求和处理基于 URL 的文件下载。 而 sspicli.dll、sechost.dll 和 wldp.dll 提供对 Windows 身份验证的访问权限,特别是 Kerberos 和 NTLM。同时控制服务控制管理器,其中之一用于在系统上放置/删除脚本限制。 像 windows.storage.dll、kernel32.dll、KernelBase.dll、ntdll.dll 这样的知名 DLL 用于系统进程,包括文件操作、Shell 命令和访问用户配置文件数据。 它还包含一个加密 DLL;bcryptprimitives.dll,它是 Windows 中的核心加密库,用于实现哈希、加密和签名。 最后,用于远程过程调用的 DLL(如 rpcrt4.dll)以及用于与网络共享交互的网络实用工具助手 DLL(如 srvcli.dll 和 netutils.dll)。 基于内存中加载的 DLL,以及它只有 8kB 大小这一事实,group5_unpacked.exe 几乎可以肯定是一个 loader 或 dropper,其本身太小而无法进行实质性的恶意操作。它的主要工作可能是获取初始访问权限,联系远程 C2 服务器,并下载更大的 payload。网络库(winhttp、wininet、urlmon)实现了这些连接和下载,而 bcryptprimitives 暗示了用于安全性的加密。身份验证和网络共享 DLL(通过 sspicli 的 Kerberos/NTLM、rpcrt4、srvcli)可能对受害者的系统进行配置,并在拉取更多恶意软件之前将信息发送到 C2 服务器。其较小的尺寸也有助于它逃避安全工具的检测,使其能够悄无声息地运行并将控制权移交给更大的 payload。同时,对 ZoneMap 项的注册表更改表明它能够绕过代理设置并禁用安全限制,确保它可以在不被策略阻止的情况下与 C2 服务器通信。 ### 3. 注册表修改分析 RegShot 是一个实用程序,可以快速比较运行程序前后的 Windows 注册表和文件系统,帮助识别软件所做的任何更改。 ![Screenshot 6](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/de3f6a95c9122050.png) **截图:** 使用 RegShot 结果是,RegShot 检测到注册表中总共有 107 处更改。当然,这并不意味着恶意软件访问或更改了所有这些项,因为系统上运行的多个合法进程也会执行注册表操作。在与 Noriben 的过滤输出进行交叉引用后,特定于恶意软件的更改被隔离在 `HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap`,修改了诸如 `ProxyBypass`、`IntranetName`、`UNCAsIntranet` 和 `AutoDetect` 等项。 与 RegShot 类似,Autoruns 被用于检查任何注册表更改、任何新服务以及更多其他内容。在引爆 group5_unpacked.exe 之后执行 Autoruns,以识别恶意软件安装的任何持久化机制,例如启动项、计划任务、浏览器扩展或服务。如下所示,执行后未检测到新的或可疑的条目。 ![Screenshot 7](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/5987c53cfc122056.png) **截图:** 使用 Autoruns ProcDot 是一个工具,可以将原始的 procmon 日志转换为交互式可视化图表,从而更容易跟踪关系、网络连接和注册表更改。这对于快速发现可疑的进程链或已丢弃的文件非常有用,可以节省时间。(ProcDOT,n.d.) ![Screenshot 8](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/65f461c1fb122103.png) **截图:** 使用 ProcDot 如上所示,一旦 group5_unpacked.exe 运行,它就可以生成两个线程:6936 和 6980,并与 212.55.1.3 建立两个连接。它还修改了在 InternetSettings\ZoneMap 下发现的相同注册表项。 ### 4. 内存分析 ProcDump 是 Microsoft Sysinternals 提供的一个命令行工具,它监视指定进程,检查 CPU 峰值,并生成进程的内存转储。它用于捕获正在运行的进程的内存内容,可以使用 volatility3 等工具进行分析。(markruss,2022) ![Screenshot 9](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/d1494b3194122109.png) **截图:** 使用 ProcDump 如上图所示,首先运行 group5_unpacked.exe,然后使用 procdump 创建 group5.dmp。 同样,WinPMEM 也是一个内存分析工具,但它捕获的是系统的整个物理内存,与 ProcDump 捕获单个进程不同,该工具捕获系统上运行的所有内容。这也可以在 volatility3 中进行分析。(Velocidex,2022) ![Screenshot 10](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/8911f0da7a122116.png) **截图:** 使用 WinPMEM 如上所示,确保打开了 group5_unpacked.exe 并执行 WinPMEM 命令,从而获得内存的原始捕获。 PE-sieve 是一个扫描正在运行的进程的工具,检测内存中的可执行文件与其原始文件之间的任何更改。具体来说,它检测内联 hook、进程挖空、DLL 注入等。(hasherezade,2020) ![Screenshot 11](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/7c77d244ab122123.png) **截图:** 使用 pe-sieve 同样,要使用 pe-sieve,恶意软件必须在后台打开,并具有进程 ID。在这里,ID 是 4112,可以使用 findstr 或 process hacker 等内置命令行工具找到。然后使用进程作为参数运行 pe-sieve。 这次,FakeNet 没有打开,这意味着恶意软件无法与互联网通信。比较从 process hacker 和 pe-sieve 获得的 DLL,我们没有看到任何差异。 ![Screenshot 12](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/d0d331512b122129.png) **截图:** 使用带有 FakeNet 的 pe-sieve 然而,当与 FakeNet 一起运行时,我们看到增加了 23 个新 DLL。额外的 DLL 是:schannel.dll、mskeyprotect.dll、ntasn1.dll、crypt32.dll、msasn1.dll、dpapi.dll、wintrust.dll、cryptsp.dll、rsaenh.dll、bcrypt.dll、CRYPTBASE.dll、gpapi.dll、ncrypt.dll、ncryptsslp.dll、cryptnet.dll、dhcpcsvc6.dll、dhcpcsvc.dll、webio.dll、dnsapi.dll、rasadhlp.dll、FWPUCLNT.dll 和 winnet.dll。 恶意软件加载 schannel.dll 以支持 TLS/SSL,加载 crypt32.dll 和 cryptnet.dll 用于证书处理和信任列表下载,这直接解释了观察到的 ctldl.windowsupdate.com 流量。此外,rsaenh.dll、bcrypt.dll 和 ncryptsslp.dll 提供加密和安全通道功能,而 dnsapi.dll 启用 DNS 解析,webio.dll、winhttp.dll 和 wininet.dll 促进 HTTP 和 HTTPS 请求。dpapi.dll 和 mskeyprotect.dll 的存在进一步表明恶意软件可以利用 Windows 内置的数据保护和密钥管理服务。 Hollows hunter 是一个基于 pe-sieve 的 CLI 工具。它旨在检测进程挖空和其他代码注入技术。它扫描正在运行的进程,以寻找表明合法进程已被挖空并被恶意代码替换的异常。(hasherezade,n.d.) ![Screenshot 13](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a781bf598f122136.png) **截图:** 使用 Hollow Hunter 如上所示,运行了 hollow,它显示 group5_unpacked.exe 在后台打开,但是它被归类为非可疑的。但这是一致的,因为它没有试图使用进程挖空来隐藏。恶意软件以其自己的可执行文件名公开运行,而不是注入或挖空合法的系统进程。 使用 WinPMEM 获取的内存转储,Volatility3 是一个开源内存取证框架,用于分析 RAM 转储以提取正在运行的进程、网络连接、注入的代码和注册表数据。在恶意软件分析中,它检测进程挖空,识别注入的 shellcode,发现隐藏的进程,并恢复从未写入磁盘的内存中 payload。(foundation,2020) ![Screenshot 14](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/db57dbc148122142.png) **截图:** 使用 volatility3 (1) 使用 `windows.psscan.PsScan`,我们可以确认 group5_unpacked.exe 确实被捕获在内存中,正如在第一个注释中看到的那样,它确实在内存中。 在第二个注释中,使用 `windows.dlllist.DllList`,我们可以看到可执行文件已加载的模块,它们确实与我们之前从 process hacker 和 pe-sieve 获得的结果相匹配。 ![Screenshot 15](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/89930b1dc2122149.png) **截图:** 使用 volatility3 (2) 如上图第一个注释所示,使用 `windows.malware.pebmasquerade.PebMasquerade` 命令,我们能够检测是否有任何正在运行的进程通过在其进程环境块(PEB)中提供虚假的映像路径来伪装自己。该命令对所有进程返回“False False”,表明不存在 PEB 伪装。这证实了 group5_unpacked.exe 和所有其他进程都在其真实身份下运行,没有试图冒充合法的系统可执行文件。 在第二个注释中,`windows.handles.Handles` 输出显示了恶意软件进程的正常句柄类型,包括指向其桌面位置的文件句柄、网络套接字、指向 Internet Settings 的注册表项以及标准的同步对象。未观察到可疑句柄、隐藏的进程连接或进程注入的迹象。 ![Screenshot 16](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/22029787c6122155.png) **截图:** 使用 volatility3 (3) 如上图第一个注释所示,运行了 `windows.ldrmodules.LdrModules`,输出显示 group5_unpacked.exe 加载的所有 DLL 的 InLoad、InInit 和 InMem 值均为 True,表明它们已被 Windows 加载器正确跟踪,没有隐藏或未链接的模块。主可执行文件显示 True、False、True,这对于 EXE 文件来说是正常的。唯一一个 False、False、False 的条目是 mswsock.dll.mui,这是一个合法的 Windows MUI 资源文件,而不是 DLL。这证实了恶意软件进程中不存在反射式 DLL 注入或隐藏模块。 最后,运行了 `windows.hollowprocesses.HollowProcesses` 命令以检测任何进程挖空活动。该命令未返回任何结果,表明内存转储中没有进程表现出挖空迹象,即合法进程的原始代码被恶意代码替换。这一发现与之前的 VAD 分析、malfind 扫描、ldrmodules 检查和 pebmasquerade 结果一致,所有这些都证实了这个 8KB 的下载器不使用进程注入、挖空或任何形式的代码隐藏技术。恶意软件以其自己的进程身份透明运行,没有试图伪装自己或劫持其他系统进程。 ### 5. 网络分析 FakeNet-NG 是一个用于动态网络分析的开源工具,主要由恶意软件分析师和渗透测试人员使用。它建立在原始 FakeNet 实用程序的基础上,拦截和重定向网络通信,同时模拟真实的网络服务。这种方法诱骗恶意软件使其认为已连接到真实服务器,从而使分析师能够在不将系统暴露于实际外部网络的安全、隔离环境中监控网络行为、收集网络特征并观察命令与控制(C2)流量尝试。(Mandiant,n.d.) ![Screenshot 17](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/7beb43f857122202.png) **截图:** 使用 Fakenet 虽然 fakenet 应用程序确实在其 CLI 上显示实时更改,但在 fakenet 生成的 html 报告中查看它更容易。 ![Screenshot 18](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/14dd82c82c122209.png) **截图:** 由 Fakenet 生成的报告 查看报告,我们可以看到该进程正在联系 ctldl.windowsupdate.com,这是 Microsoft 的合法域名,用于下载证书信任列表,正如它获取的 HTTP 网页所显示的那样。然而,它不是由合法的 Windows 进程获取的,而是来自恶意软件可执行文件。 在这种情况下,恶意软件利用信誉良好的 Microsoft 域将其网络活动伪装成合法的系统通信,从而帮助它逃避检测。由于安全解决方案通常信任且不阻止对 Microsoft 地址的流量,这成为恶意软件绕过 C2 检测的有效方式。此外,由于真正的证书信任列表下载通常通过 HTTP 进行,因此恶意软件可以将其命令与控制连接或数据窃取隐藏在看似常规的证书更新流量中。 Fakenet 的另一个好处是,每次应用程序关闭时它都会生成一个数据包捕获文件。深入研究它将有助于缩小恶意软件所做的事情的范围。 ![Screenshot 19](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/4f6ab4d2f7122215.png) **截图:** 由 Fakenet 进行数据包捕获 当检查数据包捕获时,我们再次观察到指向托管在 ctldl.windowsupdate.com 上的证书信任列表网页的 HTTP 流量。该流量实际上是由 FakeNet 生成的,这是意料之中的,因为 FakeNet 拦截所有 DNS 查询和 HTTP 请求,无论它们是来自恶意来源还是合法来源。因此,每当恶意软件或分析虚拟机上的任何进程尝试连接到 ctldl.windowsupdate.com 时,FakeNet 都会使用其默认的虚假 HTTP 页面进行响应,从而阻止请求到达 Microsoft 的实际服务器。结果,在捕获中看到 FakeNet 生成此响应并不一定意味着存在恶意活动。它只是证明向该域发出了请求,这可能是命令与控制行为的一部分,或者如果恶意软件启动了系统进程,可能只是正常的 Windows 操作。关键点在于请求是由恶意软件可执行文件本身发起的,还是由 svchost.exe 之类的东西发起的。如果它来自恶意软件,则表明故意滥用受信任的 Microsoft 域。尽管如此,FakeNet 虚假响应的存在只是分析设置的结果,不应被视为恶意行为的直接证据。 ### 观察结果 在整个基础动态分析过程中,该 PDF 被识别为一个包含嵌入式 8KB 可执行文件的木马化文档,该可执行文件伪装成合法的 Anaconda 速查表。执行后,恶意软件建立了与 `212.55.1.3` 的网络连接,修改了 Windows Internet ZoneMap 注册表项以禁用代理检测,并写入 CryptnetUrlCache 目录。DLL 分析确认了与第一阶段下载器一致的网络、加密和身份验证功能。使用 Volatility3 进行的内存分析显示没有 PEB 伪装、进程挖空、反射式 DLL 注入或隐藏模块,证实恶意软件透明运行。网络分析显示恶意软件联系 `ctldl.windowsupdate.com` 以将 C2 流量伪装成合法的 Microsoft 证书更新。未安装持久化机制,该 8KB 下载器仅充当等待第二阶段 payload 的 stager。 # 参考文献 Sikorski, M., & Honig, A. (2012). Practical malware analysis: The hands-on guide to dissecting malicious software. No Starch Press. Kaspersky. (2026, March 23). Can PDFs contain viruses? What to do if you’ve opened a PDF scam. /. https://www.kaspersky.com/resource-center/threats/pdf-viruses Mandiant. (n.d.). GitHub - mandiant/flare-fakenet-ng: FakeNet-NG - Next Generation Dynamic Network Analysis Tool. GitHub. https://.com/mandiant/flare-fakenet-ng foundation, volatility. (2020, October 18). volatilityfoundation/volatility3. GitHub. https://github.com/volatilityfoundation/volatility3 hasherezade. (n.d.). GitHub - hasherezade/hollows_hunter: Scans all running processes. Recognizes and dumps a variety of potentially malicious implants (replaced/implanted PEs, shellcodes, hooks, in-memory patches). GitHub. https://github.com/hasherezade/hollows_hunter hasherezade. (2020, August 1). hasherezade/pe-sieve. GitHub. https://github.com/hasherezade/pe-sieve markruss. (2022, December 12). ProcDump - Sysinternals. Learn.microsoft.com. https://learn.microsoft.com/en-us/sysinternals/downloads/procdump ProcDOT. (n.d.). ProcDOT’s Home. Www.procdot.com. https://www.procdot.com/ Velocidex. (2022, May 26). The WinPmem memory acquisition driver and userspace. GitHub. https://github.com/Velocidex/WinPmem
标签:AlienVault OTX, DAST, FlareVM, PDF分析, 云资产清单, 基础动态分析, 恶意代码分析, 恶意软件分析, 恶意软件分析流程, 文件分析, 样本分析, 沙箱分析, 网络安全, 逆向工具, 逆向工程, 配置文件, 隐私保护