enclaive/vmgrab
GitHub: enclaive/vmgrab
VMgrab 是一款验证虚拟机内存加密是否正确启用的攻防安全工具,通过内存转储和敏感数据搜索来评估机密计算的实际防护效果。
Stars: 3 | Forks: 0
```
____ ,-.----.
,' , `. ,----.. ,-.----. ,---, \ / \
,---. ,-+-,.' _ | / / \ \ / \ ' .' \ | : \
/__./| ,-+-. ; , ||| : : ; : \ / ; '. | | .\ :
,---.; ; | ,--.'|' | ;|. | ;. / | | .\ : : : \ . : |: |
/___/ \ | || | ,', | ':. ; /--` . : |: | : | /\ \ | | \ :
\ ; \ ' || | / | | ||; | ; __ | | \ : | : ' ;. : | : . /
\ \ \: |' | : | : |,| : |.' .'| : . / | | ;/ \ \; | |`-'
; \ ' .; . | ; |--' . | '_.' :; | | \ ' : | \ \ ,'| | ;
\ \ '| : | | , ' ; : \ || | ;\ \| | ' '--' : ' |
\ ` ;| : ' |/ ' | '/ .': ' | \.'| : : : : :
: \ |; | |`-' | : / : : :-' | | ,' | | :
'---" | ;/ \ \ .' | |.' `--'' `---'.|
'---' `---` `---' `---`
VMgrab — VM memory dump validator
OffSec tool to validate VM memory encryption and confidential computing enablement.
Use for authorised penetration tests and security assessments only.
[!] AUTHORIZED TESTING ONLY — Run only against systems you own or have explicit written permission to test.
(c) 2025 enclaive.io | Repo: https://github.com/enclaive/vmgrab | License: MIT
🎯 Attacking VM: neo4j-vm1
📥 [1/3] Dumping memory...
━━━━━━━━━━━━━━━━━━━━━━━━ 100% | 4.2 GB
🔍 [2/3] Searching for pattern: 117-66-8129
Found at offset 0x2a4f8000:
...NHS:117-66-8129,Name:John Smith...
✅ Result: VULNERABLE - Sensitive data exposed!
```
## 概述
标准虚拟机会在客户机 RAM 中暴露明文代码和数据。Confidential VM(机密虚拟机,例如 AMD SEV-SNP、Intel TDX)旨在保持客户机内存在运行时加密,并最小化 hypervisor/宿主机的攻击面。VMgrab 是一款面向技术评估人员的攻防安全工具,它自动化了 VM 内存获取技术,并生成取证工件和测试向量,以评估机密性保证在实践中是否有效。它专为渗透测试人员、红队成员、审计员和事件响应人员设计,用于实证验证加密/认证行为,识别实施差距,并记录可复现的发现。
## VMgrab 的主要功能
虚拟机会在 RAM 中暴露易失性客户机状态——代码、密钥和运行时数据。Confidential VM 技术(特别是 AMD SEV-SNP 和 Intel TDX)提供运行时内存加密及相关认证机制,以限制宿主机/hypervisor 的可见性。VMgrab 是一个攻防工程工具集,它:
- 使用云和本地 hypervisor 常见的宿主机级获取向量,自动化受控的 VM 内存获取;
- 生成规范化的内存转储和审计工件,以便进行可重复分析;
- 验证并核查机密性和认证声明(例如,页面在静态/传输中是否保持加密,固件/宿主机组件是否泄露客户机明文,以及客户机密钥/TEE 是如何管理的);
- 帮助量化 SEV/TDX 部署中的真实攻击面和实施差距,并生成适用于技术报告和修复规划的凭据。
目标受众:
- 经验丰富的攻防安全工程师
- 取证分析师
- 执行授权安全评估的系统架构师
用例:
- 安全研究与渗透测试
- 机密计算演示
- 内存加密教育研讨会
- 合规审计(证明数据保护)
**重要提示:仅对您拥有明确书面授权的资产使用。**
## 功能特性
- **多后端内存转储支持:**
- `procmem` — 基于通用的 `/proc/pid/mem` 转储(适用于任何 hypervisor,包括 Kata Containers)
- `libvirt` — 基于 virsh 的转储,用于 libvirt 管理的 VM
- `qemu` — 直接 QMP socket 通信
- 搜索内存转储中的敏感数据(NHS 号码、SSN、电子邮件等)
- 对比经典 VM 与 Confidential VM(带内存加密的 cVM)
- 从 QEMU 命令行自动检测 SEV-SNP/SEV/TDX
- 针对 enclave 运行自动化攻击
## 系统要求
- 带有 KVM/QEMU 的 Linux 宿主机操作系统
- `sudo` 权限(用于 `/proc/pid/mem` 访问)
- Go 1.22+(用于从源代码构建)
- 可选:`virsh` 用于 libvirt 后端
## 安装
```
# 使用 Makefile 构建(推荐 - 包含版本信息)
make build
# 二进制文件位于 bin/vmgrab
./bin/vmgrab --version
# 或安装到 /usr/local/bin
make install
# 或手动构建
go build -o bin/vmgrab
```
## 配置
创建 `.vmgrab.yaml` 配置文件以进行自定义设置:
```
./bin/vmgrab config init
```
有关配置选项,请参阅 `.vmgrab.yaml.example`。
## 命令
- `list` - 列出所有 VM 及其安全状态(SEV-SNP vs 易受攻击)
- `dump` - 将 VM 内存转储到文件
- `search` - 在内存转储中搜索模式(支持正则表达式)
- `attack` - 对单个 VM 进行完整攻击演示(转储 + 搜索 + 清理)
- `demo` - 对比标准 VM 与 Confidential VM 的全自动化演示
- `disk-search` - 从宿主机搜索 VM 磁盘文件(验证 LUKS 加密)
- `config` - 管理配置(init, show, validate)
## 使用示例
```
# 列出所有 VM 及其安全状态
./bin/vmgrab list
# Dump VM memory (auto-selects best backend: procmem)
sudo ./bin/vmgrab dump -o /tmp
# Force specific backend
sudo ./bin/vmgrab dump -o /tmp --backend procmem
sudo ./bin/vmgrab dump -o /tmp --backend libvirt
# Search memory dump for patterns
./bin/vmgrab search /tmp/-*.dump "password"
./bin/vmgrab search /tmp/-*.dump "123-45-6789"
# Run complete attack on single VM
sudo ./bin/vmgrab attack --pattern "sensitive-data"
# Run full demo (standard VM vs confidential VM)
sudo ./bin/vmgrab demo
```
## 后端
| 后端 | 方法 | 适用场景 |
|---------|--------|----------|
| `procmem` (默认) | `/proc/pid/mem` | 通用 - 适用于包括 Kata 在内的所有环境 |
| `libvirt` | `virsh dump --memory-only` | libvirt 管理的 VM |
| `qemu` | QMP `dump-guest-memory` | 直接 QEMU 访问 |
默认后端是 `procmem`,因为它适用于任何带有 QEMU 进程的 Linux 系统,包括:
- 标准 libvirt VM
- Kata Containers(其 QMP socket 被运行时占用)
- 任何直接 QEMU 进程
标签:EVTX分析, EVTX分析, HTTP工具, SecList, VM内存转储, 内存加密验证, 内存取证, 内存抓取, 动态调试, 安全测试, 攻击性安全, 敏感数据泄露, 数据防护, 日志审计, 机密计算, 虚拟机安全, 身份验证强制, 隐私计算