Nmap: Guía Completa 2025 – Tutorial de Comandos, Escaneo de Puertos y Hacking Ético
¿Quieres aprender a escanear redes como un profesional de la ciberseguridad? Nmap es LA herramienta que necesitas dominar. En esta guía completa te enseñaré desde los comandos básicos hasta técnicas avanzadas de escaneo de puertos, detección de sistemas operativos y mucho más. Tanto si eres un administrador de sistemas como un aspirante a hacker ético, este tutorial de Nmap en español te convertirá en un experto.
¿Qué es Nmap y para qué sirve?
Nmap (Network Mapper) es una herramienta de código abierto diseñada para la exploración y auditoría de redes. Creada en 1997 por Gordon Lyon (conocido como Fyodor), se ha convertido en el estándar de facto para profesionales de ciberseguridad, administradores de sistemas y hackers éticos en todo el mundo.
Las principales funciones de Nmap incluyen:
Descubrimiento de hosts: Identifica qué dispositivos están activos en una red
Escaneo de puertos: Detecta qué puertos están abiertos, cerrados o filtrados
Detección de servicios: Identifica qué servicios y versiones se ejecutan en cada puerto
Detección de sistemas operativos: Adivina el SO del objetivo mediante fingerprinting
Detección de vulnerabilidades: Mediante scripts NSE puede identificar fallos de seguridad
Inventario de red: Crea mapas completos de la infraestructura
Cómo instalar Nmap en Windows, Linux y macOS
Antes de empezar a escanear, necesitas instalar Nmap en tu sistema. Aquí te explico cómo hacerlo en cada plataforma.
Instalar Nmap en Windows
Descarga el instalador desde la web oficial: nmap.org/download
Ejecuta el archivo .exe descargado
Sigue el asistente de instalación (incluye Zenmap, la interfaz gráfica)
Abre CMD o PowerShell como administrador y escribe: nmap –version
Instalar Nmap en Linux (Debian/Ubuntu)
«`bash
sudo apt update
sudo apt install nmap -y
### Instalar Nmap en Kali Linux
Buenas noticias: Nmap viene preinstalado en Kali Linux. Solo verifica la versión con:
```bash
nmap --version
```
### Instalar Nmap en macOS
```bash
brew install nmap
```
## Comandos básicos de Nmap (con ejemplos)
Vamos al grano. Estos son los comandos esenciales que todo usuario de Nmap debe conocer.
### Escaneo básico de un host
El comando más simple para escanear un objetivo:
```bash
nmap 192.168.1.1
```
Este comando escanea los 1000 puertos más comunes del host especificado.
### Escanear múltiples hosts
```bash
nmap 192.168.1.1 192.168.1.2 192.168.1.3
```
### Escanear un rango de IPs
```bash
nmap 192.168.1.1-254
```
### Escanear una subred completa
```bash
nmap 192.168.1.0/24
```
### Escanear desde un archivo de hosts
```bash
nmap -iL lista_hosts.txt
```
## Tipos de escaneo de puertos en Nmap
Nmap ofrece diferentes técnicas de escaneo. Cada una tiene sus ventajas según el escenario.
### Escaneo TCP SYN (Stealth Scan) - El más usado
```bash
nmap -sS 192.168.1.1
```
También conocido como "half-open scan". Envía paquetes SYN y analiza la respuesta sin completar el handshake TCP. Es rápido y difícil de detectar. **Requiere privilegios de root/administrador.**
### Escaneo TCP Connect
```bash
nmap -sT 192.168.1.1
```
Completa la conexión TCP de 3 vías. Más lento y detectable, pero no requiere privilegios especiales. Útil cuando no tienes acceso root.
### Escaneo UDP
```bash
nmap -sU 192.168.1.1
```
Escanea puertos UDP como DNS (53), SNMP (161) o DHCP (67/68). Es más lento que TCP porque UDP no envía confirmación.
### Escaneo TCP y UDP combinado
```bash
nmap -sS -sU 192.168.1.1
```
### Escaneo FIN, NULL y Xmas (Evasión de firewalls)
```bash
nmap -sF 192.168.1.1 # FIN scan
nmap -sN 192.168.1.1 # NULL scan
nmap -sX 192.168.1.1 # Xmas scan
```
Estos escaneos pueden evadir algunos firewalls y sistemas de detección de intrusos (IDS) que solo buscan paquetes SYN.
## Opciones de escaneo de puertos específicos
### Escanear un puerto específico
```bash
nmap -p 80 192.168.1.1
```
### Escanear varios puertos
```bash
nmap -p 80,443,22,21 192.168.1.1
```
### Escanear un rango de puertos
```bash
nmap -p 1-1000 192.168.1.1
```
### Escanear TODOS los puertos (65535)
```bash
nmap -p- 192.168.1.1
```
**Advertencia:** Este escaneo puede tardar bastante tiempo. Úsalo con paciencia.
### Escanear los puertos más comunes
```bash
nmap -F 192.168.1.1 # Top 100 puertos
nmap --top-ports 20 192.168.1.1 # Top 20 puertos
```
## Detección de servicios y versiones
Una de las características más potentes de Nmap es identificar qué software y versión corre en cada puerto abierto.
### Detectar versiones de servicios
```bash
nmap -sV 192.168.1.1
```
Esto te mostrará información como: Apache 2.4.41, OpenSSH 8.2p1, MySQL 5.7.32, etc.
### Niveles de intensidad en detección de versiones
```bash
nmap -sV --version-intensity 0 192.168.1.1 # Ligero (rápido)
nmap -sV --version-intensity 5 192.168.1.1 # Normal (default)
nmap -sV --version-intensity 9 192.168.1.1 # Agresivo (lento pero preciso)
```
## Detección del sistema operativo
Nmap puede adivinar el sistema operativo del objetivo mediante técnicas de fingerprinting.
```bash
nmap -O 192.168.1.1
```
### Detección agresiva (combina -sV, -O, scripts y traceroute)
```bash
nmap -A 192.168.1.1
```
Esta opción es muy completa pero también más ruidosa y lenta. Ideal para análisis detallados.
## Nmap Scripting Engine (NSE): Scripts para detección de vulnerabilidades
El motor de scripts de Nmap (NSE) permite ejecutar scripts en Lua para automatizar tareas avanzadas como detección de vulnerabilidades, enumeración de servicios y mucho más.
### Ejecutar scripts por defecto
```bash
nmap -sC 192.168.1.1
```
### Ejecutar un script específico
```bash
nmap --script=http-title 192.168.1.1
nmap --script=ssl-heartbleed 192.168.1.1
nmap --script=smb-vuln-ms17-010 192.168.1.1 # EternalBlue
```
### Scripts por categoría
```bash
nmap --script=vuln 192.168.1.1 # Todos los scripts de vulnerabilidades
nmap --script=safe 192.168.1.1 # Scripts seguros (no intrusivos)
nmap --script=auth 192.168.1.1 # Autenticación
nmap --script=discovery 192.168.1.1 # Descubrimiento
```
### Scripts útiles para pentesting
| Script | Descripción |
|--------|-------------|
| http-enum | Enumera directorios web comunes |
| ftp-anon | Detecta FTP anónimo |
| smb-enum-shares | Lista recursos compartidos SMB |
| mysql-empty-password | Busca MySQL sin contraseña |
| ssh-brute | Fuerza bruta SSH |
| dns-zone-transfer | Transferencia de zona DNS |
## Descubrimiento de hosts (Host Discovery)
Antes de escanear puertos, Nmap verifica qué hosts están activos en la red.
### Ping scan (solo descubrimiento, sin escaneo de puertos)
```bash
nmap -sn 192.168.1.0/24
```
### Saltar el descubrimiento (asumir que el host está activo)
```bash
nmap -Pn 192.168.1.1
```
Útil cuando el firewall bloquea pings pero quieres escanear de todas formas.
### Otros métodos de descubrimiento
```bash
nmap -PS22,80,443 192.168.1.0/24 # TCP SYN ping
nmap -PA80,443 192.168.1.0/24 # TCP ACK ping
nmap -PU53 192.168.1.0/24 # UDP ping
nmap -PE 192.168.1.0/24 # ICMP echo ping
```
## Control de velocidad y timing
Nmap permite ajustar la velocidad del escaneo. Esto es crucial para evitar detección o no saturar la red.
### Plantillas de timing
```bash
nmap -T0 192.168.1.1 # Paranoico (muy lento, evasión IDS)
nmap -T1 192.168.1.1 # Sigiloso
nmap -T2 192.168.1.1 # Educado
nmap -T3 192.168.1.1 # Normal (default)
nmap -T4 192.168.1.1 # Agresivo (recomendado para redes rápidas)
nmap -T5 192.168.1.1 # Insane (muy rápido, puede perder resultados)
```
**Recomendación:** Para la mayoría de casos usa -T4. Para evasión usa -T1 o -T2.
## Guardar resultados (Output)
Nmap puede exportar los resultados en varios formatos.
```bash
nmap -oN resultado.txt 192.168.1.1 # Formato normal
nmap -oX resultado.xml 192.168.1.1 # Formato XML
nmap -oG resultado.gnmap 192.168.1.1 # Formato grepeable
nmap -oA resultado 192.168.1.1 # Los 3 formatos a la vez
```
El formato XML es ideal para importar en herramientas como Metasploit o Nessus.
## Técnicas de evasión de firewalls e IDS
Cuando necesitas pasar desapercibido, Nmap tiene varias opciones.
### Fragmentación de paquetes
```bash
nmap -f 192.168.1.1 # Fragmenta los paquetes
nmap -f -f 192.168.1.1 # Fragmentación más pequeña (16 bytes)
```
### Usar señuelos (Decoys)
```bash
nmap -D 192.168.1.100,192.168.1.101,ME 192.168.1.1
```
Envía paquetes desde múltiples IPs falsas para confundir al objetivo.
### Cambiar el puerto de origen
```bash
nmap --source-port 53 192.168.1.1 # Simula tráfico DNS
nmap -g 80 192.168.1.1 # Simula tráfico HTTP
```
### Spoofing de MAC
```bash
nmap --spoof-mac 0 192.168.1.1 # MAC aleatoria
nmap --spoof-mac Apple 192.168.1.1 # Parecer un dispositivo Apple
nmap --spoof-mac 00:11:22:33:44:55 192.168.1.1 # MAC específica
```
## Comandos combinados avanzados para pentesting
Estas son las combinaciones más útiles que uso en auditorías reales:
### Escaneo completo rápido
```bash
nmap -sS -sV -sC -O -T4 -p- 192.168.1.1 -oA scan_completo
```
### Descubrimiento de red silencioso
```bash
nmap -sn -T2 192.168.1.0/24 --max-retries 1
```
### Escaneo de vulnerabilidades
```bash
nmap -sV --script=vuln -p 21,22,80,443,445,3389 192.168.1.1
```
### Escaneo web completo
```bash
nmap -sV --script=http-enum,http-title,http-methods -p 80,443,8080,8443 192.168.1.1
```
### Escaneo SMB (Windows)
```bash
nmap -sV --script=smb-enum-shares,smb-vuln-* -p 445 192.168.1.1
```
## Cheatsheet de comandos Nmap (resumen rápido)
| Comando | Descripción |
|---------|-------------|
| nmap IP | Escaneo básico |
| nmap -sS | TCP SYN (stealth) |
| nmap -sT | TCP Connect |
| nmap -sU | UDP scan |
| nmap -sV | Detectar versiones |
| nmap -O | Detectar SO |
| nmap -A | Escaneo agresivo completo |
| nmap -sC | Scripts por defecto |
| nmap -p- | Todos los puertos |
| nmap -F | Escaneo rápido (top 100) |
| nmap -sn | Solo ping (descubrimiento) |
| nmap -Pn | Sin ping (asumir host activo) |
| nmap -T4 | Velocidad agresiva |
| nmap -oA file | Guardar todos los formatos |
## Zenmap: La interfaz gráfica de Nmap
Si prefieres una interfaz visual, Zenmap es la solución oficial. Viene incluida en la instalación de Windows y se puede instalar en Linux.
**Ventajas de Zenmap:**
- Interfaz gráfica intuitiva
- Perfiles de escaneo predefinidos
- Visualización de topología de red
- Historial de escaneos
- Comparación de resultados
```bash
# Instalar en Linux
sudo apt install zenmap
```
## Aspectos legales y éticos del uso de Nmap
**IMPORTANTE:** Usar Nmap contra sistemas sin autorización es ILEGAL en la mayoría de países.
**Puedes usar Nmap legalmente para:**
- Escanear tu propia red doméstica o empresarial
- Auditorías de seguridad con permiso escrito del dueño
- Laboratorios de prueba (máquinas virtuales, CTF)
- Plataformas de práctica como HackTheBox, TryHackMe o VulnHub
**NO uses Nmap para:**
- Escanear servidores de terceros sin permiso
- Redes corporativas ajenas
- Servicios públicos de gobierno o infraestructura crítica
El hacking ético se basa en tener autorización explícita.
## Preguntas frecuentes sobre Nmap (FAQ)
### ¿Nmap es legal?
Sí, Nmap es una herramienta legal. Lo ilegal es usarla contra sistemas sin autorización. Siempre obtén permiso antes de escanear.
### ¿Nmap funciona en Windows?
Sí, Nmap está disponible para Windows, Linux y macOS. En Windows incluye la interfaz gráfica Zenmap.
### ¿Qué diferencia hay entre -sS y -sT?
-sS (SYN scan) es más rápido y sigiloso pero requiere privilegios de root. -sT (Connect scan) completa la conexión TCP completa y no requiere permisos especiales.
### ¿Cómo escaneo todos los puertos?
Usa el parámetro -p- para escanear los 65535 puertos. Por defecto, Nmap solo escanea los 1000 más comunes.
### ¿Puedo usar Nmap para detectar vulnerabilidades?
Sí, mediante los scripts NSE con la opción --script=vuln puedes detectar vulnerabilidades conocidas en servicios.
## Conclusión
Nmap es sin duda la herramienta de escaneo de redes más potente y versátil que existe. Desde descubrir hosts en una red hasta detectar vulnerabilidades críticas, dominar Nmap es esencial para cualquier profesional de la ciberseguridad.
Recuerda: practica siempre en entornos controlados y nunca escanees sistemas sin autorización explícita. El conocimiento conlleva responsabilidad.
¿Te ha resultado útil esta guía? Déjame un comentario con tus trucos favoritos de Nmap o cualquier duda que tengas.






