Lil-Pwny:一款基于Python的多功能活动目录密码审计工具
字数 1317 2025-08-15 21:32:24
Lil-Pwny:多功能活动目录密码审计工具使用指南
工具概述
Lil-Pwny 是一款基于 Python 的多功能活动目录(Active Directory)密码审计工具,主要用于:
- 对活动目录用户密码的 NTLM 哈希进行离线安全审计
- 基于 Have I Been Pwned (HIBP) 数据库恢复活动目录密码
- 支持自定义密码字典检测目标用户
- 识别使用相同密码的账户
核心功能
1. HIBP 密码匹配
- 将活动目录用户的 NTLM 哈希与 HIBP 数据库中的哈希进行比对
- 匹配成功的账户信息将输出到指定文本文件
2. 自定义密码检测
- 支持使用自定义密码字典/列表检测目标活动目录用户
- 同时比对 NTLM 哈希、活动目录哈希和 HIBP 哈希
3. 重复密码检测
- 识别使用相同密码的不同账户
- 有助于发现管理员账户和标准账户之间的密码共享情况
4. 高性能处理
- 利用 Python 的多处理特性
- 支持高资源环境运行(24GB+内存)
- 计算核心越多,审计速度越快
安装方法
基础安装
pip install lil-pwny
安装后可作为全局命令使用。
使用说明
基本命令格式
lil-pwny [-h] -hibp HIBP [-a A] -ad AD_HASHES [-d] [-m] [-o OUTPUT]
参数详解
| 参数 | 描述 |
|---|---|
-hibp, --hibp-path |
HIBP 的 NTLM 哈希文本文件路径 |
-a, --a |
包含额外待检测密码的文本文件 |
-ad, --ad-hashes |
活动目录用户的 NTLM 哈希文件 |
-d, --find-duplicates |
输出使用相同密码的用户列表 |
-m, --memory |
将 HIBP 哈希列表加载到内存(需要至少24GB RAM) |
-o, --out-path |
设置输出路径,未设置时使用当前工作目录 |
使用示例
lil-pwny -hibp ~/hibp_hashes.txt -ad ~/ad_ntlm_hashes.txt -a ~/additional_passwords.txt -o ~/Desktop/Output -m -d
输入文件准备
1. 获取活动目录 IFM 导出
在域控制器上使用管理员权限执行:
ntdsutil
activate instance ntds
ifm
create full <output path>
此命令将在指定路径生成完整的活动目录域 IFM 导出。
2. 从 IFM 导出中提取 NTLM 哈希
需要安装 DSInternals PowerShell 模块:
$bootKey = Get-BootKey -SystemHivePath '.\registry\SYSTEM'
Get-ADDBAccount -All -DBPath '.\Active Directory\ntds.dit' -BootKey $bootKey | Format-Custom -View HashcatNT | Out-File ad_ntlm_hashes.txt -Encoding ASCII
此命令将生成包含"用户名:哈希"格式的 ad_ntlm_hashes.txt 文件。
3. 下载 HIBP 哈希文件
最新版 HIBP 哈希文件包含约 5.51 亿个密码哈希,可从官方渠道获取。
性能优化建议
-
内存加载选项 (
-m):- 可显著提高搜索速度
- 需要至少 24GB 可用内存
- 适用于高性能服务器环境
-
多核利用:
- 工具自动利用多核CPU
- 核心数越多,处理速度越快
-
输出管理:
- 指定输出路径避免混乱
- 定期清理旧结果文件
注意事项
- 确保拥有合法的审计权限
- 处理敏感数据时注意安全存储
- 大规模审计可能需要数小时完成
- HIBP 数据库需要定期更新以获得最新结果
参考资料
- Lil-Pwny GitHub 仓库
- ntdsutil & IFM 官方文档
- DSInternals PowerShell 模块文档
通过本指南,您应该能够全面了解 Lil-Pwny 的功能和使用方法,有效执行活动目录密码安全审计工作。