文章总结: 本文介绍了AD域信息收集工具ldapdomaindump,能将LDAP数据解析为HTML或JSON格式,导出域内用户、组、计算机及策略等关键信息。工具支持密码与NTLM认证,并具备最小化模式以规避检测。该工具便于后续分析,适合内网渗透侦察,但无法导出域控哈希。 综合评分: 90 文章分类: 安全工具,内网渗透,渗透测试,红队
域控信息收集利器-ldapdomaindump
原创
simeon的文章 simeon的文章
小兵搞安全
2026年1月22日 00:00 北京
1.1简介
在 Active Directory(AD)域环境中,任何经过身份验证的用户或计算机,都能通过 LDAP 协议检索到海量有价值的信息。这让 LDAP 成为内部网络渗透测试侦察阶段的理想信息收集协议,但 LDAP 数据的原生格式往往不易于阅读,给信息利用带来不便。 ldapdomaindump(项目地址:https://github.com/dirkjanm/ldapdomaindump)正是为解决这一痛点而生的工具 —— 它能够收集并解析 LDAP 中的可用信息,同时输出多种格式的结果:既包括人类易读的 HTML 格式,也涵盖机器可解析的 JSON、CSV/TSV 及 greppable 格式文件,兼顾人工分析与自动化处理需求。 该工具的核心设计目标如下: 便捷概览域内所有用户、组、计算机及策略信息; 支持双重身份验证方式:既可以通过用户名 + 密码验证,也支持 NTLM 哈希验证(需依赖 ldap3 版本 ≥1.3.1); 支持基于已建立的 LDAP 服务认证连接运行,可与 impacket 的 ntlmrelayx 等中继工具无缝集成。 工具运行后会输出多个文件,全面呈现域内对象信息,具体包括: domain_groups:域内组列表; domain_users:域内用户列表; domain_computers:域内计算机账户列表; domain_policy:域策略(如密码复杂度要求、账户锁定策略等); domain_trusts:入站 / 出站域信任关系及其属性信息。 此外,还会生成两个便于分类查看的分组文件: domain_users_by_group:按所属组归类的域用户; domain_computers_by_os:按操作系统分类的域计算机。
1.2.命令参数
ldapdomaindump.py [-参数] HOSTNAME python ldapdomaindump.py -h
- 2.1基本连接参数 -h, –help 说明:显示此帮助信息并退出。 -u USERNAME, –user USERNAME 说明:用于 LDAP 身份验证的用户名。格式通常为: username (使用 -d 参数指定的域) DOMAIN\username [email protected] 示例:-u Administrator, -u CORP\admin, -u [email protected] -p PASSWORD, –password PASSWORD 说明:用于 LDAP 身份验证的密码。如果未提供,程序会尝试进行空密码登录,并在失败后提示你输入密码。 -at {NTLM,SIMPLE}, –authtype {NTLM,SIMPLE} 说明:身份验证类型。 NTLM (默认):使用 Windows NTLM 认证。这是最常用的方式。 SIMPLE:使用普通的明文用户名/密码认证。仅在 LDAP 服务配置了 SSL(LDAPS)时才安全。 -n DNS_SERVER, –dns-server DNS_SERVER 说明:指定用于解析域记录(如 SRV 记录)的 DNS 服务器。如果不指定,将使用系统默认 DNS。 1.2.2. 输出控制参数 -o DIRECTORY, –outdir DIRECTORY 说明:指定存储输出文件的目录。默认是当前目录下的 ./ldapdomaindump/。 –no-html 说明:不生成 HTML 格式的报告文件。 –no-json 说明:不生成 JSON 格式的数据文件。 –no-grep 说明:不生成用于 grep 命令搜索的纯文本文件。 –grouped-json 说明:将 JSON 输出按对象类型(用户、组、计算机等)拆分到不同的文件中,而不是全部放在一个大的 domain.json 文件中。这更方便处理。 -d DELIMITER, –delimiter DELIMITER 说明:在纯文本(grep)输出文件中指定字段分隔符。默认为 :。 -r, –resolve 说明:尝试解析计算机对象的主机名。这会产生 DNS 查询,可能增加被发现的风险并降低速度。 -m, –minimal 说明:启用“最小化”模式。仅执行基本的 LDAP 查询,跳过可能触发警报的复杂查询(如获取 LAPS 密码等)。更隐蔽。 1.2.3使用示例 1.最基本用法(空会话或匿名访问) 如果目标域控制器允许匿名 LDAP 查询,这是最简单的侦察方式。 ldapdomaindump.py 192.168.1.10 如果目标不允许你们查询,则在当前目录会生成html文件,但内容为空。 2.使用域用户凭证进行认证 ldapdomaindump.py -u sm.com\penuser -p P@ssw0rd -o ./target_dump/ dc01.corp.local dc01.corp.local也可以是指定的IP地址,执行效果如图1-1所示。
图1-1 执行域控信息导出 到程序目录打开刚才指定的目录,在里面可以看到有html、grep以及json格式的域控信息。
3.不使用 HTML 报告,并启用 JSON 分组 ldapdomaindump.py -u [email protected] -p AdminPass123 –no-html –grouped-json 10.10.10.1 4.使用最小化模式,降低被发现风险 ldapdomaindump.py -u pentester -p Passw0rd! -m -o stealth_dump/ 192.168.100.5 工具运行后,在输出目录(如 ./ldapdomaindump)下会生成类似以下文件: domain_users.html/json/grep:所有域用户的详细信息(用户名、姓名、描述、最后登录时间、密码过期时间、邮箱等)。 domain_groups.html/json/grep:所有域组及其成员列表。 domain_computers.html/json/grep:所有加入域的计算机信息。 domain_policy.html/json/grep:域的密码策略、锁定期限等安全策略。 domain_trusts.html/json/grep:与其他域之间的信任关系。 domain_gpos.json:组策略对象信息。 1.2.4注意事项 1.权限要求 要获取完整的域信息,通常需要至少一个普通域用户的权限。匿名访问可能只能获得有限的公开信息。 2.隐蔽性 该工具会发起大量 LDAP 查询,在行为监控严格的网络中可能触发警报。-m(最小化)参数可以缓解此问题。 3.网络可达性 确保你的主机可以访问目标域控制器的 LDAP (389/tcp) 或 LDAPS (636/tcp) 端口。
总结:一款不错的域控信息收集工具,方便后期分析,缺点是不能导出域控哈希。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:小兵搞安全 simeon的文章 simeon的文章《域控信息收集利器-ldapdomaindump》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论