
Инструмент для легкого брутфорса HTTP-серверов с целью выявления общедоступных конечных точек аутентификации NTLM.
NTLMRecon — это версия на Golang оригинальной утилиты NTLMRecon, написанной Sachin Kamath (также известным как pwnfoo). NTLMRecon может использоваться для выполнения брутфорс-атак на целевой веб-сервер с целью выявления распространенных конечных точек приложений, поддерживающих аутентификацию NTLM. Сюда входят такие конечные точки, как конечная точка Exchange Web Services, которая часто может использоваться для обхода многофакторной аутентификации.
Инструмент поддерживает сбор метаданных с открытых конечных точек аутентификации NTLM, включая информацию об имени компьютера, имени домена Active Directory и имени леса Active Directory. Эту информацию можно получить без предварительной аутентификации, отправив пакет NTLM NEGOTIATE_MESSAGE на сервер и проанализировав NTLM CHALLENGE_MESSAGE, возвращенный целевым сервером. Мы также опубликовали сообщение в блоге, посвященное этому инструменту, в котором обсуждаются некоторые мотивы его разработки и то, как мы подходим к более продвинутому сбору метаданных в Chariot.
Мы хотели выполнять брутфорс и автоматизированное выявление открытых конечных точек аутентификации NTLM в Chariot, нашей платформе для управления внешней поверхностью атаки и непрерывного автоматизированного red teaming. Наша основная инфраструктура бэкенда для сканирования написана на Golang, и мы не хотели загружать и вызывать из командной строки утилиту NTLMRecon на Python для сбора этой информации. Мы также хотели получить больший контроль над уровнем детализации собираемой информации и т.д.
Следующая команда может быть использована для установки утилиты NTLMRecon. Кроме того, вы можете загрузить предварительно скомпилированную версию бинарного файла из вкладки релизов на GitHub.
go install github.com/praetorian-inc/NTLMRecon/cmd/NTLMRecon@latest
Следующая команда может быть использована для вызова утилиты NTLMRecon и обнаружения открытых конечных точек аутентификации NTLM:
NTLMRecon -t https://autodiscover.contoso.com
Следующая команда может быть использована для вызова утилиты NTLMRecon и обнаружения открытых конечных точек NTLM с выводом собранных метаданных в формате JSON:
NTLMRecon -t https://autodiscover.contoso.com -o json
Следующая команда может быть использована для указания пользовательского заголовка Host при тестировании конечных точек, которые этого требуют:
NTLMRecon -t https://192.168.1.100 -H mail.contoso.com
Следующая команда может быть использована для включения отладочного вывода для устранения неполадок:
NTLMRecon -t https://autodiscover.contoso.com -debug
Ниже приведен пример вывода JSON с данными, которые мы собираем из NTLM CHALLENGE_MESSAGE, возвращенного сервером:
{
"url": "https://autodiscover.contoso.com/EWS/",
"ntlm": {
"netbiosComputerName": "MSEXCH1",
"netbiosDomainName": "CONTOSO",
"dnsDomainName": "na.contoso.local",
"dnsComputerName": "msexch1.na.contoso.local",
"forestName": "contoso.local"
}
}
➜ ~ NTLMRecon -t https://adfs.contoso.com -o json | jq
{
"url": "https://adfs.contoso.com/adfs/services/trust/2005/windowstransport",
"ntlm": {
"netbiosComputerName": "MSFED1",
"netbiosDomainName": "CONTOSO",
"dnsDomainName": "corp.contoso.com",
"dnsComputerName": "MSEXCH1.corp.contoso.com",
"forestName": "contoso.com"
}
}
➜ ~ NTLMRecon -t https://autodiscover.contoso.com
https://autodiscover.contoso.com/Autodiscover
https://autodiscover.contoso.com/Autodiscover/AutodiscoverService.svc/root
https://autodiscover.contoso.com/Autodiscover/Autodiscover.xml
https://autodiscover.contoso.com/EWS/
https://autodiscover.contoso.com/OAB/
https://autodiscover.contoso.com/Rpc/
➜ ~
Наша методология при разработке этого инструмента была нацелена на самую минимальную версию желаемой функциональности для первоначального релиза. Целью этого проекта было создать начальный инструмент, который мы могли бы интегрировать в Chariot, а затем позволить вкладу сообщества и отзывам влиять на дальнейшие улучшения или функциональность инструмента. Ниже приведены некоторые идеи дополнительной функциональности, которую можно добавить в NTLMRecon:
[1] https://www.praetorian.com/blog/automating-the-discovery-of-ntlm-authentication-endpoints/