Nmap (Network Mapper) es una herramienta potente para el escaneo de redes, utilizada para detectar dispositivos, identificar puertos abiertos, analizar sistemas operativos y encontrar vulnerabilidades en la red. Gracias a su flexibilidad y a su amplio conjunto de funciones, Nmap es una herramienta imprescindible para especialistas en ciberseguridad, administradores de redes e investigadores. Permite obtener información sobre la infraestructura de red, diagnosticar problemas de conectividad y probar defensas contra intrusiones.
¿Por qué usar Nmap?
Nmap se puede aplicar en varios escenarios:
- Detección de hosts: identificar dispositivos activos en la red.
- Escaneo de puertos: descubrir puertos abiertos o cerrados.
- Detección de sistemas operativos: analizar el SO de los dispositivos por su comportamiento en red.
- Detección de vulnerabilidades: localizar posibles puntos de ataque.
¿Cómo usar esta chuleta?
Esta chuleta cubre los comandos básicos de Nmap y su sintaxis, para que puedas encontrar fácilmente la información necesaria para tareas concretas: desde operaciones básicas de escaneo de hosts hasta técnicas avanzadas para evadir protecciones.
Fundamentos de la sintaxis de Nmap
Sintaxis general del comando
Nmap utiliza una sintaxis simple y lógica:
nmap [opciones] <objetivo>
Objetivo: dirección IP, nombre de host, rango de IP o subred.
Opciones: banderas que determinan tipos de escaneo, salida y ajustes de rendimiento.
Formatos de dirección
Nmap admite varios formatos de entrada de direcciones IP:
- IP individual:
192.168.1.1 - Rango de IP:
192.168.1.1-254 - Subred (CIDR):
192.168.1.0/24
Formatos de puertos
Puedes escanear puertos usando distintos formatos:
- Puerto único:
-p 80 - Rango de puertos:
-p 20-80 - Por nombre de servicios:
-p http,ftp
Escaneo de hosts
Detección de hosts
Una de las funciones principales de Nmap es buscar hosts activos. Aquí hay varias formas de uso:
- Escaneo de un host único:
nmap 192.168.1.1 - Escaneo de un rango de hosts:
nmap 192.168.1.1-100 - Escaneo de una subred:
nmap 192.168.1.0/24 - Escaneo desde una lista de hosts en un archivo:
nmap -iL hosts.txt - Escaneo de hosts aleatorios:
nmap -iR 10
Excluir hosts del escaneo
- Excluir hosts individuales:
nmap 192.168.1.0/24 --exclude 192.168.1.5 - Excluir hosts desde una lista:
nmap 192.168.1.0/24 --excludefile exclude.txt
Escaneo de puertos
Tipos de escaneo
- TCP SYN (escaneo rápido):
nmap -sS 192.168.1.1
Este es el tipo de escaneo más popular y rápido; envía paquetes TCP SYN para comprobar el estado de los puertos. Si el puerto responde con SYN-ACK, está abierto. Esto permite escanear sin establecer una conexión TCP completa. - TCP CONNECT (escaneo lento):
nmap -sT 192.168.1.1
En este caso se establece una conexión TCP completa con cada puerto, lo que hace el escaneo más lento, pero permite sortear restricciones que puedan bloquear el escaneo SYN. - Escaneo UDP:
nmap -sU 192.168.1.1
Escaneo de puertos que usan el protocolo UDP. Dado que UDP no requiere establecer conexión, este tipo puede ser menos preciso y requiere más tiempo para completarse. - Escaneo ACK:
nmap -sA 192.168.1.1
Este método se usa para determinar si un puerto está detrás de un cortafuegos. Los paquetes ACK verifican cómo reacciona el sistema ante la filtración de paquetes. - Escaneos FIN, NULL y Xmas:
nmap -sF 192.168.1.1,nmap -sN 192.168.1.1,nmap -sX 192.168.1.1
Estos métodos envían paquetes especiales, distintos de los TCP estándar. El escaneo FIN usa el indicador de finalización, NULL envía paquetes vacíos y Xmas activa todos los flags TCP. Estos escaneos ayudan a evadir filtros de protección como cortafuegos e IDS.
Especificación de puertos
- Escanear todos los puertos:
nmap -p- 192.168.1.1
Este comando escanea todos los puertos disponibles del 1 al 65535, útil para un análisis completo del sistema objetivo. - Escanear puertos concretos:
nmap -p 80,443 192.168.1.1
Para verificar solo puertos específicos, como HTTP (80) o HTTPS (443), se usa este comando. - Detección de versiones:
nmap -sV 192.168.1.1
Este modo permite identificar las versiones exactas del software que opera en los puertos abiertos, lo que es importante para localizar vulnerabilidades.
Opciones adicionales
Salida de resultados
- Guardar resultados en archivo:
nmap -oN output.txt 192.168.1.1
Este comando guarda los resultados del escaneo en formato de texto, lo que facilita compartirlos o analizarlos más tarde. - Formatos de salida:
nmap -oX output.xml 192.168.1.1
Nmap admite varios formatos de salida: XML para automatización e integración con otras herramientas, y archivos compatibles con grep para facilitar la búsqueda de información.
Tiempos y rendimiento
- Establecer la velocidad de escaneo:
nmap -T4 192.168.1.1
Esta bandera define la velocidad de ejecución del escaneo: de lento (-T0) a rápido (-T5), útil para reducir el tiempo o minimizar la probabilidad de detección. - Limitar conexiones simultáneas:
nmap --min-parallelism 10 192.168.1.1
Esta opción limita el número de conexiones simultáneas, lo que puede ayudar a optimizar el rendimiento o reducir la carga en la red.
Evasión de cortafuegos e IDS
- Cambio del tamaño de paquetes:
nmap --mtu 32 192.168.1.1
Modificar el MTU (tamaño máximo de paquete) ayuda a evadir filtros y cortafuegos configurados para filtrar tamaños de paquete estándar. - Uso de distintas técnicas de escaneo: SYN, FIN, NULL y otras.
Estas técnicas permiten sortear mecanismos de defensa, como cortafuegos o sistemas de detección de intrusiones (IDS), reduciendo la probabilidad de ser detectado.
Automatización
- Uso de scripts de Nmap (NSE):
nmap --script=vuln 192.168.1.1
NSE (Nmap Scripting Engine) es un conjunto de scripts que amplían las capacidades de Nmap, permitiendo encontrar vulnerabilidades, realizar pruebas de penetración y recopilar información adicional sobre redes. - Integración con otras herramientas: Nmap se puede usar junto con Metasploit para detectar y explotar vulnerabilidades.
Metasploit Framework utiliza los datos obtenidos por Nmap para automatizar ataques y pruebas de penetración.
Ejemplos de comandos
- Detectar puertos abiertos:
nmap -p- --open 192.168.1.1
Este comando permite identificar solo los puertos que aceptan conexiones activamente. - Determinar el sistema operativo:
nmap -O 192.168.1.1
La bandera-Oactiva la detección del sistema operativo, basándose en las firmas de los paquetes de red enviados por el dispositivo. - Buscar vulnerabilidades:
nmap --script vuln 192.168.1.1
Este script del NSE realiza un escaneo rápido en busca de vulnerabilidades conocidas, útil para una evaluación inicial de seguridad del sistema.
Conclusión
Nmap es una herramienta versátil que permite realizar tanto escaneos básicos como avanzados de redes. Para profundizar en sus capacidades, se recomienda consultar la documentación oficial y participar en foros y materiales de formación. Para usar Nmap de forma eficaz, es importante comprender las particularidades de cada comando y opción, y elegir la configuración según la naturaleza de la tarea.