secretsdump.py 使用教程
1. 项目概述
secretsdump.py 是一个基于 Impacket 库的增强版 Windows 系统密码哈希提取工具。该项目在原始版本的基础上增加了多线程支持和批量主机处理能力,可以同时从多个 Windows 系统中提取密码哈希和 Kerberos 密钥等敏感信息。
2. 项目结构
项目包含以下主要文件:
secretsdump.py- 主程序文件,包含所有核心功能README.md- 项目说明文档LICENSE- 许可证文件
3. 核心功能
secretsdump.py 支持多种密码哈希提取方法:
3.1 DRSUAPI 方法
通过域复制服务 API 从 NTDS.dit 文件中提取用户哈希值,这是默认的提取方法。
3.2 VSS 方法
使用卷影复制服务创建 NTDS.dit 的副本进行离线分析,使用 -use-vss 参数启用。
3.3 Kerberos Key List 方法
通过 Kerberos TGS-REQ 请求提取密钥,需要使用 -use-keylist 参数并指定 RODC 相关信息。
4. 安装要求
4.1 系统要求
- Python 3.x
- Impacket 库
4.2 依赖安装
pip3 install impacket
5. 使用方法
5.1 基本语法
python3 secretsdump.py [domain/]username[:password] -t THREADS -inputfile INPUTFILE [options]
5.2 主要参数说明
认证参数:
target- 目标认证信息,格式为[domain/]username[:password]-hashes LMHASH:NTHASH- 使用 NTLM 哈希进行认证-k- 使用 Kerberos 认证-aesKey- 用于 Kerberos 认证的 AES 密钥
多线程参数:
-t THREADS,--threads THREADS- 并发线程数(默认 5)-inputfile INPUTFILE- 包含目标主机列表的文本文件
输出参数:
-outputfile OUTPUTFILE- 输出目录路径-just-dc- 仅提取 NTDS.DIT 数据-just-dc-user USERNAME- 仅提取指定用户的 NTDS.DIT 数据
提取方法参数:
-use-vss- 使用 VSS 方法-use-keylist- 使用 Kerberos Key List 方法-exec-method- 远程执行方法(smbexec、wmiexec、mmcexec)
6. 使用示例
6.1 批量提取示例
python3 secretsdump.py mydomain/myuser:mypassword -t 10 -inputfile hosts.txt -outputfile ./results
此命令将从 hosts.txt 文件中列出的所有目标主机同时提取密码哈希,使用 10 个并发线程,结果保存在 ./results 目录中。
6.2 单目标提取示例
python3 secretsdump.py administrator:Password123 -target-ip 192.168.1.100 -just-dc
6.3 使用哈希认证示例
python3 secretsdump.py domain/user -hashes aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 -inputfile targets.txt
7. 输入文件格式
输入文件应为纯文本格式,每行一个目标主机的主机名或 IP 地址:
192.168.1.10
dc01.example.com
10.0.0.5
workstation01
8. 输出文件格式
输出文件命名格式为 {domain}-{username}-{target} 或 {username}-{target}(无域时),包含提取的各种密码哈希和密钥信息。
9. 注意事项
- 法律合规性:仅在获得明确授权的环境中使用此工具
- 网络影响:多线程操作可能对目标网络产生较大负载
- 错误处理:工具包含完善的错误处理和连接恢复机制
- 清理机制:执行完成后会自动清理临时文件和恢复系统状态
10. 故障排除
10.1 常见问题
- 权限不足时无法访问 NTDS.dit 文件
- 网络连接问题可能导致提取失败
- 域控制器配置可能影响某些提取方法
10.2 调试模式
使用 -debug 参数启用详细调试信息:
python3 secretsdump.py ... -debug
11. 高级功能
11.1 密码历史提取
使用 -history 参数提取密码历史记录:
python3 secretsdump.py ... -history
11.2 用户状态显示
使用 -user-status 参数显示用户账户状态:
python3 secretsdump.py ... -user-status
11.3 最后密码设置时间
使用 -pwd-last-set 参数显示密码最后设置时间:
python3 secretsdump.py ... -pwd-last-set
12. 技术实现
工具基于 Impacket 库实现,主要使用以下技术:
- SMB 协议用于远程文件访问
- DRSUAPI 用于域复制操作
- 注册表操作用于提取 SAM 和 LSA 信息
- 多线程并发处理提高效率
通过合理的参数配置和批量处理能力,secretsdump.py 成为 Windows 环境安全评估和渗透测试中的重要工具。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



