
認証不要のNTLMエンドポイント偵察ツール。HTTP、SMB、MSSQL、SMTP、IMAP、POP3、NNTP、LDAP、RDPにわたるType-2チャレンジをデコードし、ADの詳細と内部IPを抽出します。
____ / // /__ ___ ______________ __ / / / __ / / / __ ` / / / __ / / / / __/ / / / / // / / / / / ( ) // // / // / /_ // //_/// // ///_/___/_,/__/
露出したNTLMを狩る BoydHacks · github.com/BoydHacks
# ntlmscout
**インターネットに露出したNTLMエンドポイントから、あらゆる情報を一滴残らず搾り取るための1つのツール。**
認証されていないNTLMネゴシエーションは、資格情報が1つも送信される前に、驚くほど多くの内部Active Directoryの詳細を漏洩します。`ntlmscout`は、幅広いトランスポートを介してNTLM Type-1(NEGOTIATE)メッセージを送信し、返ってくるType-2(CHALLENGE)を完全にデコードして、すべてを引き出します。内部NetBIOS/DNSのホスト名とドメイン名、ADフォレスト、OSビルド(親しみやすいWindowsバージョンにマッピング)、サーバークロック(およびそのずれ)、ネゴシエートフラグ、そしてすべてのAV_PAIRです。さらに、隣接する認証不要の情報開示や、オプションのロックアウトに安全なパスワードスプレーでそれを強化します。
純粋な標準ライブラリのみ。単一ファイル。Python 3.7+。依存関係なし。
## 機能
- **すべてのトランスポートを1つのツールで** — HTTP(S)(エンドポイント探索付き)、SMB2/3、MSSQL/TDS、SMTP、IMAP、POP3、NNTP、LDAP(S)、およびRDP/CredSSP(NLA)。
- **深いType-2デコード** — NetBIOS + DNSのホスト/ドメイン、フォレスト/ツリー名、OSビルド → 親しみやすい名前(クライアントとサーバーを明確に区別)、サーバータイムスタンプ + クロックスキュー、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機能レベル)。
- **高速** — ポート生存確認ゲートが閉じたポートでのすべてのプローブをスキップするため、フィルタリングされたホストが大量のタイムアウトを引き起こすことはありません。
- **ロックアウトに安全なスプレーモード** — パスワードスプレーの順序付け(ラウンドごとにすべてのユーザーに対して1つのパスワード)、最も効果的なエンドポイントに対する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を追加してください。
スプレーモードはオプトインであり、パスワードスプレーの順序付けに固定されています — ラウンドごとにすべてのアカウントに対して1つのパスワードが試行されるため、どのアカウントもラウンドごとに1回を超える試行を受けることはありません。--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