Antes de aprender a usar Nmap veamos que es:
Nmap (Network Mapper) es una herramienta de código abierto para la exploración de red y la auditoría de seguridad. Aunque explicar todas sus funciones y scripts tomaría un tiempo considerable, puedo proporcionarte un resumen amplio de sus capacidades principales y algunas de las formas más comunes de utilizarlo.
1. Instalación:
Nmap es compatible con Windows, Linux y Mac. En Linux, puedes instalarlo con el comando sudo apt-get install nmap
(para distribuciones basadas en Debian) o sudo yum install nmap
(para distribuciones basadas en RPM). En Windows y Mac, puedes descargar los archivos de instalación desde el sitio web de Nmap
OPCIONES DE OBJETIVO DE ESCANEO
nmap <hostname>
: Escanea un solo host.nmap <hostname1,hostname2,hostname3>
: Escanea múltiples hosts.nmap <ip-start>-<ip-end>
: Escanea un rango de IP.nmap <ip-subnet>/24
: Escanea una subred completa.nmap -iL <file>
: Escanea los objetivos desde una lista de hosts/IPs.
TIPOS DE ESCANEO
-sS
(Escaneo SYN, también llamado semiabierto o half-open): Envía un paquete SYN a cada puerto.-sT
(Escaneo de conexión, también llamado escaneo completo o abierto): Crea una conexión TCP completa con el objetivo.-sU
(Escaneo UDP): Escanea puertos UDP.-sN
(Escaneo TCP NULL): No establece ningún bit en los paquetes TCP enviados.-sF
(Escaneo FIN): Configura solo el bit FIN.-sX
(Escaneo Xmas): Configura los bits FIN, URG y PSH.-sP
(Ping sweep): Este es un método que usa Nmap para determinar qué hosts están en línea en la red.-sV
(Detección de servicio/versiones): Intenta determinar el servicio y la versión que se está ejecutando en un puerto.-O
(Detección de SO): Intenta determinar el sistema operativo en el host de destino.-A
(Detección de SO y servicios): Combinación de las opciones-O
y-sV
.-sI <zombie host[:probeport]>
(Idle scan): Este tipo de escaneo es útil si se quiere ocultar la dirección IP del atacante.-sA
(Escaneo ACK): Este tipo de escaneo puede ser usado para mapear reglas de firewall. Un paquete RST indica que el puerto está cerrado, mientras que un paquete sin respuesta significa que el puerto es filtrado.-sW
(Escaneo de ventana): Este escaneo es similar al escaneo ACK, pero proporciona más detalles sobre las reglas del firewall y el sistema operativo.-sM
(Escaneo de protocolo TCP Maimon): Este escaneo es nombrado después de su descubridor, Uriel Maimon. Si un puerto está abierto, o cerrado, devolverá un paquete RST. Si el puerto está filtrado, no habrá respuesta.
Opciones de secuencia de tiempo
--max-rtt-timeout
,--initial-rtt-timeout
,--min-rtt-timeout
: Ajusta los tiempos máximos, iniciales y mínimos (en milisegundos) que Nmap esperará por una respuesta.--max-retries
: Ajusta el número máximo de reintentos de paquetes.--host-timeout
: Especifica cuánto tiempo (en milisegundos) esperará Nmap por una respuesta de un host antes de abandonarlo.
DETECCIÓN DE HOSTS
-PE; -PP; -PM
(Protocolo ICMP): PE realiza un eco de ping, PP realiza un ping de timestamp y PM realiza un ping de máscara de red.-PO <protocol list>
(Protocolo IP): Envía paquetes IP sin opciones adicionales para el protocolo especificado.-PR
(Protocolo ARP): Utiliza un ARP de nivel de enlace para la detección de host local.-PS <port list>
;-PA <port list>
;-PU <port list>
(Protocolo TCP SYN/ACK, UDP): Envía un paquete TCP SYN/ACK o UDP al puerto especificado.-n/-R
:-n
desactiva la resolución de DNS.-R
fuerza la resolución de DNS.
OPCIONES DE PUERTO
-p <port>
: Escanea un puerto específico.-p <port1-port2>
: Escanea un rango de puertos.-p-
: Escanea todos los puertos.-F
(Fast scan): Escanea solo los 100 puertos más comunes.
ARGUMENTOS DE TEMPORIZACIÓN
-T0
(Paranoid): Espera 5 minutos entre los envíos de paquetes.-T1
(Sneaky): Espera 15 segundos entre los envíos de paquetes.-T2
(Polite): Espera 0.4 segundos entre los envíos de paquetes.-T3
(Normal): Es el valor predeterminado, no introduce retrasos.-T4
(Aggressive): Espera 10 ms entre los envíos de paquetes.-T5
(Insane): Espera 5 ms entre los envíos de paquetes.
OPCIONES DE SALIDA
-oN <file>
: Guarda la salida en un archivo con formato normal.-oX <file>
: Guarda la salida en un archivo con formato XML.-oG <file>
: Guarda la salida en un archivo con formato grepable.-oA <file>
: Guarda la salida en tres archivos, normal, XML y grepable.--append-output
: Agrega la salida al archivo especificado en lugar de sobrescribirlo.-d[level]
: Aumenta o establece el nivel de depuración.
Nmap Scripting Engine (NSE)
Nmap puede hacer mucho más que simplemente escanear puertos. Puede realizar tareas complejas de detección de servicios y vulnerabilidades utilizando scripts NSE. Estos scripts son escritos en el lenguaje de scripting Lua. Los scripts se almacenan en /usr/share/nmap/scripts/
y la documentación para cada script se almacena en /usr/share/nmap/nsedoc/
.
Aquí hay algunos ejemplos de cómo usar los scripts NSE:
nmap --script=default
onmap -sC
: Ejecuta todos los scripts predeterminados.nmap --script=<name>
: Ejecuta un script específico.nmap --script="not intrusive"
: Ejecuta todos los scripts que no están categorizados como intrusivos.nmap --script="default or safe"
: Ejecuta todos los scripts predeterminados y seguros.
OPCIONES DIVERSAS
-v
: Aumenta el nivel de verbosidad (útil para depurar).-h
: Muestra la ayuda de Nmap.-n
: No resuelve los nombres de dominio.-6
: Activa el escaneo IPv6.-Pn
: Desactiva la detección de hosts en vivo. Esta opción escanea todos los objetivos como si estuvieran en línea.-script=<scriptname>
: Ejecuta un script de NSE específico.-max-retries <times>
: Con «times» fija el número de reintentos por puerto.