ad-ldap-enum 是一个Python脚本,用于从Active Directory收集用户/计算机及其组成员信息。在大型Active Directory环境中,像NBTEnum这样的工具不够快。通过向域控制器执行LDAP查询,ad-ldap-enum能够针对特定的Active Directory属性,快速构建组成员关系。
Domain_Group_Membership.csvExtended_Domain_User_Information.csvExtended_Domain_Computer_Information.csv-x/--excel 时,输出单个Excel工作簿该工具已在Windows和Linux上使用Python 3.10+构建和测试。它使用 msldap Python包进行LDAP连接和查询。使用 uv 将ad-ldap-enum安装为命令行工具:
uv tool install git+https://github.com/CroweCybersecurity/ad-ldap-enum
安装后,运行:
ad-ldap-enum --help
或者使用传统的pip安装/升级依赖:
git clone https://github.com/CroweCybersecurity/ad-ldap-enum && cd ./ad-ldap-enum
python -m pip install -r 'requirements.txt'
usage: ad-ldap-enum [-h] (-n | -u USERNAME | -dn DISTINGUISHED_NAME) [-k] [-p PASSWORD] [-P] [--ccache CCACHE_FILE]
[--kirbi KIRBI_FILE] [--method {ldap,ldaps}] [--channel-binding {none,tls-server-end-point,tls-unique}]
[-t TIMEOUT] [-ql QUERY_LIMIT] [--debug] [--legacy]
[-x] [-o FILENAME_PREPEND] [--delay DELAY] [--jitter JITTER] [--page-size PAGE_SIZE]
-l LDAP_SERVER [--port PORT] -d DOMAIN [-a ALT_DOMAIN] [-e] [-4] [-6]
Active Directory LDAP枚举器
可选参数:
-h, --help 显示此帮助信息并退出
-n, --null 使用匿名/空认证
-u USERNAME, --username USERNAME
用于认证的用户名
-dn DISTINGUISHED_NAME, --distinguished_name DISTINGUISHED_NAME
简单绑定认证的专有名称
-k, --kerberos 使用Kerberos认证
-p PASSWORD, --password PASSWORD
密码、"LM:NT"哈希、AES-128密钥(32位十六进制)或AES-256密钥(64位十六进制)
-P, --prompt 提示输入密码
--ccache CCACHE_FILE Kerberos凭据缓存文件路径(.ccache)
--kirbi KIRBI_FILE Kerberos票据文件路径(.kirbi)
--method {ldap,ldaps}
连接方式:ldap(端口389)或ldaps(端口636)
--channel-binding {none,tls-server-end-point,tls-unique}
安全连接的信道绑定(默认:tls-server-end-point)
-t TIMEOUT, --timeout TIMEOUT
连接超时时间(秒,默认:10)
-ql QUERY_LIMIT, --query_limit QUERY_LIMIT
查询超时时间(秒,默认:30)
--debug 启用调试日志(显示详细的msldap内部操作)
--legacy 使用传统TSV格式(较少属性)
-x, --excel 输出包含所有工作表的Excel文件
-o FILENAME_PREPEND, --prepend FILENAME_PREPEND
输出文件名前缀字符串(默认:ad-ldap-enum_)
OPSEC参数:
--delay DELAY LDAP查询之间的延迟秒数(默认:0.0)
--jitter JITTER 延迟的随机抖动百分比(0.0-1.0,例如0.3表示±30%)
--page-size PAGE_SIZE LDAP页面大小(默认:1000)
服务器参数:
-l LDAP_SERVER, --server LDAP_SERVER
LDAP服务器的FQDN或IP地址
--port PORT 自定义TCP端口
-d DOMAIN, --domain DOMAIN
域名(也用作基础DN)
-a ALT_DOMAIN, --alt-domain ALT_DOMAIN
用于LDAP搜索的备选基础DN
-e, --nested 展开嵌套组
-4, --inet 仅使用IPv4
-6, --inet6 仅使用IPv6
快速示例:
# 内联密码的NTLM
ad-ldap-enum domain.tld/username:[email protected]
# 密码提示的NTLM(省略密码,不使用-no-pass)
ad-ldap-enum domain.tld/[email protected] -p 'Password123!'
# 带密码的Kerberos
ad-ldap-enum domain.tld/username:[email protected] -k
# 带NT哈希的Kerberos (LM:NT)
ad-ldap-enum domain.tld/[email protected] -k -hashes aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
# LDAPS + 信道绑定
ad-ldap-enum domain.tld/username:[email protected] --method ldaps --channel-binding tls-server-end-point
-k、-hashes和-aesKey支持密码、NT哈希、AES-128和AES-256密钥认证--delay参数,在LDAP查询之间引入暂停--jitter参数,为时序模式增加随机性--page-size参数,控制LDAP结果分批