Arizonal8/Memory-Forensics

GitHub: Arizonal8/Memory-Forensics

一个使用 Volatility 框架对感染 Trickbot 木马的 Windows 系统进行完整内存取证分析的实战实验项目。

Stars: 0 | Forks: 0

# 第 10 周:内存取证 ## 概述 本次实验对感染了 Trickbot 银行木马的 Windows 7 系统进行了全面的内存取证调查。使用 Volatility 框架,调查分析了 RAM dump,以识别运行中的进程、网络连接、code injection、恶意软件家族、持久化机制以及命令与控制(C2)基础设施。 ## 为什么这是必要的 内存取证对于调查高级恶意软件至关重要,因为: - 恶意软件通常完全在内存中运行,而不会将文件写入磁盘 - 文件中的加密和混淆被绕过 —— 内存显示了恶意代码的解密、运行状态 - 进程注入将恶意软件隐藏在合法的 Windows 进程中 - 内存包含未存储在磁盘上的网络 artefacts、凭据和密钥 - 易失性证据(运行中的进程、网络连接)仅存在于 RAM 中,并在系统关闭时丢失 ## 使用的工具 - **Volatility 框架** (v2.6) —— 开源内存取证框架 - **VirusTotal** —— 在线恶意软件哈希分析 - **Imageinfo, Pslist, Pstree, Psscan, Netscan, Malfind** —— Volatility 插件 ## 涵盖的关键概念 - 从内存 dump 中识别 OS profile (imageinfo) - 使用 pslist、pstree 和 psscan 列出并比较进程 - 通过 malfind 插件检测进程注入 - 分析捕获内存时处于活动状态的网络连接 - 使用 VirusTotal 从注入的 PE 哈希中识别恶意软件家族 - 检查句柄和 DLL 以识别恶意文件路径 - 从内存中提取注册表 hive 以进行离线分析 ## 识别出的恶意软件:Trickbot Trickbot 是一种复杂的、模块化的银行木马,最早于 2016 年被发现。它以以下特点而闻名: - 凭据窃取(浏览器、Windows 凭据存储) - 网络传播和横向移动 - 模块化 payload 交付(sinj、pwgrab、networkdll 模块) - 通过 HTTP/HTTPS 进行命令与控制通信 - 进程注入到合法的 Windows 进程中(explorer.exe、svchost.exe) ## 调查结果 ### Imageinfo - **OS Profile:** Win7SP1x64 —— Windows 7 Service Pack 1, 64-bit - **内存 dump 日期:** 2018-07-24 19:46:32 UTC+0100 ### Pslist —— 进程分析 - **PID 2928:** cmd.exe - 启动时间:2018-07-24 18:46:32 - 父 PID:1632 (vmtoolsd.exe) —— **可疑**(cmd.exe 不应由 VMware Tools daemon 启动) ### Pstree —— 进程层次结构 - **PID 2292:** 有 **8 个子进程** - 启动日期:2018-07-24 18:35:57 - 可能的感染日期:**2018-07-24** ### Psscan - 除了 pslist 中可见的进程外,未检测到隐藏进程。 ### Netscan —— 可疑网络连接 | 远程 IP | 端口 | 评估 | |-----------|------|------------| | 185.17.120.178 | 80 | Trickbot C2 (HTTP) | | 188.124.167.132 | 8082 | Trickbot C2 (备用端口) | | 158.58.131.54 | 443 | Trickbot C2 (HTTPS) | ### Malfind —— Code Injection 包含注入的 PE(MZ 标头)代码的进程: - explorer.exe (PID 1220) - svchost.exe (PID 576, 1896, 2292, 2464, 2484, 3468, 3560) ### VirusTotal 结果 - **检出率:** 16–50 家供应商将样本标记为恶意 - **恶意软件家族:** **Trickbot** ### 句柄 / DLL 分析 - **恶意文件夹:** `C:\Users\Win7x64\AppData\Roaming\nsgJob` - **关联进程:** explorer.exe (PID 1220) - **找到的文件前缀:** `8012d3` —— Trickbot 组件文件 ### 注册表分析 - **NTUSER.DAT 偏移量:** 0xfffff8a0017ef010 - **SOFTWARE hive 偏移量:** 0xfffff80000321010 - **SOFTWARE 最后更新:** 2018-07-05 14:23:01 UTC - **Software 下的子键:** 7 ### 进程角色总结 | PID | 进程 | 角色 | |-----|---------|------| | 576 | svchost.exe | 系统数据收集 | | 1220 | explorer.exe | 凭据窃取(密码窃取器) | | 1896 | svchost.exe | 金融数据拦截(sinj 模块) | | 2292 | svchost.exe | 8 个子进程的父进程 | | 2464 | svchost.exe | 金融数据拦截(sinj 模块) | | 2928 | cmd.exe | 网络发现 / 横向移动 | ## 截图 ### Imageinfo ![OS Profile](https://static.pigsec.cn/wp-content/uploads/repos/cas/2e/2e1e15a944b1bb370ee7c76cef68633d9ba5640123f22392fe32f0013870fd78.png) *Volatility imageinfo 输出确认内存 dump 来自 profile 为 Win7SP1x64 的 Windows 7 SP1 64 位系统。* ![内存详情](https://static.pigsec.cn/wp-content/uploads/repos/cas/90/90e889474af93a573842c8ba0310c0e38a49515a75151a786d54ca73fde82ebb.png) *完整的 imageinfo 输出,显示内存 dump 时间戳和系统标识符。* ### 进程分析 (Pslist) ![完整进程列表](https://raw.githubusercontent.com/Arizonal8/Memory-Forensics/main/screenshots/volatility-pslist-full-process-listing.png) *完整的 pslist 输出,显示捕获时所有正在运行的进程。* ![CMD 进程 2928](https://static.pigsec.cn/wp-content/uploads/repos/cas/e0/e0611b2f0fbfdb02ee7f4d0c5bbef000bc9cc801026e2745383437da027f7282.png) *突出显示的 PID 2928 (cmd.exe) —— 由 vmtoolsd.exe (PID 1632) 启动,这很可疑,表明存在 Trickbot 横向移动活动。* ![父进程](https://static.pigsec.cn/wp-content/uploads/repos/cas/0c/0c601b4a737cc88bf68aa1d0b83f266fc3ac818d7ad0098cc2c5a42a0a55f688.png) *父子进程关系分析,确认了异常的 cmd.exe 谱系。* ### 进程树 (Pstree) ![进程层次结构](https://static.pigsec.cn/wp-content/uploads/repos/cas/a1/a1964c158684d88b989e4c72f68df89f184ad00b76d8635dd2f0a6559da66b5e.png) *Pstree 输出,显示完整的进程层次结构,并识别出具有 8 个子进程的 PID 2292 —— 这与 Trickbot 模块生成一致。* ![子进程](https://static.pigsec.cn/wp-content/uploads/repos/cas/8b/8bbbae11394b1046ebd7b2831c1c60ac488dc4e0bf62050c6dd382260a34d691.png) *PID 2292 的 8 个子进程及其启动时间戳的详细视图。* ### Psscan ![Psscan 完整结果](https://static.pigsec.cn/wp-content/uploads/repos/cas/aa/aaf297ce0c65b865d63801405cc1c1ac6afc549b28b550ff29fd3e1ac655faa8.png) *完整的 psscan 输出 —— 除了 pslist 中可见的进程外,未识别出其他隐藏进程。* ![Psscan 摘要](https://static.pigsec.cn/wp-content/uploads/repos/cas/1c/1c1268b27ef37cd26120eab97115fb708d8e989767f1c6ae20452b30623e9b71.png) *确认 psscan 和 pslist 结果一致的摘要。* ### 网络连接 (Netscan) ![网络连接](https://static.pigsec.cn/wp-content/uploads/repos/cas/7b/7b601f40fe48a7ef140c7173a9d1cb00f8972462ee3cde6d70e05e9162f848f9.png) *Netscan 输出,显示捕获时处于活动状态的所有网络连接。* ![C2 地址](https://static.pigsec.cn/wp-content/uploads/repos/cas/e8/e88078bfb8e6b1b6b54e2ed614a5581177cfeb4fbf0d862ac1362df5ef8be052.png) *识别出三个可疑的外部 IP 地址:185.17.120.178:80、188.124.167.132:8082 和 158.58.131.54:443 —— 它们都是 Trickbot C2 endpoint。* ### Code Injection (Malfind) ![PE Header 注入](https://raw.githubusercontent.com/Arizonal8/Memory-Forensics/main/screenshots/volatility-malfind-injected-pe-header-mz.png) *Malfind 输出,显示注入内存区域中的 MZ (4D 5A) PE 标头 —— 确认了向合法进程中注入了 shellcode。* ![恶意进程](https://static.pigsec.cn/wp-content/uploads/repos/cas/ca/ca72fc0ece514ba259c7eb15796e8dcbbda169df931544050074b7355acda37f.png) *malfind 标记的所有进程列表:explorer.exe (PID 1220) 和多个 svchost.exe 实例。* ### VirusTotal ![检测摘要](https://static.pigsec.cn/wp-content/uploads/repos/cas/9b/9bb56ce25e2de2a16ec7117c6ab2ecdc34586697dbb3198f6d146a85f626f39b.png) *VirusTotal 结果显示,提取的内存样本有 16–50 家供应商检出。* ![识别出 Trickbot](https://static.pigsec.cn/wp-content/uploads/repos/cas/1d/1d62efbf4164887c873d70dbbd9ecb547bc16b2249bf98450fbd641fffe088d0.png) *多家防病毒供应商确认恶意软件家族为 Trickbot。* ### 句柄和 DLL 分析 ![恶意文件夹](https://static.pigsec.cn/wp-content/uploads/repos/cas/a4/a4cf43a86758515a21723edf6e37be7ead5d1d4091cf2d5eb4659c66fc36a3da.png) *句柄分析揭示了 Trickbot 数据目录:链接到 explorer.exe 的 C:\Users\Win7x64\AppData\Roaming\nsgJob。* ![Explorer DLL](https://static.pigsec.cn/wp-content/uploads/repos/cas/bf/bf0824618cb8459c56d464873c91fdfc735bf5bc85c40e69addde42fb4136f40.png) *explorer.exe (PID 1220) 的 DLL 列表,确认了注入的 Trickbot 模块。* ![文件前缀](https://raw.githubusercontent.com/Arizonal8/Memory-Forensics/main/screenshots/volatility-handles-file-prefix-8012d3.png) *识别出文件前缀 8012d3 —— 一种 Trickbot 组件文件命名模式。* ### 注册表分析 ![Hivelist](https://static.pigsec.cn/wp-content/uploads/repos/cas/9b/9b1d736c76ca2135c4a3d48ffa404c92ff479a228cf990899feafdf63ed0bfb1.png) *Hivelist 输出,显示所有已加载注册表 hive 的内存地址。* ![Software Hive](https://static.pigsec.cn/wp-content/uploads/repos/cas/e8/e8e00a8a4375b19ea23bfcc33d7fcae319d1f86cc1e1f8743ab09cc3b044f3fc.png) *Software hive 分析显示最后更新时间戳:2018-07-05 14:23:01。* ![子键](https://static.pigsec.cn/wp-content/uploads/repos/cas/71/7116b5b95c2a4e81508c582ccf164861c52dd8528f226e96935054f8e402dab8.png) *枚举内存中 Software 注册表键下的 7 个子键。* ### 附加分析 ![数据收集](https://static.pigsec.cn/wp-content/uploads/repos/cas/29/299bdd4c1ad1aa00bc3e4af3d8a6811c311671bc976f453fa58f49134ab87bdf.png) *识别出 PID 576 (svchost.exe) 负责系统数据收集。* ![金融模块](https://static.pigsec.cn/wp-content/uploads/repos/cas/4e/4ebca66af615d5e82a64b6389c7a4a473ef547e6dafe56f9f31da0b65c2c40e8.png) *PID 1896 链接到 Trickbot 的 sinj(银行注入)模块,用于拦截金融交易。* ![凭据窃取](https://static.pigsec.cn/wp-content/uploads/repos/cas/95/95852c65d5eaa4b2688c3970747ba09e64d4d92dfabbcf899d1061a92bba9b02.png) *PID 1220 (explorer.exe) 被确认为 Trickbot 的凭据收集组件,针对 Windows 凭据存储。* ![数据渗出](https://static.pigsec.cn/wp-content/uploads/repos/cas/ff/ff465dcab232653f6c198023553f62cc6056242f9c45451708caeb12769ad52c.png) *显示发往 C2 服务器的数据渗出流量的网络证据。* ![横向移动](https://static.pigsec.cn/wp-content/uploads/repos/cas/04/0401c951ce05cbbad31b4d3a7f0b4d562cea2777cf089da1ce8051aaed76e13d.png) *Trickbot 使用 PID 2928 (cmd.exe) 在受损环境中进行网络发现和横向移动。* ## 学习成果 - 使用 Volatility 获取和分析 Windows 内存 dump - 识别运行中的进程并检测异常的父子关系 - 使用 malfind 检测进程注入并提取注入的 PE 文件 - 分析网络连接以识别 C2 通信 - 使用 VirusTotal 将恶意软件样本归因于已知的家族 - 检查句柄和 DLL 以识别内存中的恶意 artefacts - 从内存 dump 中提取并分析注册表 hive
标签:DAST, IP 地址批量处理, SecList, Trickbot, 内存取证, 恶意软件分析, 数字取证, 自动化脚本, 逆向工具