堆喷利用分析 是做什么的?
概述
堆喷是一种利用技术,攻击者通过填充进程堆中的大片区域(通常为 NOP 滑板后接 shellcode)来提高代码执行漏洞的可靠性。本技能涵盖使用 Volatility3 的 malfind、vadinfo 和 memmap 插件检测内存转储中的堆喷痕迹,识别可疑的连续内存分配,扫描 NOP 滑板模式(0x90、0x0c0c0c0c),并提取嵌入的 shellcode 进行分析。
使用场景
- 调查需要分析堆喷利用的安全事件时
- 构建此领域的检测规则或威胁狩猎查询时
- SOC 分析师需要该分析类型的结构化程序时
- 验证相关攻击技术的安全监控覆盖范围时
前提条件
- Python 3.9+ 并安装
volatility3框架 - 内存转储文件(.raw、.vmem、.dmp 格式)
- 理解虚拟内存布局和 VAD(虚拟地址描述符)树
- 熟悉常见的 shellcode 模式及 NOP 滑板编码
步骤
步骤 1:识别可疑进程
使用 Volatility3 windows.malfind 扫描含有可执行注入内存区域的进程。
步骤 2:分析 VAD 条目
使用 windows.vadinfo 检查 VAD 树条目,查找具有 RWX 权限的大型连续内存分配。
步骤 3:扫描 NOP 滑板模式
在可疑内存区域中搜索 NOP 滑板特征(0x90 序列、0x0c0c0c0c 模式)。
步骤 4:提取并分析 Shellcode
转储可疑内存区域,并通过字节模式分析识别 shellcode。
预期输出
包含可疑进程、堆喷指示器、NOP 滑板位置、内存区域大小以及提取的 shellcode 哈希的 JSON 报告。