BashiruDamoah/MEMORY-FORENSICS-INVESTIGATION-OF-AN-AGENT-TESLA-MALWARE-INFECTION-USING-VOLATILITY-3

GitHub: BashiruDamoah/MEMORY-FORENSICS-INVESTIGATION-OF-AN-AGENT-TESLA-MALWARE-INFECTION-USING-VOLATILITY-3

使用Volatility 3进行内存取证调查,分析AgentTesla恶意软件感染并提取威胁指标。

Stars: 0 | Forks: 0

# 使用 Volatility 3 对 AgentTesla 恶意软件感染进行内存取证调查 使用 Volatility 3 进行实战内存取证调查——从原始内存映像中进行进程分析、注入检测、注册表取证、SMTP 数据外传字符串提取以及 C2 IOC 恢复。 # 使用 Volatility 3 对 AgentTesla 恶意软件感染进行内存取证调查 对一台感染了 AgentTesla 信息窃取恶意软件(使用 PyInstaller 打包)的 Windows 10 虚拟机进行的实战内存取证调查。分析在 Ubuntu 主机上使用 Volatility 3 进行,涵盖了进程分析、注入检测、DLL 检查、网络取证、注册表持久化以及字符串级 IOC 恢复。 ## 免责声明 本仓库仅用于**教育和研究目的**。本次调查中使用的恶意软件样本来源于 [MalwareBazaar](https://bazaar.abuse.ch/) (abuse.ch),一个公开的恶意软件存储库。所有分析均在隔离的、物理断网的虚拟环境中进行。 - 恶意软件样本按照标准信息安全实践,以密码保护的 zip 文件形式提供 - **文件名:** `AgentTesla.zip` - **密码:** `infected` - 必须将 zip 文件**下载到本地**才能解压——无法在 GitHub 上直接打开 - 只能在**隔离的、物理断网的虚拟环境**中打开 - 切勿在主机或生产系统上执行恶意软件 - 作者对本仓库中任何材料的误用不承担任何责任 ## 项目概述 本调查展示了一套应用于实时受感染机器的完整内存取证工作流程: 1. **内存获取** — 在恶意软件活动运行时,使用 WinPmem 从受感染的 Windows 10 VM 捕获原始内存映像 2. **映像传输与验证** — 将 7.06 GB 的内存转储移至 Ubuntu 分析主机,并使用 `windows.info` 进行验证 3. **进程分析** — 使用 `pslist`、`pstree`、`psscan` 和 `cmdline` 识别恶意的 `internet_detector.exe` 进程及其自生成的子进程 4. **注入检测** — 运行 `malfind` 检查注入的内存区域,发现 `MsMpEng.exe` 中疑似 AV 干扰行为 5. **DLL 检查** — 识别出从 PyInstaller 的 `_MEI` 临时目录加载的 `python310.dll` 和 `ucrtbase.dll`,确认了打包方式 6. **网络取证** — 使用 `netscan` 检查内存中的连接记录 7. **注册表分析** — 枚举配置单元并读取 Run 键值,发现一个带有空字节的可疑 `ransomware.exe` 持久化条目 8. **字符串提取** — 对原始内存转储运行 GNU `strings`,并使用 grep 搜索 SMTP 地址、C2 URL 和键盘记录器标识符 ## 展示的技能 - 使用 WinPmem 进行实时内存获取 - 内存映像传输与验证 - 使用 Volatility 3 进行进程分析和隐藏进程检测 - 使用 `malfind` 进行代码注入检测 - 针对非标准加载路径的 DLL 检查 - 从内存中分析注册表取证 - 通过原始字符串提取恢复 IOC - 识别 PyInstaller 恶意软件打包方式 - 事件响应建议 ## 主要发现 | 发现 | 详情 | |------|------| | 恶意进程 | `internet_detector.exe`,从 `C:\Tools\internet_detector\` 运行 | | 自我复制 | PID 2824 在 25 秒内生成了子进程 PID 4740 | | PyInstaller 打包 | `python310.dll` 从 `AppData\Local\Temp\_MEI28242` 加载 | | C2 基础设施 | `185.234.72.230`,`gate.php` 端点,伪装为 Google 存储路径 | | SMTP 数据外传 | 在内存字符串中发现 `admin@smtp.rambler.ru`、`admin@smtp.yandex.ru` | | AV 干扰 | `MsMpEng.exe` 有 14 个标记为 `PAGE_EXECUTE_READWRITE` 的区域 | | 注册表持久化 | HKCU Run 键中存在带空字节的 `ransomware.exe` 条目 | | VirusTotal 检测 | 72 家供应商中有 59 家将该样本标记为恶意 | ## 仓库内容 | 文件 | 描述 | |------|------| | `report.pdf` | 完整的调查报告 | | `AgentTesla.zip` | 受密码保护的恶意软件样本——必须**下载**才能访问。密码:`infected` | | `iocs.txt` | 从调查中提取的所有威胁指标 (IOC) | | `volatility_commands.txt` | 使用的所有 Volatility 3 命令及解释 | | `memory_strings.txt` | 从原始内存转储中恢复的关键字符串 | ## 工具与环境 | 类别 | 工具 | |------|------| | 受感染 VM | Windows 10 x64, VMware Workstation 17.5 | | 分析主机 | Ubuntu 24 | | 内存获取 | WinPmem | | 内存分析 | Volatility 3 (v2.28.0) | | 字符串提取 | GNU strings | | 进程监控 | Process Explorer (Sysinternals) | | 威胁情报 | VirusTotal, MalwareBazaar | ## 调查步骤详解 ### 步骤 1 — 环境设置 - 配置 Windows 10 VM 使用仅主机网络适配器,以防止真实的 C2 通信 - 在 Ubuntu 分析主机上安装并验证 Volatility 3 - 在引入恶意软件样本之前拍摄干净的 VM 快照 ### 步骤 2 — 恶意软件执行与内存捕获 - 在隔离的 VM 内执行 AgentTesla 样本 - 通过 Process Explorer 观察到 `internet_detector.exe` 出现在 PID 2732 下 - 让恶意软件运行约 3 小时以完成完整的持久化设置 - 使用 WinPmem 捕获了 7.06 GB 的原始内存映像 - 通过 Python HTTP 服务器以约 193 MB/s 的速度将映像传输到 Ubuntu 主机 ### 步骤 3 — 进程分析 - `pslist` 返回 133 个进程——其中两个名为 `internet_detec` 的条目很突出 - `pstree` 揭示了完整路径 `C:\Tools\internet_detector\internet_detector.exe` - PID 2824 的父进程是 `svchost.exe` (PID 1268)——这对于用户运行的进程来说不寻常 - PID 4740 由 PID 2824 在约 25 秒后生成——证实了自我复制行为 - `psscan` 与 `pslist` 完全匹配——恶意软件未使用 rootkit 隐藏技术 ### 步骤 4 — 注入检测 - 对 PID 2824 和 PID 4740 运行 `malfind` 未返回标记区域 - 全系统扫描标记了 `MsMpEng.exe`,发现 14 个 `PAGE_EXECUTE_READWRITE` 区域——这与 AgentTesla 已知的 AV 干扰行为一致 ### 步骤 5 — DLL 检查 - PID 2824 的 DLL 列表干净——全部来自 `C:\Windows\System32\` - PID 4740 从 `AppData\Local\Temp\_MEI28242\` 加载了 `python310.dll` 和 `ucrtbase.dll` - `_MEI` 命名模式证实了 PyInstaller——恶意软件是一个编译成独立可执行文件的 Python 脚本 ### 步骤 6 — 网络与注册表分析 - `netscan` 未发现到 C2 的活动连接——考虑到仅主机的网络隔离,这是预期的 - `hivelist` 提供了用于查询 Run 键的配置单元偏移量 - HKLM Run 键仅包含合法条目 - HKCU Run 键包含一个带有空字节的 `ransomware.exe` 条目——这是同一 VM 上先前会话的残留 ### 步骤 7 — 字符串提取与 IOC 恢复 - `strings -n 8` 从 7 GB 的转储中提取了所有可打印序列 - SMTP grep 返回了 `admin@smtp.rambler.ru`、`admin@smtp.yandex.ru` 以及键盘记录器标识符字符串 - C2 grep 返回了 `185.234.72.230`、`gate.php` URL 以及一个伪装的 Google 存储路径 - 对两个 PID 运行 `dumpfiles` 均未返回输出——这符合 PyInstaller 临时提取执行模型的预期 *作者:Damoah Bashiru*
标签:AlienVault OTX, 逆向工具