NTLMRecon Herramienta de Reconocimiento de NTLM
NTLMRecon Herramienta de Reconocimiento de NTLM

NTLMRecon: Herramienta de Reconocimiento de NTLM

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

  1. Implementar una solución basada en aiohttp para el envío de solicitudes
  2. Integrar una biblioteca spraying
  3. Añadir a la salida otros esquemas de autenticación encontrados
  4. 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:

  1. Nombre de dominio AD
  2. Nombre del servidor
  3. Nombre de dominio DNS
  4. FQDN
  5. 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:

URLNombre DominioNombre ServidorNombre Dominio DNSFQDNDominio DNS
https://contoso.com/EWS/XCORPEXCHANGE01xcorp.contoso.netEXCHANGE01.xcorp.contoso.netcontoso.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

  1. Clona el repositorio : git clone https://github.com/sachinkamath/ntlmrecon/
  2. RECOMENDADO – Instala virtualenv : pip install virtualenv
  3. Iniciar un nuevo entorno virtual : virtualenv venv and activate it with source venv/bin/activate
  4. Ejecuta el archivo de configuración : python setup.py install
  5. 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.

Dark Mode

Más artículos
Cómo hacer que Linux luzca como Windows 10
Cómo hacer que Linux luzca como Windows 10