Guía Completa de Nmap - Escaneo y Análisis de Redes
Nmap (Network Mapper) es una herramienta de código abierto para exploración de redes y auditorías de seguridad. Creada por Gordon Lyon (también conocido como Fyodor), se ha convertido en el estándar de facto para el descubrimiento de hosts, escaneo de puertos, detección de servicios y sistemas operativos en redes.
En esta guía se explicarán los conceptos fundamentales de Nmap y se proporcionarán ejemplos prácticos de uso, desde escaneos básicos hasta técnicas avanzadas de evasión y análisis mediante scripts NSE.
Instalación de Nmap
A continuación se describen los pasos para instalar Nmap en diferentes sistemas operativos:
Linux (Debian/Ubuntu)
sudo apt update
sudo apt install nmap
Linux (Red Hat/CentOS/Fedora)
sudo yum install nmap
# o en versiones más recientes
sudo dnf install nmap
macOS
# Usando Homebrew
brew install nmap
# Usando MacPorts
sudo port install nmap
Windows
Descarga el instalador desde la página oficial de Nmap y ejecuta el asistente de instalación.
Verificar instalación
nmap --version
Conceptos Básicos
La sintaxis general de Nmap sigue la siguiente estructura:
Sintaxis General
nmap [Tipo de Escaneo] [Opciones] {objetivo(s)}
Especificar Objetivos
# IP individual
nmap 192.168.1.1
# Múltiples IPs
nmap 192.168.1.1 192.168.1.5 192.168.1.10
# Rango de IPs
nmap 192.168.1.1-20
nmap 192.168.1.0/24
# Subred completa
nmap 192.168.1.0/24
nmap 192.168.0.0/16
# Hostname
nmap scanme.nmap.org
nmap example.com
# Múltiples hosts
nmap 192.168.1.1 scanme.nmap.org
# Lista de hosts desde archivo
nmap -iL targets.txt
# Rango excluyendo IPs
nmap 192.168.1.0/24 --exclude 192.168.1.1
nmap 192.168.1.0/24 --exclude 192.168.1.1,192.168.1.5
# Excluir desde archivo
nmap 192.168.1.0/24 --excludefile exclude.txt
Tipos de Escaneo de Puertos
Nmap ofrece diferentes tipos de escaneo, cada uno con características específicas que los hacen más adecuados para distintos escenarios:
Escaneo TCP Connect (-sT)
Completa el three-way handshake TCP. Es el escaneo por defecto cuando no tienes privilegios de root.
nmap -sT 192.168.1.1
nmap -sT 192.168.1.0/24
Ventajas:
- No requiere privilegios especiales
- Más confiable en redes con firewalls mal configurados
Desventajas:
- Más fácil de detectar
- Más lento que otros métodos
Escaneo SYN (-sS)
También conocido como “half-open scanning” o “stealth scan”. Es el escaneo por defecto con privilegios de root.
sudo nmap -sS 192.168.1.1
sudo nmap -sS 192.168.1.0/24
Ventajas:
- Más rápido que TCP Connect
- Menos detectable
- Funciona contra la mayoría de firewalls
Desventajas:
- Requiere privilegios de root/administrator
Escaneo UDP (-sU)
Escanea puertos UDP, útil para servicios como DNS, DHCP, SNMP.
sudo nmap -sU 192.168.1.1
sudo nmap -sU -p 53,67,161 192.168.1.1
# Combinado con TCP SYN
sudo nmap -sU -sS 192.168.1.1
Nota: Los escaneos UDP son significativamente más lentos que los TCP debido a la naturaleza del protocolo. Se recomienda limitar el escaneo a puertos UDP específicos cuando sea posible.
Escaneo TCP ACK (-sA)
Útil para mapear reglas de firewall y determinar si los puertos están filtrados.
sudo nmap -sA 192.168.1.1
sudo nmap -sA 192.168.1.0/24
Escaneo TCP Window (-sW)
Similar al escaneo ACK pero examina el campo TCP Window.
sudo nmap -sW 192.168.1.1
Escaneo TCP Maimon (-sM)
Envía paquetes FIN/ACK.
sudo nmap -sM 192.168.1.1
Escaneo NULL (-sN), FIN (-sF), Xmas (-sX)
Técnicas de escaneo sigiloso que manipulan flags TCP.
# NULL scan (sin flags)
sudo nmap -sN 192.168.1.1
# FIN scan
sudo nmap -sF 192.168.1.1
# Xmas scan (flags FIN, PSH, URG)
sudo nmap -sX 192.168.1.1
Nota: Estos escaneos pueden evadir ciertos firewalls pero presentan una limitación importante: no funcionan correctamente contra sistemas Windows debido a la implementación de su stack TCP/IP.
Escaneo Idle (-sI)
Escaneo ultra sigiloso usando un host zombie.
sudo nmap -sI zombie_host 192.168.1.1
sudo nmap -Pn -sI zombie_host:port 192.168.1.1
Descubrimiento de Hosts
Ping Scan (-sn)
Descubre hosts activos sin escanear puertos.
nmap -sn 192.168.1.0/24
nmap -sn 192.168.1.1-50
# Sin ping (asume que el host está activo)
nmap -Pn 192.168.1.1
Técnicas de Ping
# ICMP echo request (ping tradicional)
sudo nmap -PE 192.168.1.0/24
# ICMP timestamp request
sudo nmap -PP 192.168.1.0/24
# ICMP address mask request
sudo nmap -PM 192.168.1.0/24
# TCP SYN ping a puerto 80
sudo nmap -PS80 192.168.1.0/24
# TCP ACK ping a puerto 80
sudo nmap -PA80 192.168.1.0/24
# UDP ping al puerto 53
sudo nmap -PU53 192.168.1.0/24
# Combinación de técnicas
sudo nmap -PE -PS22,80,443 -PA80,443 192.168.1.0/24
Descubrimiento ARP
# Solo en redes locales
sudo nmap -PR 192.168.1.0/24
Lista de Hosts Activos
# Guardar lista de hosts descubiertos
nmap -sn 192.168.1.0/24 -oG - | awk '/Up$/{print $2}' > hosts_activos.txt
Especificación de Puertos
Sintaxis de Puertos
# Puerto específico
nmap -p 80 192.168.1.1
# Múltiples puertos
nmap -p 22,80,443 192.168.1.1
# Rango de puertos
nmap -p 1-100 192.168.1.1
nmap -p 1-65535 192.168.1.1
# Todos los puertos
nmap -p- 192.168.1.1
# Puertos comunes (1000 más comunes)
nmap 192.168.1.1
# Top ports
nmap --top-ports 20 192.168.1.1
nmap --top-ports 100 192.168.1.1
# Puertos por nombre
nmap -p http,https,ssh 192.168.1.1
# Puertos TCP y UDP
nmap -p T:80,443,U:53,161 192.168.1.1
# Todos los puertos TCP
nmap -p T:- 192.168.1.1
# Todos los puertos UDP
nmap -p U:- 192.168.1.1
# Escaneo rápido (100 puertos más comunes)
nmap -F 192.168.1.1
Detección de Servicios y Versiones
Detección de Versiones (-sV)
# Detección básica de versiones
nmap -sV 192.168.1.1
# Intensidad de la detección (0-9)
nmap -sV --version-intensity 0 192.168.1.1 # Ligera
nmap -sV --version-intensity 5 192.168.1.1 # Media (por defecto)
nmap -sV --version-intensity 9 192.168.1.1 # Agresiva
# Detección ligera
nmap -sV --version-light 192.168.1.1
# Detección agresiva
nmap -sV --version-all 192.168.1.1
# Con información adicional
nmap -sV --version-trace 192.168.1.1
Detección de Sistema Operativo (-O)
# Detección básica de OS
sudo nmap -O 192.168.1.1
# Detección agresiva de OS
sudo nmap -O --osscan-guess 192.168.1.1
sudo nmap -O --osscan-limit 192.168.1.1
# Limitar intentos de detección
sudo nmap -O --max-os-tries 1 192.168.1.1
Detección Agresiva (-A)
Habilita detección de OS, versiones, scripts y traceroute.
nmap -A 192.168.1.1
sudo nmap -A 192.168.1.0/24
# Equivale a:
# -O (OS detection)
# -sV (version detection)
# -sC (script scanning)
# --traceroute
Scripts NSE (Nmap Scripting Engine)
El Nmap Scripting Engine (NSE) permite extender las capacidades de Nmap mediante scripts escritos en Lua. Estos scripts pueden realizar tareas como detección de vulnerabilidades, fuerza bruta, extracción de información y análisis avanzado de servicios.
Los scripts NSE están organizados en las siguientes categorías:
Categorías de Scripts
- auth: Scripts de autenticación
- broadcast: Scripts de descubrimiento por broadcast
- brute: Scripts de fuerza bruta
- default: Scripts ejecutados con -sC
- discovery: Scripts de descubrimiento avanzado
- dos: Scripts de denegación de servicio
- exploit: Scripts de explotación
- external: Scripts que usan recursos externos
- fuzzer: Scripts de fuzzing
- intrusive: Scripts intrusivos
- malware: Scripts de detección de malware
- safe: Scripts seguros
- version: Scripts de detección de versiones
- vuln: Scripts de detección de vulnerabilidades
Uso de Scripts
# Scripts por defecto
nmap -sC 192.168.1.1
# Script específico
nmap --script=http-title 192.168.1.1
nmap --script=ssh-brute 192.168.1.1
# Múltiples scripts
nmap --script=http-title,http-headers 192.168.1.1
# Scripts por categoría
nmap --script=vuln 192.168.1.1
nmap --script=auth 192.168.1.1
# Todos los scripts de una categoría
nmap --script "http-*" 192.168.1.1
# Combinación de categorías
nmap --script "default and safe" 192.168.1.1
nmap --script "vuln or exploit" 192.168.1.1
# Excluir categorías
nmap --script "default and not intrusive" 192.168.1.1
# Con argumentos
nmap --script=http-brute --script-args http-brute.path=/admin 192.168.1.1
# Ayuda de un script
nmap --script-help http-enum
Scripts Populares
# Detección de vulnerabilidades
nmap --script=vuln 192.168.1.1
nmap --script=vulscan 192.168.1.1
# HTTP
nmap --script=http-enum 192.168.1.1
nmap --script=http-headers 192.168.1.1
nmap --script=http-methods 192.168.1.1
nmap --script=http-shellshock 192.168.1.1
nmap --script=http-sql-injection 192.168.1.1
nmap --script=http-wordpress-enum 192.168.1.1
# SMB
nmap --script=smb-os-discovery 192.168.1.1
nmap --script=smb-enum-shares 192.168.1.1
nmap --script=smb-vuln-* 192.168.1.1
# SSH
nmap --script=ssh-hostkey 192.168.1.1
nmap --script=ssh-auth-methods 192.168.1.1
# DNS
nmap --script=dns-brute example.com
nmap --script=dns-zone-transfer example.com
# SSL/TLS
nmap --script=ssl-enum-ciphers -p 443 192.168.1.1
nmap --script=ssl-cert -p 443 192.168.1.1
nmap --script=ssl-heartbleed -p 443 192.168.1.1
# FTP
nmap --script=ftp-anon 192.168.1.1
nmap --script=ftp-bounce 192.168.1.1
# MySQL
nmap --script=mysql-info 192.168.1.1
nmap --script=mysql-enum 192.168.1.1
# SNMP
nmap --script=snmp-brute 192.168.1.1
nmap --script=snmp-info 192.168.1.1
Actualizar Base de Datos de Scripts
sudo nmap --script-updatedb
Técnicas de Evasión de Firewalls/IDS
En entornos donde los escaneos pueden ser bloqueados por firewalls o detectados por sistemas de detección de intrusos (IDS), Nmap proporciona diversas técnicas de evasión. Estas técnicas deben utilizarse únicamente en entornos autorizados y con el permiso correspondiente.
Fragmentación de Paquetes
# Fragmentación básica
nmap -f 192.168.1.1
# MTU personalizado (debe ser múltiplo de 8)
nmap --mtu 16 192.168.1.1
nmap --mtu 24 192.168.1.1
Señuelos (Decoys)
# Usar señuelos aleatorios
nmap -D RND:10 192.168.1.1
# Señuelos específicos
nmap -D decoy1,decoy2,ME,decoy3 192.168.1.1
# IP de origen falsa
nmap -S 192.168.1.100 192.168.1.1
Manipulación de Puertos de Origen
# Puerto de origen específico
nmap --source-port 53 192.168.1.1
nmap -g 53 192.168.1.1
# Útil cuando firewalls permiten tráfico de DNS (puerto 53)
sudo nmap -sS -g 53 192.168.1.1
Control de Timing
El control de timing es fundamental para equilibrar la velocidad del escaneo con la precisión y el sigilo. Nmap ofrece 6 plantillas de timing predefinidas (T0-T5):
# T0: Paranoid (muy lento, para evasión de IDS)
nmap -T0 192.168.1.1
# T1: Sneaky (lento, para evasión)
nmap -T1 192.168.1.1
# T2: Polite (ralentizado para usar menos ancho de banda)
nmap -T2 192.168.1.1
# T3: Normal (por defecto)
nmap -T3 192.168.1.1
nmap 192.168.1.1
# T4: Aggressive (más rápido, asume red rápida)
nmap -T4 192.168.1.1
# T5: Insane (muy rápido, puede perder precisión)
nmap -T5 192.168.1.1
Control Manual de Timing
# Delay entre sondas
nmap --scan-delay 2s 192.168.1.1
nmap --max-scan-delay 5s 192.168.1.1
# Rate de paquetes
nmap --min-rate 100 192.168.1.1
nmap --max-rate 500 192.168.1.1
# Paralelismo de hosts
nmap --min-hostgroup 50 192.168.1.0/24
nmap --max-hostgroup 100 192.168.1.0/24
# Número de intentos
nmap --max-retries 1 192.168.1.1
# Timeout de hosts
nmap --host-timeout 5m 192.168.1.1
Datos Aleatorios
# Añadir datos aleatorios a los paquetes
nmap --data-length 25 192.168.1.1
Spoofing de MAC
# MAC específica
sudo nmap --spoof-mac 00:11:22:33:44:55 192.168.1.1
# MAC aleatoria
sudo nmap --spoof-mac 0 192.168.1.1
# MAC de un fabricante (Apple, Dell, etc.)
sudo nmap --spoof-mac Apple 192.168.1.1
Opciones IP
# TTL personalizado
nmap --ttl 64 192.168.1.1
# Longitud IP
nmap --ip-options "L 192.168.1.1 192.168.1.5" 192.168.1.1
Opciones de Salida
Formatos de Salida
# Salida normal (pantalla)
nmap 192.168.1.1
# Guardar en archivo normal
nmap -oN scan.txt 192.168.1.1
# Formato XML
nmap -oX scan.xml 192.168.1.1
# Formato grepable
nmap -oG scan.gnmap 192.168.1.1
# Formato script kiddie (divertido)
nmap -oS scan_leet.txt 192.168.1.1
# Todos los formatos
nmap -oA scan_completo 192.168.1.1
# Salida a pantalla y archivo
nmap 192.168.1.1 | tee scan.txt
Nivel de Verbosidad
# Aumentar verbosidad
nmap -v 192.168.1.1
nmap -vv 192.168.1.1
nmap -vvv 192.168.1.1
# Modo debug
nmap -d 192.168.1.1
nmap -dd 192.168.1.1
Opciones de Visualización
# Mostrar solo puertos abiertos
nmap --open 192.168.1.1
# Mostrar motivo del estado
nmap --reason 192.168.1.1
# Mostrar todos los hosts (incluso down)
nmap --send-ip 192.168.1.0/24
# Mostrar paquetes enviados y recibidos
nmap --packet-trace 192.168.1.1
# Resumen de estadísticas
nmap --stats-every 10s 192.168.1.0/24
Ejemplos de Escaneos Combinados
La combinación de diferentes opciones de Nmap permite realizar escaneos más efectivos y específicos. A continuación se presentan ejemplos de uso común:
Escaneo Básico de Red
# Descubrimiento de hosts
nmap -sn 192.168.1.0/24
# Escaneo rápido de hosts activos
nmap -T4 -F 192.168.1.0/24
# Escaneo completo de red
nmap -T4 -A -v 192.168.1.0/24
Escaneo de Servidor Web
# Detección completa de servicios web
nmap -p 80,443 -sV -sC --script=http-* 192.168.1.1
# Vulnerabilidades web
nmap -p 80,443 --script=http-vuln-* 192.168.1.1
# Enumeración de directorios
nmap -p 80,443 --script=http-enum 192.168.1.1
Escaneo de Base de Datos
# MySQL
nmap -p 3306 --script=mysql-* 192.168.1.1
# PostgreSQL
nmap -p 5432 --script=pgsql-* 192.168.1.1
# MongoDB
nmap -p 27017 --script=mongodb-* 192.168.1.1
# MSSQL
nmap -p 1433 --script=ms-sql-* 192.168.1.1
Escaneo de Windows
# Información SMB
nmap -p 445 --script=smb-os-discovery 192.168.1.1
# Vulnerabilidades SMB
nmap -p 445 --script=smb-vuln-* 192.168.1.1
# Enumeración de recursos compartidos
nmap -p 445 --script=smb-enum-shares,smb-enum-users 192.168.1.1
Escaneo Sigiloso Completo
# Máxima evasión
sudo nmap -sS -T1 -f -D RND:10 --randomize-hosts -p- 192.168.1.0/24
# Evasión con señuelos
sudo nmap -sS -sV -T2 -D RND:5 --source-port 53 192.168.1.1
Auditoría de Seguridad Completa
# Escaneo exhaustivo
sudo nmap -sS -sU -T4 -A -v -PE -PP -PS80,443 -PA3389 -PU40125 -PY -g 53 \
--script "default or (discovery and safe)" -p- 192.168.1.1
# Detección de vulnerabilidades
sudo nmap -sV --script=vuln -p- 192.168.1.1
# Análisis profundo de servicios
sudo nmap -sV -sC -O -p- -T4 --script=default,discovery,version,vuln 192.168.1.1
Escaneo de Red Externa
# Puertos más comunes
nmap -T4 -p 21,22,23,25,53,80,110,143,443,445,3306,3389,8080 example.com
# Top 1000 puertos con detección
nmap -T4 -A --top-ports 1000 example.com
# Escaneo UDP de servicios comunes
sudo nmap -sU -T4 -p 53,67,68,69,123,161,162,500,514,520 example.com
Casos de Uso Prácticos
A continuación se presentan escenarios reales de aplicación de Nmap en entornos profesionales:
1. Inventario de Red
# Descubrir todos los dispositivos
nmap -sn 192.168.1.0/24 -oG - | awk '/Up$/{print $2}' > devices.txt
# Identificar sistemas operativos
sudo nmap -O -iL devices.txt -oN os_detection.txt
# Servicios por dispositivo
nmap -sV -iL devices.txt -oN services.txt
2. Verificación de Firewall
# Comprobar reglas de firewall
nmap -sA -p 1-65535 192.168.1.1
# Comparar desde interno y externo
nmap -sS -p- 192.168.1.1 > internal_scan.txt
nmap -sS -p- external_ip > external_scan.txt
diff internal_scan.txt external_scan.txt
3. Detección de Rogue Devices
# Escaneo continuo de red
while true; do
nmap -sn 192.168.1.0/24 -oG - | \
awk '/Up$/{print $2,$3}' | \
sort > current_scan.txt
if [ -f previous_scan.txt ]; then
diff previous_scan.txt current_scan.txt
fi
mv current_scan.txt previous_scan.txt
sleep 300
done
4. Monitoreo de Cambios en Servicios
# Escaneo inicial de referencia
nmap -sV -p- 192.168.1.1 -oX baseline.xml
# Escaneo posterior
nmap -sV -p- 192.168.1.1 -oX current.xml
# Comparar usando ndiff
ndiff baseline.xml current.xml
5. Preparación para Pentest
# Fase 1: Descubrimiento
nmap -sn target_network/24 -oG hosts.txt
# Fase 2: Escaneo de puertos
nmap -sS -p- -iL hosts.txt -oA port_scan
# Fase 3: Detección de servicios
nmap -sV -sC -iL hosts.txt -oA service_scan
# Fase 4: Detección de vulnerabilidades
nmap --script=vuln -iL hosts.txt -oA vuln_scan
Interpretación de Resultados
La correcta interpretación de los resultados de Nmap es fundamental para el análisis de seguridad. A continuación se describen los diferentes estados de puerto que Nmap puede reportar:
Estados de Puertos
- open: Puerto abierto y aceptando conexiones
- closed: Puerto cerrado, host responde pero no hay servicio escuchando
- filtered: Firewall o filtro está bloqueando el puerto
- unfiltered: Puerto accesible pero Nmap no puede determinar si está abierto o cerrado
- open|filtered: Nmap no puede determinar si está abierto o filtrado
- closed|filtered: Nmap no puede determinar si está cerrado o filtrado
Ejemplo de Salida
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5
80/tcp open http Apache httpd 2.4.41
443/tcp open ssl/http Apache httpd 2.4.41
3306/tcp open mysql MySQL 8.0.30
Analizar Resultados con Grep
# Puertos abiertos
grep "open" scan.gnmap
# Servicios HTTP
grep "http" scan.gnmap
# Sistemas operativos detectados
grep "OS:" scan.gnmap
# IPs con puerto específico abierto
grep "22/open" scan.gnmap | awk '{print $2}'
Integración con Otras Herramientas
Convertir Resultados
# XML a HTML
xsltproc nmap.xml -o report.html
# Usar con ndiff
ndiff scan1.xml scan2.xml
# Importar a Metasploit
db_import scan.xml
Automatización con Scripts
#!/bin/bash
# Script de escaneo programado
TARGET="192.168.1.0/24"
DATE=$(date +%Y%m%d_%H%M%S)
OUTPUT_DIR="/var/scans"
# Escaneo completo
nmap -sS -sV -O -A -T4 $TARGET -oA $OUTPUT_DIR/scan_$DATE
# Comparar con escaneo anterior
PREVIOUS=$(ls -t $OUTPUT_DIR/*.xml | sed -n 2p)
if [ -f "$PREVIOUS" ]; then
ndiff $PREVIOUS $OUTPUT_DIR/scan_$DATE.xml > $OUTPUT_DIR/diff_$DATE.txt
fi
# Enviar alerta si hay cambios significativos
if [ -s $OUTPUT_DIR/diff_$DATE.txt ]; then
mail -s "Cambios detectados en la red" admin@example.com < $OUTPUT_DIR/diff_$DATE.txt
fi
Zenmap (GUI de Nmap)
Zenmap es la interfaz gráfica oficial de Nmap que facilita:
- Crear perfiles de escaneo personalizados
- Visualizar resultados en forma de topología de red
- Comparar escaneos fácilmente
- Guardar y organizar escaneos
# Instalar Zenmap
sudo apt install zenmap # Debian/Ubuntu
Optimización y Mejores Prácticas
La optimización de escaneos Nmap requiere equilibrar velocidad, precisión y sigilo según los requisitos específicos:
1. Rendimiento
# Escaneo rápido pero fiable
nmap -T4 --min-rate 1000 --max-retries 2 192.168.1.0/24
# Para redes lentas
nmap -T2 --max-rate 100 192.168.1.0/24
# Optimizar paralelismo
nmap --min-hostgroup 128 --max-hostgroup 256 192.168.1.0/24
2. Precisión vs Velocidad
# Máxima precisión (lento)
nmap -sS -sV --version-all -p- -T2 192.168.1.1
# Balance precisión/velocidad
nmap -sS -sV -T4 --top-ports 1000 192.168.1.1
# Máxima velocidad (menos preciso)
nmap -T5 -F 192.168.1.1
3. Uso Responsable
Las siguientes consideraciones deben tenerse en cuenta para un uso responsable de Nmap:
- Obtén autorización antes de escanear redes que no te pertenecen
- Respeta la privacidad y las políticas de uso de redes
- Limita el impacto en la red objetivo
- Documenta tus escaneos para auditorías
- Usa timing apropiado para no saturar la red
4. Seguridad Operacional
# Usar VPN antes de escanear
# Rotar IPs de origen cuando sea posible
# Limpiar logs después de pruebas autorizadas
# Escaneo a través de proxy SOCKS
nmap --proxies socks4://proxy:1080 192.168.1.1
# Usar Tor (requiere configuración adicional)
proxychains nmap -sT -Pn 192.168.1.1
Recursos y Aprendizaje
Para profundizar en el uso de Nmap, se recomiendan los siguientes recursos:
Documentación Oficial
- Nmap.org - Sitio oficial
- Nmap Reference Guide - Manual completo
- NSE Documentation - Scripts NSE
- Nmap Book - Libro gratuito online
Práctica
- Scanme.nmap.org - Servidor de pruebas oficial
- HackTheBox - Laboratorios de práctica
- TryHackMe - Rooms de Nmap
- VulnHub - VMs vulnerables
Comunidad
Comandos de Referencia Rápida
Los siguientes comandos representan los casos de uso más frecuentes de Nmap:
Top 10 Comandos Más Útiles
# 1. Escaneo básico de red
nmap 192.168.1.0/24
# 2. Escaneo rápido de puertos comunes
nmap -F 192.168.1.1
# 3. Detección de servicios
nmap -sV 192.168.1.1
# 4. Detección de SO
sudo nmap -O 192.168.1.1
# 5. Escaneo agresivo completo
nmap -A 192.168.1.1
# 6. Escaneo sigiloso
sudo nmap -sS 192.168.1.1
# 7. Scripts de vulnerabilidades
nmap --script=vuln 192.168.1.1
# 8. Escaneo de todos los puertos
nmap -p- 192.168.1.1
# 9. Descubrimiento de hosts
nmap -sn 192.168.1.0/24
# 10. Escaneo UDP
sudo nmap -sU 192.168.1.1
Solución de Problemas Comunes
A continuación se describen las soluciones a los problemas más frecuentes al utilizar Nmap:
Nmap no encuentra hosts
# Desactivar ping
nmap -Pn 192.168.1.1
# Usar múltiples técnicas de ping
sudo nmap -PE -PS -PA -PU 192.168.1.1
# Verificar conectividad
ping 192.168.1.1
Escaneo muy lento
# Aumentar timing
nmap -T4 192.168.1.1
# Limitar puertos
nmap --top-ports 100 192.168.1.1
# Aumentar paralelismo
nmap --min-hostgroup 50 192.168.1.0/24
Permisos insuficientes
# Usar sudo para técnicas avanzadas
sudo nmap -sS 192.168.1.1
# o ejecutar como root
su -
nmap -sS 192.168.1.1
Firewall bloqueando escaneos
# Fragmentar paquetes
nmap -f 192.168.1.1
# Usar señuelos
nmap -D RND:10 192.168.1.1
# Cambiar puerto de origen
nmap -g 53 192.168.1.1
Advertencia Legal y Ética
⚠️ IMPORTANTE - LEER ANTES DE USAR
El uso de Nmap está sujeto a restricciones legales y éticas que deben ser consideradas antes de realizar cualquier escaneo.
Consideraciones Legales
El uso no autorizado de herramientas de escaneo de redes puede constituir una violación de leyes en muchas jurisdicciones. En Estados Unidos, por ejemplo, leyes como el Computer Fraud and Abuse Act (CFAA) penalizan el acceso no autorizado a sistemas informáticos. Muchos proveedores de servicios de Internet (ISPs) también pueden terminar el servicio si detectan escaneos abusivos o no autorizados.
Uso Autorizado
Nmap debe utilizarse para:
- Auditorías de seguridad con autorización formal y documentada
- Pentesting bajo contrato o acuerdo explícito
- Administración de infraestructura propia
- Investigación en entornos controlados (laboratorios, máquinas virtuales propias)
- Proyectos académicos con los permisos correspondientes
Nmap NO debe utilizarse para:
- Escaneo de redes o sistemas sin autorización explícita
- Búsqueda de vulnerabilidades en sistemas de terceros sin permiso
- Cualquier actividad que implique acceso no autorizado
- Violación de la privacidad o políticas de uso
Mejores Prácticas
Antes de realizar cualquier escaneo:
- Obtener autorización por escrito del propietario o administrador de la red objetivo
- Definir el alcance claramente, especificando qué sistemas pueden ser escaneados
- Documentar todas las actividades mediante logs y registros
- Reportar hallazgos de forma responsable siguiendo procedimientos de divulgación coordinada
- Respetar las políticas de uso aceptable de las redes y sistemas
En resumen: únicamente debe escanearse infraestructura propia o para la que se disponga de autorización explícita y documentada.
Conclusión
Nmap es una herramienta fundamental para profesionales de seguridad informática y administradores de redes. Su versatilidad permite realizar desde escaneos básicos de descubrimiento de hosts hasta auditorías de seguridad complejas mediante scripts NSE y técnicas avanzadas de evasión.
La efectividad de Nmap radica en la combinación adecuada de sus múltiples opciones y técnicas. El dominio de esta herramienta requiere práctica constante y comprensión de los protocolos y servicios analizados.
Puntos Clave
- Los diferentes tipos de escaneo ofrecen ventajas específicas según el objetivo
- La combinación de técnicas produce resultados más completos y precisos
- El control de timing es fundamental para equilibrar velocidad, precisión y sigilo
- Los scripts NSE amplían significativamente las capacidades de análisis
- La interpretación correcta de resultados requiere conocimiento de redes y servicios
- El uso debe realizarse siempre de forma ética y con autorización
Recomendaciones
Para el aprendizaje y práctica de Nmap se recomienda:
- Utilizar entornos controlados como laboratorios propios o servicios autorizados (scanme.nmap.org)
- Comenzar con escaneos básicos e incrementar gradualmente la complejidad
- Documentar los resultados y analizar las diferencias entre técnicas
- Consultar la documentación oficial y recursos de la comunidad
- Mantenerse actualizado con las nuevas versiones y scripts NSE
El uso responsable y la formación continua son esenciales para aprovechar todo el potencial de Nmap en la auditoría y administración de redes.