未认证的 NTLM 端点侦察工具,可解码 HTTP、SMB、MSSQL、SMTP、IMAP、POP3、NNTP、LDAP 和 RDP 中的 Type-2 挑战,以提取 AD 详细信息和内部 IP。
____ / // /__ ___ ______________ __ / / / __ / / / __ ` / / / __ / / / / __/ / / / / // / / / / / ( ) // // / // / /_ // //_/// // ///_/___/_,/__/
猎捕暴露的 NTLM BoydHacks · github.com/BoydHacks
# ntlmscout
**一款工具,从互联网暴露的 NTLM 端点中榨取每一滴信息。**
一次未经身份验证的 NTLM 协商,在发送任何凭据之前,就会泄露大量令人惊讶的内部 Active Directory 细节。`ntlmscout` 会在多种传输协议上发送 NTLM Type-1(NEGOTIATE)消息,完整解码返回的 Type-2(CHALLENGE),并提取出所有内容:内部 NetBIOS/DNS 主机名和域名、AD 林、操作系统版本(映射为友好的 Windows 版本)、服务器时钟(及时钟偏差)、协商标志,以及每一个 AV_PAIR——然后用相邻的未认证泄露信息和一个可选的、防锁定的密码喷洒来丰富这些内容。
纯标准库。单文件。Python 3.7+。无依赖。
## 功能特性
- **一款工具涵盖所有传输协议** — HTTP(S)(含端点发现)、SMB2/3、MSSQL/TDS、SMTP、IMAP、POP3、NNTP、LDAP(S) 和 RDP/CredSSP(NLA)。
- **深度 Type-2 解码** — NetBIOS + DNS 主机名/域名、林/树名称、操作系统版本 → 友好名称(区分客户端与服务器)、服务器时间戳 + 时钟偏差、SPN、MachineID、通道绑定,以及完整的协商标志分解。
- **解读,而非仅仅转储** — 诚实的**成员与域控制器**分类(只有当 DC 服务实际响应时才判定为 DC),以及安全态势解读(SMB/LDAP 签名、EPA/通道绑定、NTLMv1/LM 弱加密)。
- **恢复内部 IP** — 这是 NTLM 本身无法提供的信息 — 通过 IIS Host 头泄露(CVE-2000-0649)、WebDAV PROPFIND、RPC `IOXIDResolver::ServerAlive2`(TCP 135)以及 TLS/RDP 证书 IP SAN。
- **额外泄露信息** — TLS/RDP 证书 CN + SAN、Exchange `X-FEServer`/`X-CalculatedBETarget` 头泄露,以及匿名 **LDAP rootDSE** 丰富(命名上下文、`dnsHostName`、AD 功能级别)。
- **快速** — 端口存活门控会跳过关闭端口上的所有探测,因此被过滤的主机不会让你付出大量超时的代价。
- **防锁定喷洒模式** — 密码喷洒排序(每轮对所有用户使用同一个密码)、针对最有效端点的 NTLM Type-3 或 HTTP Basic,并给出清晰的 有效 / 无效 / 不确定 判定。
- **可直接用于报告的输出** — 按主机分组的摘要,外加 JSON、NDJSON、CSV 和 NetExec 风格的 hosts 文件。输出文件以仅所有者权限写入。
## 安装
```bash
git clone https://github.com/BoydHacks/ntlmscout
cd ntlmscout
python3 ntlmscout.py --help
无需 pip install,无需 virtualenv — 它只使用 Python 标准库。
# 侦察单个 IP 或主机(全面扫描每个支持 NTLM 的端口)
python3 ntlmscout.py 203.0.113.10
python3 ntlmscout.py mail.example.com
# 特定端点、整个网段或目标列表
python3 ntlmscout.py https://mail.example.com/ews/
python3 ntlmscout.py 10.0.0.0/24
python3 ntlmscout.py -I targets.txt --json results.json
# 将所有流量通过 Burp / CONNECT 代理路由
python3 ntlmscout.py -I targets.txt --proxy 127.0.0.1:8080
# 针对最佳端点进行防锁定密码喷洒
python3 ntlmscout.py --spray -I hosts.txt -u users.txt -p 'Winter2026!' --delay 1800
侦察默认执行全面扫描。用 --no-discover(跳过 HTTP 路径字典)或 --no-internal-ip(跳过证书/OXID/IIS 检查)来精简。完整菜单见 --help。
========================================================================
HOST: 203.0.113.10 (EXCH01.corp.example.com)
------------------------------------------------------------------------
External address : 203.0.113.10
Internal address : 10.0.0.25
Realm : CORP
Realm type : domain
NetBIOS host : EXCH01
NetBIOS domain : CORP
DNS host : EXCH01.corp.example.com
DNS domain : corp.example.com
DNS forest : corp.example.com
OS : Windows Server 2019
OS build : 10.0.17763
Server time (UTC) : 2026-01-01 12:00:00
Time skew (s) : -0.1
Role : Domain member
NTLM endpoints identified: 4
- https://203.0.113.10/ews/
- https://203.0.113.10/rpc/
- https://203.0.113.10/autodiscover/
- smb://203.0.113.10:445
========================================================================
[+] 4 exposed NTLM endpoint(s) on 1 of 1 host(s).
发现的端点会自动列在屏幕上。添加 -o log.txt
可获得完整的逐字段日志,或使用 --json/--csv 获得机器可读输出。
喷洒模式为可选启用,并硬编码为密码喷洒排序 — 每轮对所有账户尝试同一个密码,因此任何账户每轮都不会看到超过一次的尝试。将 --delay 设置为目标的锁定观察窗口,并在运行前确认锁定策略。它会分别报告有效、干净拒绝和不确定的结果,因此负面结果是可信的,而不是损坏的判定器造成的假象。
ntlmscout 站在开创 NTLM 端点侦察的研究人员和工具的肩膀上。他们的想法、技术和端点字典直接启发了本项目:
*-ntlm-info NSE 脚本 — Justin Cacak(http/imap/pop3/smtp/nntp/telnet/ms-sql)和 Tom Sellers(rdp):从各服务中诱导出 Type-2 的逐协议方法。IOXIDResolver::ServerAlive2 内部地址技术和 NTLM 中继/态势概念的文档。协议细节遵循 Microsoft 的 [MS-NLMP] 开放规范以及 Eric Glass 经典的 davenport NTLM 笔记。IIS 内部 IP 泄露为 CVE-2000-0649。
如果你的工作应列于此而我遗漏了你,请提交 issue — 应得的致谢,我会添加。
BoydHacks — github.com/BoydHacks