Una rápida y flexible herramienta de reconocimiento NTLM sin dependencias externas. Útil para encontrar información sobre los puntos finales de NTLM cuando se trabaja con un gran conjunto de direcciones IP y dominios potenciales.
NTLMRecon está construido con la flexibilidad en mente. ¿Necesitas ejecutar el reconocimiento en una sola URL, una dirección IP, un rango completo de CIDR o una combinación de todo ello puesto en un solo archivo de entrada? No hay problema! NTLMRecon te tiene cubierto. Sigue leyendo.
Demo
Por Hacer
- Implementar una solución basada en aiohttp para el envío de solicitudes
- Integrar una biblioteca spraying
- Añadir a la salida otros esquemas de autenticación encontrados
- Detección automática de dominios. Autodescubrimiento
Resumen
NTLMRecon busca los puntos finales de la web habilitados por NTLM, envía una solicitud de autenticación falsa y enumera la siguiente información de la respuesta del NTLMSSP:
- Nombre de dominio AD
- Nombre del servidor
- Nombre de dominio DNS
- FQDN
- Dominio DNS padre
Como NTLMRecon aprovecha una implementación de python del NTLMSSP, elimina la sobrecarga de ejecutar Nmap NSE http-ntlm-info
por cada descubrimiento exitoso.
En cada descubrimiento exitoso de un punto final web habilitado para NTLM, la herramienta enumera y guarda información sobre el dominio como sigue en un archivo CSV:
URL | Nombre Dominio | Nombre Servidor | Nombre Dominio DNS | FQDN | Dominio DNS |
---|---|---|---|---|---|
https://contoso.com/EWS/ | XCORP | EXCHANGE01 | xcorp.contoso.net | EXCHANGE01.xcorp.contoso.net | contoso.net |
Instalación
BlackArch
NTLMRecon ya está empaquetado para BlackArch y puede ser instalado ejecutando pacman -S ntlmrecon
Arch
Si estás en Arch Linux o en cualquier distribución basada en Arch linux, puedes tomar la última compilación del Arch User Repository.
PyPI
Puedes simplemente ejecutar pip install ntlmrecon
para obtener la última versión desde PyPI
Build from source
- Clona el repositorio :
git clone https://github.com/sachinkamath/ntlmrecon/
- RECOMENDADO – Instala virtualenv :
pip install virtualenv
- Iniciar un nuevo entorno virtual :
virtualenv venv
and activate it withsource venv/bin/activate
- Ejecuta el archivo de configuración :
python setup.py install
- Ejecuta ntlmrecon :
ntlmrecon --help
Uso
$ ntlmrecon --help
_ _ _____ _ ___ _________
| \ | |_ _| | | \/ || ___ \
| \| | | | | | | . . || |_/ /___ ___ ___ _ __
| . ` | | | | | | |\/| || // _ \/ __/ _ \| '_ \
| |\ | | | | |____| | | || |\ \ __/ (_| (_) | | | |
\_| \_/ \_/ \_____/\_| |_/\_| \_\___|\___\___/|_| |_|
v.0.2 beta - Y'all still exposing NTLM endpoints?
usage: ntlmrecon [-h] [--input INPUT | --infile INFILE] [--wordlist WORDLIST] [--threads THREADS] [--output-type] [--outfile OUTFILE] [--random-user-agent] [--force-all] [--shuffle] [-f]
optional arguments:
-h, --help show this help message and exit
--input INPUT Pass input as an IP address, URL or CIDR to enumerate NTLM endpoints
--infile INFILE Pass input from a local file
--wordlist WORDLIST Override the internal wordlist with a custom wordlist
--threads THREADS Set number of threads (Default: 10)
--output-type, -o Set output type. JSON (TODO) and CSV supported (Default: CSV)
--outfile OUTFILE Set output file name (Default: ntlmrecon.csv)
--random-user-agent TODO: Randomize user agents when sending requests (Default: False)
--force-all Force enumerate all endpoints even if a valid endpoint is found for a URL (Default : False)
--shuffle Break order of the input files
-f, --force Force replace output file if it already exists
Ejemplo de Uso
Reconocimiento en una sola URL
$ ntlmrecon --input https://mail.contoso.com --outfile ntlmrecon.csv
Reconocimiento en un rango de CIDR o dirección IP
$ ntlmrecon --input 192.168.1.1/24 --outfile ntlmrecon-ranges.csv
Reconocimiento en un archivo de entrada
La herramienta detecta automáticamente el tipo de entrada por línea y te da resultados automáticamente. Los rangos del CIDR se expanden automáticamente incluso cuando se leen desde un archivo de texto.
El archivo de entrada puede ser algo tan confuso como:
mail.contoso.com
CONTOSOHOSTNAME
10.0.13.2/28
192.168.222.1/24
https://mail.contoso.com
Para ejecutar el reconocimiento con un archivo de entrada, sólo tienes que ejecutar :
$ ntlmrecon --infile /path/to/input/file --outfile ntlmrecon-fromfile.csv
Agradecimientos
Comentarios
Si deseas ver una característica añadida a la herramienta o algo que no te funciona, por favor, abre un nuevo issue.
NTLMRecon (este enlace se abre en una nueva ventana) por pwnfoo (este enlace se abre en una nueva ventana)
Enumerate information from NTLM authentication enabled web endpoints 🔎