samdump2 是一款专门用于从 Windows 系统的 SAM(安全账户管理器)和 SYSTEM 注册表文件中提取用户密码哈希的工具。它能够解密存储在 SAM 文件中的用户凭据信息,支持 Windows 2000、NT、XP 和 Vista 等多个系统版本,是渗透测试和数字取证中获取本地用户哈希的常用工具。
该工具的工作原理是首先从 SYSTEM 文件中提取用于加密 SAM 数据的 syskey(系统密钥),然后使用该密钥解密 SAM 文件中的用户密码哈希(包括 LM 哈希和 NTLM 哈希),最终以易于识别的格式输出,便于后续的密码破解或安全分析。
二、工具参数说明
| 参数 | 中文说明 |
|---|---|
| -d | 启用调试模式,显示详细的运行过程信息 |
| -h | 显示帮助信息,包括工具用法和参数说明 |
| -o file | 将提取的哈希结果写入指定文件(file 为目标文件名) |
| SYSTEM_FILE | 必需参数,指定 Windows 系统的 SYSTEM 注册表文件路径 |
| SAM_FILE | 必需参数,指定 Windows 系统的 SAM 注册表文件路径 |
三、使用教程
1. 前提条件
- 必须获取目标系统的两个关键注册表文件:
- SYSTEM:位于
C:\Windows\System32\config\SYSTEM,包含解密 SAM 所需的 syskey - SAM:位于
C:\Windows\System32\config\SAM,存储本地用户账户和加密的密码哈希
- SYSTEM:位于
- 获取方式:
- 本地系统:直接复制(需注意系统保护机制,可能需要在安全模式或离线环境中操作)
- 远程系统:通过文件共享、漏洞利用或镜像挂载等方式获取
- 取证镜像:从磁盘镜像中提取对应路径的文件
2. 基础使用方法
samdump2 的基本语法为:
samdump2 [参数] SYSTEM文件路径 SAM文件路径
3. 常用命令示例
(1)基本提取(直接输出到终端)
samdump2 /path/to/SYSTEM /path/to/SAM
功能:从指定的 SYSTEM 和 SAM 文件中提取用户哈希并显示在终端
输出示例:
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
User1:1000:aad3b435b51404eeaad3b435b51404ee:5f4dcc3b5aa765d61d8327deb882cf99:::
格式说明 :用户名:用户ID:LM哈希:NTLM哈希:::
(2)将结果保存到文件
samdump2 -o hashes.txt /path/to/SYSTEM /path/to/SAM
功能:提取哈希并保存到 hashes.txt 文件,便于后续使用 John the Ripper 或 Hashcat 等工具破解
(3)启用调试模式(排错用)
samdump2 -d /path/to/SYSTEM /path/to/SAM
功能:显示提取过程中的详细调试信息,用于排查文件读取失败或解密错误等问题
4. 使用注意事项
- 兼容性限制:
- 主要支持 Windows 2000/NT/XP/Vista 系统,对于 Windows 7 及以上版本可能提取不完整
- 高版本系统(如 Win10/11)建议使用更现代的工具(如 creddump7、mimikatz)
- 文件权限:
- 目标系统运行时,SAM 和 SYSTEM 文件可能被系统锁定,无法直接复制
- 解决方法:在目标系统离线状态(如通过 PE 系统)或从磁盘镜像中提取
- 法律合规:
- 仅在合法授权的渗透测试或取证场景中使用,未经允许提取他人系统哈希可能触犯法律
- 哈希利用:
- 提取的 NTLM 哈希可用于 Pass-the-Hash 攻击,无需破解即可实现身份验证
- LM 哈希在现代系统中可能为空(以
aad3b435b51404eea标识),表示未存储