
Инструмент для неаутентифицированной разведки NTLM-эндпоинтов, который декодирует Type-2 challenge-сообщения по протоколам HTTP, SMB, MSSQL, SMTP, IMAP, POP3, NNTP, LDAP и RDP для извлечения сведений об AD и внутренних IP-адресов.
____ / // /__ ___ ______________ __ / / / __ / / / __ ` / / / __ / / / / __/ / / / / // / / / / / ( ) // // / // / /_ // //_/// // ///_/___/_,/__/
охота на открытые NTLM BoydHacks · github.com/BoydHacks
# ntlmscout
**Один инструмент, чтобы выжать каждую каплю информации из открытых в интернет NTLM-эндпоинтов.**
Неаутентифицированное согласование NTLM раскрывает удивительно много деталей внутренней Active Directory ещё до того, как будет отправлен хоть один учётный данные. `ntlmscout` отправляет сообщение NTLM Type-1 (NEGOTIATE) по широкому спектру транспортов, полностью декодирует возвращаемый Type-2 (CHALLENGE) и извлекает всё: внутренние имена хостов и доменов NetBIOS/DNS, лес AD, сборку ОС (сопоставленную с понятным названием версии Windows), часы сервера (и расхождение), флаги negotiate и каждый AV_PAIR — затем обогащает это смежными неаутентифицированными раскрытиями и опциональным, безопасным с точки зрения блокировки, password spray.
Только стандартная библиотека. Один файл. Python 3.7+. Без зависимостей.
## Возможности
- **Все транспорты в одном инструменте** — HTTP(S) (с обнаружением эндпоинтов), SMB2/3, MSSQL/TDS, SMTP, IMAP, POP3, NNTP, LDAP(S) и RDP/CredSSP(NLA).
- **Глубокое декодирование Type-2** — NetBIOS + DNS хост/домен, имя леса/дерева, сборка ОС → понятное имя (с различением клиента и сервера), временная метка сервера + расхождение часов, SPN, MachineID, channel bindings и полная разбивка флагов negotiate.
- **Интерпретирует, а не просто выводит** — честная классификация **участник vs. контроллер домена** (DC утверждается только тогда, когда реально отвечает служба DC), и оценка безопасности (подписывание SMB/LDAP, EPA/channel-binding, слабая криптография NTLMv1/LM).
- **Восстанавливает внутренний IP** — то единственное, что сам NTLM дать не может — через раскрытие Host-заголовка IIS (CVE-2000-0649), WebDAV PROPFIND, RPC `IOXIDResolver::ServerAlive2` (TCP 135) и IP SAN сертификатов TLS/RDP.
- **Дополнительные раскрытия** — CN + SAN сертификатов TLS/RDP, утечки заголовков Exchange `X-FEServer`/`X-CalculatedBETarget` и анонимное обогащение **LDAP rootDSE** (naming contexts, `dnsHostName`, функциональные уровни AD).
- **Быстро** — проверка живости порта пропускает все пробы на закрытом порту, так что отфильтрованные хосты не стоят вам стены таймаутов.
- **Безопасный с точки зрения блокировки режим spray** — порядок password-spray (один пароль по всем пользователям за раунд), NTLM Type-3 или HTTP Basic против наиболее эффективного эндпоинта, с чётким вердиктом valid / invalid / inconclusive.
- **Готовый к отчёту вывод** — сгруппированная по хостам сводка плюс JSON, NDJSON, CSV и файл хостов в стиле NetExec. Выходные файлы записываются с правами только для владельца.
## Установка
```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
# безопасный с точки зрения блокировки password spray против лучшего эндпоинта
python3 ntlmscout.py --spray -I hosts.txt -u users.txt -p 'Winter2026!' --delay 1800
Разведка по умолчанию — полный обход. Сократите его с помощью --no-discover (пропустить словарь HTTP-путей) или --no-internal-ip (пропустить проверки cert/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 для машиночитаемого вывода.
Режим spray включается по желанию и жёстко привязан к порядку password-spray — один пароль пробуется по всем учётным записям за раунд, так что ни одна учётная запись никогда не видит более одной попытки за раунд. Установите --delay в соответствии с окном наблюдения блокировки цели и подтвердите политику блокировки перед запуском. Он сообщает о валидных, чисто отклонённых и неоднозначных результатах отдельно, так что отрицательный результат заслуживает доверия, а не является артефактом сломанного оракула.
ntlmscout стоит на плечах исследователей и инструментов, которые проложили путь в разведке NTLM-эндпоинтов. Их идеи, техники и словари эндпоинтов напрямую повлияли на этот проект:
*-ntlm-info — Justin Cacak (http/imap/pop3/smtp/nntp/telnet/ms-sql) и Tom Sellers (rdp): рецепты для каждого протокола по выманиванию Type-2 из каждой службы.IOXIDResolver::ServerAlive2 и концепций NTLM relay/posture.Детали протокола следуют [MS-NLMP] Open Specification от Microsoft и классическим заметкам davenport по NTLM Эрика Гласса. Раскрытие внутреннего IP через IIS — это CVE-2000-0649.
Если ваша работа должна быть здесь, а я вас упустил, откройте issue — заслуженное признание будет добавлено.
BoydHacks — github.com/BoydHacks