
Strumento di ricognizione per endpoint NTLM non autenticato che decodifica le challenge Type-2 su HTTP, SMB, MSSQL, SMTP, IMAP, POP3, NNTP, LDAP e RDP per estrarre dettagli AD e IP interni.
____ / // /__ ___ ______________ __ / / / __ / / / __ ` / / / __ / / / / __/ / / / / // / / / / / ( ) // // / // / /_ // //_/// // ///_/___/_,/__/
caccia a NTLM esposto BoydHacks · github.com/BoydHacks
# ntlmscout
**Un unico strumento per spremere ogni goccia di informazione dagli endpoint NTLM esposti su Internet.**
Una negoziazione NTLM non autenticata rivela una sorprendente quantità di dettagli interni di Active Directory prima ancora che venga inviata una singola credenziale. `ntlmscout` invia un messaggio NTLM Type-1 (NEGOTIATE) su un'ampia gamma di trasporti, decodifica completamente il Type-2 (CHALLENGE) che ritorna e ne estrae tutto: nomi host e dominio interni NetBIOS/DNS, la foresta AD, la build del sistema operativo (mappata a una versione di Windows leggibile), l'orologio del server (e lo scostamento), i flag di negoziazione e ogni AV_PAIR — poi arricchisce il tutto con divulgazioni non autenticate adiacenti e un opzionale password spray sicuro rispetto al lockout.
Solo libreria standard. File singolo. Python 3.7+. Nessuna dipendenza.
## Funzionalità
- **Tutti i trasporti in un unico strumento** — HTTP(S) (con scoperta degli endpoint), SMB2/3, MSSQL/TDS, SMTP, IMAP, POP3, NNTP, LDAP(S) e RDP/CredSSP(NLA).
- **Decodifica profonda del Type-2** — host/dominio NetBIOS + DNS, nome foresta/albero, build del sistema operativo → nome leggibile (con distinzione tra client e server), timestamp del server + scostamento dell'orologio, SPN, MachineID, channel bindings e analisi completa dei flag di negoziazione.
- **Interpreta, non si limita a scaricare dati** — classificazione onesta **membro vs. Domain Controller** (un DC viene dichiarato solo quando risponde effettivamente un servizio DC) e una lettura della postura di sicurezza (firma SMB/LDAP, EPA/channel-binding, crittografia debole NTLMv1/LM).
- **Recupera l'IP interno** — l'unica cosa che NTLM di per sé non può fornire — tramite la divulgazione dell'header Host di IIS (CVE-2000-0649), WebDAV PROPFIND, RPC `IOXIDResolver::ServerAlive2` (TCP 135) e gli IP SAN dei certificati TLS/RDP.
- **Divulgazioni aggiuntive** — CN + SAN dei certificati TLS/RDP, fughe di header `X-FEServer`/`X-CalculatedBETarget` di Exchange e arricchimento anonimo del **LDAP rootDSE** (naming contexts, `dnsHostName`, livelli funzionali AD).
- **Veloce** — un controllo di vitalità delle porte salta ogni probe su una porta chiusa, così gli host filtrati non ti costano una parete di timeout.
- **Modalità spray sicura rispetto al lockout** — ordinamento password-spray (una password su tutti gli utenti per round), NTLM Type-3 o HTTP Basic contro l'endpoint più efficace, con un verdetto chiaro valido / non valido / inconcludente.
- **Output pronto per il report** — riepilogo raggruppato per host più JSON, NDJSON, CSV e un file hosts in stile NetExec. I file di output vengono scritti con permessi di solo proprietario.
## Installazione
```bash
git clone https://github.com/BoydHacks/ntlmscout
cd ntlmscout
python3 ntlmscout.py --help
Nessun pip install, nessun virtualenv — usa solo la libreria standard di Python.
# recon di un singolo IP o host (scansione completa di ogni porta compatibile con NTLM)
python3 ntlmscout.py 203.0.113.10
python3 ntlmscout.py mail.example.com
# un endpoint specifico, o un intero range, o una lista di target
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
# instrada tutto attraverso Burp / un proxy CONNECT
python3 ntlmscout.py -I targets.txt --proxy 127.0.0.1:8080
# password spray sicuro rispetto al lockout contro l'endpoint migliore
python3 ntlmscout.py --spray -I hosts.txt -u users.txt -p 'Winter2026!' --delay 1800
Il recon è una scansione completa per impostazione predefinita. Riducila con --no-discover (salta la wordlist dei path HTTP) o --no-internal-ip (salta i controlli cert/OXID/IIS). Vedi --help per il menu completo.
========================================================================
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).
Gli endpoint scoperti vengono elencati automaticamente sullo schermo. Aggiungi -o log.txt
per un log completo campo per campo, oppure --json/--csv per un output leggibile dalla macchina.
La modalità spray è opt-in ed è vincolata all'ordinamento password-spray — una password viene provata su ogni account per round, così nessun account vede mai più di un tentativo per round. Imposta --delay sulla finestra di osservazione del lockout del target e conferma la policy di lockout prima di eseguire. Riporta separatamente i risultati validi, quelli respinti in modo pulito e quelli inconcludenti, così un risultato negativo è affidabile e non un artefatto di un oracolo malfunzionante.
ntlmscout si basa sulle spalle dei ricercatori e degli strumenti che hanno fatto da pionieri nella ricognizione degli endpoint NTLM. Le loro idee, tecniche e wordlist di endpoint hanno informato direttamente questo progetto:
*-ntlm-info di nmap — Justin Cacak (http/imap/pop3/smtp/nntp/telnet/ms-sql) e Tom Sellers (rdp): le ricette per protocollo per estrarre un Type-2 da ciascun servizio.IOXIDResolver::ServerAlive2 e dei concetti di NTLM relay/postura.I dettagli del protocollo seguono la Open Specification [MS-NLMP] di Microsoft e le classiche note NTLM di davenport di Eric Glass. La divulgazione dell'IP interno di IIS è CVE-2000-0649.
Se il tuo lavoro appartiene a questa lista e ti ho dimenticato, apri una issue — il credito è dovuto e lo aggiungerò.
BoydHacks — github.com/BoydHacks