Nmap - Escaneo de Red
Nmap - Escaneo de Red
1. Introduccion
Nmap (Network Mapper) es la herramienta esencial y mas utilizada para el escaneo de puertos y enumeracion de red en fases de reconocimiento. Es compatible con multiples tecnicas de escaneo que permiten adaptar la exploracion al entorno y objetivos especificos.
Esta guia cubre las tecnicas de escaneo mas relevantes, parametros de uso comun y ejemplos practicos para diferentes escenarios de pentesting.
2. Sintaxis Basica
2.1. Forma General
nmap [OPCIONES] <-objetivo> <target>
2.2. Especificacion de Objetivos
# Host unico
nmap 192.168.1.1
# Rango CIDR
nmap 192.168.1.0/24
# Varios hosts (separados por comas)
nmap 192.168.1.1,2,5
# Lista desde archivo
nmap -iL hosts.txt
# Exclusion de hosts
nmap 192.168.1.0/24 --exclude 192.168.1.1
2.3. Rangos Numericos
# Rango de puertos
nmap -p 22-80 192.168.1.1
# Puertos especificos
nmap -p 22,80,443 192.168.1.1
# Todos los puertos
nmap -p- 192.168.1.1
# Primer y ultimo puerto
nmap -p 1-1000 192.168.1.1
3. Tecnicas de Escaneo
3.1. Escaneo SYN (-sS)
El escaneo SYN (-sS) enviar paquetes SYN sin completar el three-way handshake. Es rapido y sigiloso ya que no establece una conexion completa.
Requisito: Requiere privilegios de root.
nmap -sS 192.168.1.1
| Parametro | Descripcion |
|---|---|
-sS |
Envio de paquetes SYN sin completar handshake |
Ventajas:
- Rapido (no espera respuesta completa)
- Menor probabilidad de ser detectado por IDS/IPS simples
- No deja conexiones abiertas en el objetivo
Desventajas:
- Requiere root
- Puede ser detectado por firewalls avanzados
3.2. Escaneo TCP Connect (-sT)
El escaneo TCP Connect (-sT) completa el three-way handshake mediante la llamada al sistema connect(). Es mas lento pero mas Compatible.
nmap -sT 192.168.1.1
| Parametro | Descripcion |
|---|---|
-sT |
Completa el handshake TCP |
Ventajas:
- No requiere root
- Compatible con todos los sistemas
- Funciona mejor con firewalls que filtran paquetes SYN
Desventajas:
- Mas lento que SYN
- Mas facil de detectar y registrar
3.3. Escaneo UDP (-sU)
El escaneo UDP (-sU) es esencial para servicios como DNS (53), SNMP (161) y CoAP (5683). Es naturalmente mas lento porque UDP no tiene mecanismo de confirmacion.
nmap -sU -p 53,161,123 192.168.1.1
| Parametro | Descripcion |
|---|---|
-sU |
Escaneo UDP |
-p |
Puertos especificos |
Caracteristicas:
- Puerto abierto: Si no hay respuesta ICMP tipo 3 (unreachable), puede estar abierto
- Puerto cerrado: Respuesta ICMP tipo 3 codigo 3 (port unreachable)
- Muy lento sin parametros adicionales
Optimizacion:
# Con timeout reducido
nmap -sU --max-retries 2 --max-rtt-timeout 1000 192.168.1.1
# Solo top puertos UDP
nmap -sU --top-ports 100 192.168.1.1
3.4. Escaneo de Servicios (-sV)
El escaneo deVersion (-sV) detecta servicios y sus versiones enviando paquetes probes y analizando respuestas.
nmap -sV 192.168.1.1
| Parametro | Descripcion |
|---|---|
-sV |
Detectar versiones de servicios |
--version-intensity |
Intensidad del probe (1-9, defecto 7) |
--version-light |
Equivalent a –version-intensity 2 |
--version-all |
Equivalent a –version-intensity 9 |
Intensidad:
# Version ligera (rapida)
nmap -sV --version-light 192.168.1.1
# Version completa (lenta)
nmap -sV --version-all 192.168.1.1
# Intensidad personalizada (1-9)
nmap -sV --version-intensity 5 192.168.1.1
Con deteccion de SO:
nmap -sV -O 192.168.1.1
4. Deteccion de Sistema Operativo
4.1. Deteccion de OS (-O)
nmap -O 192.168.1.1
| Parametro | Descripcion |
|---|---|
-O |
Deteccion de SO |
-O --osscan-guess |
Deteccion agresiva (adivina SO) |
--osscan-limit |
Limitar deteccion a Objetivos probablemente validos |
Deteccion agresiva:
# Adivina el SO aunque no tenga certeza
nmap -O --osscan-guess 192.168.1.1
5. Scripts NSE (Nmap Scripting Engine)
Los scripts NSE permiten automatizar tareas de enumeracion y deteccion de vulnerabilidades.
5.1. Ejecucion de Scripts
# Scripts por defecto (-sC)
nmap -sC 192.168.1.1
# Scripts especificos
nmap --script <script> 192.168.1.1
# Multiple scripts
nmap --script "http-*,smb-*" 192.168.1.1
# Por categoria
nmap --script vuln 192.168.1.1
nmap --script discovery 192.168.1.1
nmap --script brute 192.168.1.1
5.2. Categorias de Scripts
| Categoria | Descripcion |
|---|---|
auth |
Scripts de autenticacion |
broadcast |
Scripts de broadcasting |
brute |
Scripts para fuerza bruta |
default |
Scripts por defecto |
discovery |
Servicios de enumeracion |
dos |
Scripts de Denial of Service |
exploit |
Scripts de explotacion |
external |
Scripts externos |
fuzzer |
Scripts de fuzzing |
intrusive |
Scripts intrusivos |
malware |
Deteccion de malware |
safe |
Scripts seguros |
version |
Deteccion de versiones |
vuln |
Deteccion de vulnerabilidades |
5.3. Scripts utiles
# Deteccion de vulnerabilidades
nmap --script vuln 192.168.1.1
# Enumeracion HTTP
nmap --script http-title 192.168.1.1
nmap --script http-headers 192.168.1.1
nmap --script http-enum 192.168.1.1
# Enumeracion SMB
nmap --script smb-enum-shares 192.168.1.1
nmap --script smb-enum-users 192.168.1.1
# Enumeracion SSH
nmap --script ssh-auth-methods 192.168.1.1
# SSL/TLS
nmap --script ssl-enum-ciphers -p 443 192.168.1.1
# DNS
nmap --script dns-nsec-enum --script-args dns-nsec-enum.domains=example.com 192.168.1.1
6. Optimizacion y Rendimiento
6.1. Parametros de Timing
-T <0-5>
| Timing | Nombre | Descripcion |
|---|---|---|
| 0 | Paranoid | Evita deteccion |
| 1 | Sneaky | Lento pero sigiloso |
| 2 | Polite | Normal, usa menos recursos |
| 3 | Normal | Equilibrado |
| 4 | Aggressive | Rapido |
| 5 | Insane | Muy rapido, puede perder precision |
# Escaneo sigiloso
nmap -sS -T2 192.168.1.1
# Escaneo rapido (top 100 puertos)
nmap -sS -T4 --top-ports 100 192.168.1.1
6.2. Parametros de Rendimiento
| Parametro | Descripcion | Ejemplo |
|---|---|---|
--max-retries |
Reintentos por puerto (defecto: 3) | --max-retries 2 |
--max-rtt-timeout |
Timeout maximo RTT (defecto: 10000ms) | --max-rtt-timeout 2000 |
--min-rate |
Paquetes minimos por segundo | --min-rate 1000 |
--host-timeout |
Timeout por host | --host-timeout 30m |
--scan-delay |
Delay entre paquetes | --scan-delay 1s |
# Timeout reducido
nmap -sS --max-retries 2 --max-rtt-timeout 2000 192.168.1.1
# Rate limitado
nmap -sS --min-rate 100 192.168.1.1
7. Descubrimiento de Hosts
7.1. Opciones de Descubrimiento
| Parametro | Descripcion |
|---|---|
-sn |
Solo ping (sin escaneo de puertos) |
-Pn |
Sin ping (omitir descubrimiento de hosts) |
-PS |
TCP SYN ping |
-PA |
TCP ACK ping |
-PU |
UDP ping |
-PE |
ICMP echo request |
-PR |
ARP ping (red local) |
# Solo descubrimiento (no puertos)
nmap -sn 192.168.1.0/24
# Sin ping (saltar descubrimiento)
nmap -Pn 192.168.1.1
# ARP ping (red local)
nmap -PR 192.168.1.0/24
8. Puertos Comunes
Enumeracion de puertos frecuentes y sus servicios asociados.
| Puerto | Servicio | Descripcion |
|---|---|---|
| 21 | FTP | Transferencia de archivos |
| 22 | SSH | Shell seguro |
| 23 | Telnet | Shell remoto (sin cifrar) |
| 25 | SMTP | Correo saliente |
| 53 | DNS | Sistema de nombres |
| 80 | HTTP | Servidor web |
| 110 | POP3 | Correo entrante |
| 143 | IMAP | Correo entrante |
| 443 | HTTPS | Servidor web seguro |
| 445 | SMB | Comparticion de archivos |
| 3306 | MySQL | Base de datos MySQL |
| 3389 | RDP | Escritorio remoto |
| 5432 | PostgreSQL | Base de datos PostgreSQL |
| 5900 | VNC | Escritorio remoto |
| 6379 | Redis | Base de datos Redis |
| 8080 | HTTP-Alt | Servidor web alternativo |
9. Formatos de Salida
9.1. Opciones de Salida
| Parametro | Formato | Descripcion |
|---|---|---|
-oN |
Normal | Salida estandar legible |
-oX |
XML | Formato XML |
-oG |
Grepable | Formato grepeable |
-oS |
ScRipT | Formato “sCrIpT KIdd3” |
-oA |
All | Todos los formatos |
# Normal
nmap -oN scan.txt 192.168.1.1
# XML
nmap -oX scan.xml 192.168.1.1
# Grepable
nmap -oG scan.txt 192.168.1.1
# Todos los formatos
nmap -oA scan 192.168.1.1
10. Ejemplos Practicos
10.1. Escaneo Basico
nmap 192.168.1.1
10.2. Escaneo Completo
nmap -sS -sV -sC -O -p- -oA scan_completo 192.168.1.1
Descripcion:
-sS: Escaneo SYN-sV: Deteccion de versiones-sC: Scripts por defecto-O: Deteccion de SO-p-: Todos los puertos-oA: Todos los formatos de salida
10.3. Escaneo Sigiloso
nmap -sS -T2 -p- -f -oN stealth.txt 192.168.1.1
Descripcion:
-sS: Escaneo SYN-T2: Timing silencioso-p-: Todos los puertos-f: Fragmentacion de paquetes
10.4. Descubrimiento de Red Local
nmap -PR -sn 192.168.1.0/24 -oN redes.txt
Descripcion:
-PR: ARP ping-sn: Solo descubrimiento-oN: Salida normal
10.5. Escaneo UDP
nmap -sU --max-retries 2 -p 53,67,68,123,161,162,500 192.168.1.1
10.6. Escaneo con Scripts de Vulnerabilidad
nmap -sV --script vuln -p- 192.168.1.1
11. Cheat Sheet
Comandos Rapidos
# Basico
nmap <target>
# Completo
nmap -sS -sV -sC -O -p- <target>
# UDP
nmap -sU <target>
# Scripts especificos
nmap --script <script> <target>
# Escaneo sigiloso
nmap -sS -T2 -f <target>
# Red local
nmap -PR -sn <network>/<cidr>
12. Feedback y Recomendaciones
12.1. Lo Que Esta Bien
- Estructura clara con secciones bien definidas
- Incluye tecnicas principales (SYN, TCP, UDP)
- Tiene guia de scripts NSE
- Incluye ejemplos practicos
12.2. Lo Que Falta
- Explicacion detallada de cada parametro
- Ejemplos de escaneo para escenarios especificos (CTF, HTB, OSCP)
- Seccion de evasion de firewalls/IDS
- Tabla comparativa de tecnicas
- Casos de uso para cada tipo de escaneo
12.3. Mejoras Recomendadas
- Agregar tecnicas de fragmentacion (-f)
- Agregar decoy scanning (-D)
- Agregar source spoofing (-S)
- Agregar configuracion de proxies
- Incluir ejemplos de output esperado
- Agregar guia de interpretacion de resultados
12.4. Referencias
- Pagina oficial: https://nmap.org/
- Documentacion NSE: https://nmap.org/nsedoc/
- GTFOBins: https://gtfobins.github.io/