
Una herramienta para realizar fuerza bruta ligera en servidores HTTP con el fin de identificar puntos finales de autenticación NTLM comúnmente accesibles.
NTLMRecon es una versión en Golang de la utilidad NTLMRecon original escrita por Sachin Kamath (alias pwnfoo). NTLMRecon se puede utilizar para realizar fuerza bruta contra un servidor web objetivo para identificar endpoints comunes de aplicación que soportan autenticación NTLM. Esto incluye endpoints como el endpoint de Exchange Web Services que a menudo se puede aprovechar para omitir la autenticación multifactor.
La herramienta permite recopilar metadatos de los endpoints de autenticación NTLM expuestos, incluyendo información sobre el nombre del equipo, el nombre del dominio de Active Directory y el nombre del bosque de Active Directory. Esta información se puede obtener sin autenticación previa enviando un paquete NTLM NEGOTIATE_MESSAGE al servidor y examinando el mensaje NTLM CHALLENGE_MESSAGE devuelto por el servidor objetivo. También hemos publicado una publicación de blog junto con esta herramienta discutiendo algunas de las motivaciones detrás de su desarrollo y cómo estamos abordando la recopilación de metadatos más avanzada dentro de Chariot.
Queríamos realizar fuerza bruta e identificación automatizada de endpoints de autenticación NTLM expuestos dentro de Chariot, nuestra plataforma de gestión de superficie de ataque externa y red teaming automatizado continuo. Nuestra infraestructura de escaneo backend principal está escrita en Golang y no queríamos tener que descargar y ejecutar la utilidad NTLMRecon en Python para recopilar esta información. También queríamos tener más control sobre el nivel de detalle de la información que recopilamos, etc.
El siguiente comando se puede utilizar para instalar la utilidad NTLMRecon. Alternativamente, puede descargar una versión precompilada del binario desde la pestaña de releases en GitHub.
go install github.com/praetorian-inc/NTLMRecon/cmd/NTLMRecon@latest
El siguiente comando se puede utilizar para invocar la utilidad de reconocimiento NTLM y descubrir endpoints de autenticación NTLM expuestos:
NTLMRecon -t https://autodiscover.contoso.com
El siguiente comando se puede utilizar para invocar la utilidad de reconocimiento NTLM y descubrir endpoints NTLM expuestos mientras se muestran los metadatos recopilados en formato JSON:
NTLMRecon -t https://autodiscover.contoso.com -o json
El siguiente comando se puede utilizar para especificar un encabezado Host personalizado al probar endpoints que lo requieran:
NTLMRecon -t https://192.168.1.100 -H mail.contoso.com
El siguiente comando se puede utilizar para habilitar la salida de depuración para la resolución de problemas:
NTLMRecon -t https://autodiscover.contoso.com -debug
A continuación se muestra un ejemplo de salida JSON con los datos que recopilamos del NTLM CHALLENGE_MESSAGE devuelto por el servidor:
{
"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/
➜ ~
Nuestra metodología al desarrollar esta herramienta se ha centrado en la versión más básica de la capacidad deseada para el lanzamiento inicial. El objetivo de este proyecto era crear una herramienta inicial que pudiéramos integrar en Chariot y luego permitir que las contribuciones y comentarios de la comunidad impulsaran mejoras o funcionalidades adicionales. A continuación se presentan algunas ideas para funcionalidades adicionales que podrían agregarse a NTLMRecon:
[1] https://www.praetorian.com/blog/automating-the-discovery-of-ntlm-authentication-endpoints/