$npx -y skills add killvxk/cybersecurity-skills-zh --skill analyzing-heap-spray-exploitation使用 Volatility3 插件在内存转储中检测和分析堆喷射攻击,识别 NOP sled 模式、shellcode 落地区域以及进程虚拟地址空间中的可疑大型分配。
| 1 | # 分析堆喷射(Heap Spray)利用 |
| 2 | |
| 3 | ## 概述 |
| 4 | |
| 5 | 堆喷射(Heap Spray)是一种利用技术,将攻击者控制的数据(通常是 NOP sled 后跟 shellcode)填充到进程堆的大面积区域,以提高代码执行漏洞利用的可靠性。本技能涵盖使用 Volatility3 的 malfind、vadinfo 和 memmap 插件在内存转储中检测堆喷射工件、识别可疑连续内存分配、扫描 NOP sled 模式(0x90、0x0c0c0c0c)以及提取嵌入的 shellcode 进行分析。 |
| 6 | |
| 7 | ## 前置条件 |
| 8 | |
| 9 | - Python 3.9+,安装 `volatility3` 框架 |
| 10 | - 内存转储文件(.raw、.vmem、.dmp 格式) |
| 11 | - 了解虚拟内存布局和 VAD(虚拟地址描述符)树 |
| 12 | - 熟悉常见的 shellcode 模式和 NOP sled 编码 |
| 13 | |
| 14 | ## 工作流程 |
| 15 | |
| 16 | ### 步骤 1:识别可疑进程 |
| 17 | 使用 Volatility3 的 windows.malfind 扫描具有可执行注入内存区域的进程。 |
| 18 | |
| 19 | ### 步骤 2:分析 VAD 条目 |
| 20 | 使用 windows.vadinfo 检查 VAD 树条目,查找具有 RWX 权限的大型连续分配。 |
| 21 | |
| 22 | ### 步骤 3:扫描 NOP Sled 模式 |
| 23 | 在可疑内存区域中搜索 NOP sled 签名(0x90 序列、0x0c0c0c0c 模式)。 |
| 24 | |
| 25 | ### 步骤 4:提取和分析 Shellcode |
| 26 | 转储可疑内存区域,使用字节模式分析识别 shellcode。 |
| 27 | |
| 28 | ## 输出格式 |
| 29 | |
| 30 | JSON 报告,包含可疑进程、堆喷射指标、NOP sled 位置、内存区域大小和提取的 shellcode 哈希值。 |