Kuyenda18/volatility3-registry-memory-analysis
GitHub: Kuyenda18/volatility3-registry-memory-analysis
自定义 Volatility3 插件,用于从 Windows 内存镜像中提取注册表持久化键值并进行基线差异比对,加速 DFIR 内存取证排查流程。
Stars: 0 | Forks: 0
# Volatility3 注册表内存分析
本项目包含一个自定义的 Volatility3 插件,用于从内存镜像中进行 Windows 注册表分类排查。该插件 `windows.registry.fullinfo` 会枚举注册表配置单元(hives),提取选定的与持久化相关的键值,并支持基线/差异比对,以突出显示不同内存快照之间的注册表更改。
本项目旨在作为 Blue Team、SOC 和 DFIR 实习的作品集项目。它不声称具备生产环境部署或真实的企业事件响应经验。
## 功能简介
`windows.registry.fullinfo` 可帮助分析师快速查看在内存取证分类排查中通常相关的 Windows 注册表工件:
1. 枚举在 Windows 内存镜像中发现的注册表配置单元。
2. 对 `SYSTEM`、`SOFTWARE`、`NTUSER` 和 `USRCLASS` 等配置单元进行分类。
3. 提取选定的自启动(autorun)和与持久化相关的注册表值。
4. 重点关注与 MITRE ATT&CK `T1547.001` 相关的位置以及附近的注册表持久化审查点。
5. 从干净的内存快照中创建基线 JSON 文件。
6. 将后续快照与该基线进行比对,并报告 `NEW`(新增)、`CHANGED`(更改)和 `DELETED`(删除)的值。
## 安全应用场景
本项目涉及:
- 基于 RAM 的 Windows 注册表分析。
- DFIR 内存取证分类排查。
- 持久化机制追踪。
- 干净快照与被修改快照之间的基线比对。
- 更快地审查注册表工件,否则这些工件需要重复执行 `printkey` 查询。
## 技术栈
- Python 3
- Volatility3 插件框架
- Windows 内存镜像
- 内存中的 Windows 注册表配置单元
- JSON 基线与差异输出
- MITRE ATT&CK `T1547.001`
## 仓库结构
```
.
|-- README.md
|-- requirements.txt
|-- .gitignore
|-- docs/
| |-- design.md
| |-- security-review.md
| `-- usage.md
|-- sample-data/
| |-- baseline-clean.sample.json
| `-- diff-findings.sample.json
`-- volatility3/
`-- plugins/
`-- windows/
`-- registry/
`-- fullinfo.py
```
## 插件范围
该插件审查以下注册表区域:
- `HKCU\Software\Microsoft\Windows\CurrentVersion\Run`
- `HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce`
- `HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run`
- `HKLM\Software\Microsoft\Windows\CurrentVersion\Run`
- `HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce`
- `HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnceEx`
- `HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon`
- `Image File Execution Options` 可疑值
- `SYSTEM\ControlSet*\Control\Session Manager\BootExecute`
- 选定的 Shell/上下文菜单命令位置
## 使用说明
将该插件复制到 Volatility3 的检出目录中:
```
cp volatility3/plugins/windows/registry/fullinfo.py /path/to/volatility3/volatility3/plugins/windows/registry/fullinfo.py
```
运行默认的分类排查:
```
python3 vol.py -f memory.dmp windows.registry.fullinfo
```
创建干净基线:
```
python3 vol.py -f clean-memory.dmp -o output windows.registry.fullinfo --baseline-out baseline-clean.json
```
将被修改的快照与基线进行比对:
```
python3 vol.py -f modified-memory.dmp windows.registry.fullinfo --baseline output/baseline-clean.json --diff
```
可选的 HiveScan 模式:
```
python3 vol.py -f memory.dmp windows.registry.fullinfo --scan
```
更多详细信息请参见 `docs/usage.md`。
## 示例数据
原始内存样本在此工作区中已不再可用。因此,仓库包含了经过脱敏处理的演示性 JSON 文件:
- `sample-data/baseline-clean.sample.json`
- `sample-data/diff-findings.sample.json`
样本结果基于报告中描述的验证场景:
- `HKCU Run\Atomic Red Team`
- `HKLM Policies Explorer\Run\atomictest`
- 数值数据,例如 `calc.exe`
这些样本仅作文档演示之用,并非真实的事件数据。
## 注意事项与局限性
- 该插件基于规则,仅关注选定的注册表持久化位置。
- 结果取决于在获取快照时内存中存在哪些配置单元以及键/值单元格。
- 它不会从事务日志中恢复已删除的历史注册表值。
- 验证过程主要针对 Windows 10 风格的内存快照和 Atomic Red Team 持久化测试而设计。
## GitHub 安全性
原始报告的 PDF 和提取的文本包含个人学术信息,因此未包含在可公开的仓库中。在此工作区中未发现任何 API 密钥、凭据、日志、数据库或内存转储。评审说明请参见 `docs/security-review.md`。
标签:Homebrew安装, Python, SecList, Volatility3插件, Windows注册表, 内存取证, 数字取证, 无后门, 自动化脚本