¿Qué es Nmap?
Su uso principal es el escaneo de hosts, puertos y/o servicios en una red informática, exponiendo información sobre estos. Para la realización de este escaneo se pueden utilizar diversas técnicas dentro de las diferentes necesidades. En adición a esto, la herramienta se vuelve mucho mas potente con el uso de scripts (NSE) que permiten automatizar y simplificar al extremo un análisis de red o sistema.
Instalación y uso de Nmap
# nmap IP_DESTINO
Esto nos reportará una lista de puertos abiertos que tiene el destino. Aun así, esta es una herramienta con un grandísimo potencial, por lo que la anterior ejecución no es nada comparado con lo que puede realizar. Centrándonos en el mundo Linux, a continuación se exponen una serie de opciones típicas de Nmap.
Opciones típicas de Nmap
Selección de objetivo
De forma predeterminada, se pueden seleccionar FQDNs, IPs, redes, etc.
– iL <inputFileName>: Lista de hostname o redes a descubrir.
– –exclude <host1[,host2][,host3],…>: Exclusión de hosts o redes.
Descubrimiento
– sn: Ping scan
– Pn: trata todos los hosts como “online”.
– PS / PA / PU / PY[portlist]: en orden
Técnica de escaneo
– sS / sT / sA / sW / sM
– sU: escaneo UDP
Especificación de puerto
– p <port / port range>: escaneo de los puertos especificacdos (-p-, para todos los puertos).
– r: escaneo de puertos en orden.
Detección de versiones de servicios
– sV: análisis de puertos abiertos para la extracción de información del servicio.
Escaneo de scripts
– sC (–script=default): análisis de los servicios con el conjunto predeterminado de scripts.
Detección de OS
– O: habilitar la detección de sistema operativo
Tiempo y rendimiento
– T<0-5>: establece el tiempo de ejecución (mas alto es más rápido)
– –min-rate <number>: envío de paquetes no tan lento que <number> por segundo.
Técnicas de evasión y spoofing de Firewall/IDS
– S <IP address>: spoofing de IP origen.
– e <iface>: uso de interfaz definida.
Output
– oN / -oX / -oS / -oG <file>: salida del escaneo normal, XML, “s|<rIpt kIddi3” y Grepable.
– v: incrementa el nivel de detalle (-vv, para un mayor efecto)
Otros
– 6: habilitar IPv6
– A: habilitar detección de OS, detección de versiones, escaneo de script y traceroure
– h: mostrar ayuda.
Script de Nmap
La forma de ejecución de este tipo de scripts con Nmap puede darse mediante las categorías definidas o “llamando” directamente al script. De esta forma, podemos ejecutar mediante,
–script <categoria> o –script <nombre del script>
Las categorias de scripts predefinidas son las siguientes:
– auth: relacionados con mecanismos de autenticación mediante credenciales.
– broadcast: descubrimiento de hosts no listados en la red local por broadcast.
– brute: uso de técnicas de fuerza bruta para la validación en un sistema remoto.
– default: ejecutado normalmente con la opción “-sC”, establece una serie de patrones definidos por defecto.
– discovery: enfocados al descubrimiento de la red basandose en varias técnicas.
– dos: prueba de ataques de denegación de servicio.
– exploit: explotación de vulnerabilidades.
– external: envío de datos a bases de datos externas u otros recursos de red.
– intrusive: scripts que pueden ser intrusivos en el destino.
– fuzzer: prueba aleatoria de datos no esperados para localizar información.
– malware: prueba si el destino esta infectado con malware.
– safe: diseñados para no producir daños en el destino y no ser intrusivos.
– version: scripts especificos para la detección de versiones.
– vuln: comprobación de vulnerabilidades conocidas.
Ejemplos de ejecución
# nmap -sC -sV -p <puerto> <host / IP>
Detección de OS
# nmap -O <host / IP >
Analizar host “online”
# nmap -sP <network>
Escanear todos los puertos de host, con detección de versiones y alto performance
# nmap -sC -sV -T5 –min-rate 5000 <host / IP>
Si es cierto que esta ejecución genera bastante “ruido” por lo que es posible que no sea recomendable su ejecución en un análisis real.
Análisis sigiloso
# nmap -sS <host / IP>
Detección de vulnerabilidades
# nmap –script=vuln <host / IP>
Conclusiones
Podría seguir comentando todas las bondades de la herramienta pero saldría un post kilométrico jeje
Y vosotros, ¿sabíais de su existencia? ¿La habéis ejecutado? ¿En qué entornos la usais? Por aquí estamos encantado de escuchar(/leer) y saber un poquito más. Dejad vuestro comentario sin miedo 😉