
Unauthentifiziertes NTLM-Endpunkt-Aufklärungstool, das Type-2-Challenges über HTTP, SMB, MSSQL, SMTP, IMAP, POP3, NNTP, LDAP und RDP dekodiert, um AD-Details und interne IPs zu extrahieren.
____ / // /__ ___ ______________ __ / / / __ / / / __ ` / / / __ / / / / __/ / / / / // / / / / / ( ) // // / // / /_ // //_/// // ///_/___/_,/__/
exponierte NTLM aufspüren BoydHacks · github.com/BoydHacks
# ntlmscout
**Ein Werkzeug, um aus internet-exponierten NTLM-Endpunkten jeden Tropfen Information herauszupressen.**
Eine unauthentifizierte NTLM-Aushandlung verrät überraschend viele interne Active-Directory-Details, noch bevor überhaupt ein einziger Credential gesendet wird. `ntlmscout` sendet eine NTLM-Type-1-(NEGOTIATE)-Nachricht über eine breite Palette von Transporten, dekodiert die zurückkommende Type-2-(CHALLENGE)-Nachricht vollständig und extrahiert alles: interne NetBIOS-/DNS-Host- und Domänennamen, die AD-Gesamtstruktur, den OS-Build (auf eine benutzerfreundliche Windows-Version abgebildet), die Serveruhr (und deren Abweichung), Negotiate-Flags und jedes AV_PAIR – und reichert das Ganze dann mit angrenzenden unauthentifizierten Offenlegungen und einem optionalen, lockout-sicheren Password-Spray an.
Reine Standardbibliothek. Einzelne Datei. Python 3.7+. Keine Abhängigkeiten.
## Funktionen
- **Jeder Transport in einem Werkzeug** — HTTP(S) (mit Endpunkt-Erkennung), SMB2/3, MSSQL/TDS, SMTP, IMAP, POP3, NNTP, LDAP(S) und RDP/CredSSP(NLA).
- **Tiefe Type-2-Dekodierung** — NetBIOS- + DNS-Host/Domäne, Forest-/Tree-Name, OS-Build → benutzerfreundlicher Name (Client vs. Server unterschieden), Server-Zeitstempel + Uhrzeitabweichung, SPN, MachineID, Channel Bindings und vollständige Aufschlüsselung der Negotiate-Flags.
- **Interpretiert, statt nur auszugeben** — ehrliche Klassifizierung **Member vs. Domain Controller** (ein DC wird nur dann behauptet, wenn tatsächlich ein DC-Dienst antwortet), und eine Einschätzung der Sicherheitslage (SMB-/LDAP-Signierung, EPA/Channel-Binding, schwache NTLMv1/LM-Krypto).
- **Ermittelt die interne IP** — das Einzige, was NTLM selbst nicht liefern kann — über IIS-Host-Header-Offenlegung (CVE-2000-0649), WebDAV PROPFIND, RPC `IOXIDResolver::ServerAlive2` (TCP 135) und TLS-/RDP-Zertifikat-IP-SANs.
- **Zusätzliche Offenlegungen** — TLS-/RDP-Zertifikat-CN + SANs, Exchange-`X-FEServer`/`X-CalculatedBETarget`-Header-Leaks und anonyme **LDAP-rootDSE**-Anreicherung (Naming Contexts, `dnsHostName`, AD-Funktionsebenen).
- **Schnell** — ein Port-Liveness-Gate überspringt jede Sonde auf einem geschlossenen Port, sodass gefilterte Hosts nicht eine Wand von Timeouts verursachen.
- **Lockout-sicherer Spray-Modus** — Password-Spray-Reihenfolge (ein Passwort über alle Benutzer pro Runde), NTLM Type-3 oder HTTP Basic gegen den effektivsten Endpunkt, mit einem klaren Urteil gültig / ungültig / nicht eindeutig.
- **Berichtsfertige Ausgabe** — gruppierte Zusammenfassung pro Host plus JSON, NDJSON, CSV und eine Hosts-Datei im NetExec-Stil. Ausgabedateien werden mit Nur-Eigentümer-Berechtigungen geschrieben.
## Installation
```bash
git clone https://github.com/BoydHacks/ntlmscout
cd ntlmscout
python3 ntlmscout.py --help
Kein pip install, kein virtualenv — es verwendet nur die Python-Standardbibliothek.
# recon a single IP or host (full sweep of every NTLM-capable port)
python3 ntlmscout.py 203.0.113.10
python3 ntlmscout.py mail.example.com
# a specific endpoint, or a whole range, or a target list
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
# route everything through Burp / a CONNECT proxy
python3 ntlmscout.py -I targets.txt --proxy 127.0.0.1:8080
# lockout-safe password spray against the best endpoint
python3 ntlmscout.py --spray -I hosts.txt -u users.txt -p 'Winter2026!' --delay 1800
Recon ist standardmäßig ein vollständiger Sweep. Trimme ihn mit --no-discover (überspringt die HTTP-Pfad-Wortliste) oder --no-internal-ip (überspringt die Zertifikat-/OXID-/IIS-Prüfungen). Siehe --help für das vollständige Menü.
========================================================================
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).
Die entdeckten Endpunkte werden automatisch auf dem Bildschirm aufgelistet. Füge -o log.txt für ein vollständiges Log pro Feld hinzu, oder --json/--csv für maschinenlesbare Ausgabe.
Der Spray-Modus ist Opt-in und fest auf Password-Spray-Reihenfolge verdrahtet — ein Passwort wird pro Runde über jedes Konto versucht, sodass kein Konto jemals mehr als einen Versuch pro Runde sieht. Setze --delay auf das Lockout-Beobachtungsfenster des Ziels und bestätige die Lockout-Richtlinie, bevor du es ausführst. Er meldet gültige, sauber abgelehnte und nicht eindeutige Ergebnisse getrennt, sodass ein negatives Ergebnis vertrauenswürdig ist und nicht ein Artefakt eines defekten Orakels.
ntlmscout steht auf den Schultern der Forscher und Werkzeuge, die die NTLM-Endpunkt-Aufklärung vorangebracht haben. Ihre Ideen, Techniken und Endpunkt-Wortlisten haben direkt zu diesem Projekt beigetragen:
*-ntlm-info NSE-Skripte — Justin Cacak (http/imap/pop3/smtp/nntp/telnet/ms-sql) und Tom Sellers (rdp): die protokollspezifischen Rezepte, um aus jedem Dienst ein Type-2 herauszulocken.IOXIDResolver::ServerAlive2-Technik für interne Adressen und der NTLM-Relay-/Posture-Konzepte.Protokolldetails folgen Microsofts [MS-NLMP] Open Specification und Eric Glass' klassischen davenport NTLM notes. Die IIS-Offenlegung der internen IP ist CVE-2000-0649.
Wenn deine Arbeit hierher gehört und ich dich übersehen habe, öffne ein Issue — Anerkennung gebührt dir, und ich werde es hinzufügen.
BoydHacks — github.com/BoydHacks