Introducción al pentesting y Nmap
El reconocimiento y enumeración con Nmap es uno de los pilares fundamentales del pentesting (pruebas de penetración). Antes de intentar explotar una vulnerabilidad, necesitas recopilar información del objetivo: ¿qué puertos están abiertos? ¿qué servicios corren? ¿qué versión? ¿es Windows o Linux? Sin esa información, cualquier intento de ataque es como disparar a ciegas.
El pentesting se divide en varias fases, pero las dos primeras —reconocimiento y enumeración— son críticas. Y Nmap es la navaja suiza para realizarlas.
🎯 Laboratorio real: Este artículo está basado en escaneos reales contra Metasploitable 2 (IP
192.168.100.149), una máquina vulnerable diseñada para practicar. Si aún no tienes tu propio laboratorio, te recomiendo seguir primero mi guía: Cómo montar un laboratorio de pentesting. Allí explico paso a paso cómo tener tu máquina lista.
¿Qué es el reconocimiento en ciberseguridad?
Es el proceso de recopilar información sobre un sistema objetivo. Puede ser:
- Pasivo: sin interactuar directamente con el objetivo (ej. búsquedas en redes sociales, whois, Google dorks).
- Activo: interactuando directamente, como cuando haces un escaneo con Nmap.
La información que buscamos incluye direcciones IP, puertos abiertos, servicios disponibles, etc.
¿Qué es la enumeración?
La enumeración va un paso más allá. No se conforma con saber que hay un servicio en el puerto 80; quiere saber qué versión de Apache, qué directorios están expuestos, qué usuarios existen, si hay recursos compartidos accesibles. Es la diferencia entre saber que hay una puerta y saber qué tipo de cerradura tiene.
¿Qué es Nmap y por qué es esencial?
Nmap (Network Mapper) es una herramienta de código abierto creada por Gordon Lyon (Fyodor). Lleva más de 20 años siendo el estándar de facto para el descubrimiento de redes y auditoría de seguridad
Características principales
- Escaneo de puertos (TCP, UDP, SCTP…)
- Detección de servicios y versiones (
-sV) - Identificación de sistemas operativos (
-O) - Motor de scripts (NSE) que permite automatizar desde detección de vulnerabilidades hasta enumeración avanzada
- Escaneo rápido y eficiente, con múltiples técnicas de evasión
Casos de uso en pentesting
- Auditorías de seguridad internas y externas
- Descubrimiento de activos en una red
- Identificación de servicios con versiones obsoletas
- Pruebas de cumplimiento (PCI DSS, ISO 27001…)
- Fase de reconocimiento para pruebas de intrusión autorizadas
Instalación y primeros pasos con Nmap
Instalación en Linux, Windows y macOS
- Linux (Debian/Ubuntu):
sudo apt update && sudo apt install nmap -y- Windows/macOS: Descarga el instalador desde nmap.org y ejecútalo.
Primer escaneo y cómo interpretarlo (con un ejemplo real)
Vamos a realizar nuestro primer escaneo activo contra Metasploitable. Usaremos el escaneo SYN (-sS), que es rápido y discreto, y pediremos versión de servicios (-sV) y detección de sistema operativo (-O).
sudo nmap -sS -sV -O 192.168.100.149Resultado real (basado en el laboratorio:
Starting Nmap 7.98 ( https://nmap.org ) at 2026-04-05 20:48 +0200
Nmap scan report for 192.168.100.149
Host is up (0.0010s latency).
Not shown: 977 closed tcp ports (reset)
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
23/tcp open telnet Linux telnetd
25/tcp open smtp Postfix smtpd
53/tcp open domain ISC BIND 9.4.2
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2)
111/tcp open rpcbind 2 (RPC #100000)
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
3306/tcp open mysql MySQL 5.0.51a-3ubuntu5
5432/tcp open postgresql PostgreSQL DB 8.3.0 - 8.3.7
5900/tcp open vnc VNC (protocol 3.3)
6667/tcp open irc UnrealIRCd
MAC Address: 52:54:00:25:62:42 (QEMU virtual NIC)
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.9 - 2.6.33¿Qué nos dice esto?
- Puerto 21 (vsftpd 2.3.4): Una versión muy antigua de FTP que tiene una backdoor famosa. Si ves esto en un cliente real, saltan todas las alarmas.
- Puerto 22 (OpenSSH 4.7p1): SSH antiguo (2007), vulnerable a varias CVEs. En un sistema moderno deberías ver OpenSSH 8.x o 9.x.
- Puerto 23 (telnet): Telnet envía contraseñas en texto plano. Nadie debería usarlo hoy.
- Puerto 80 (Apache 2.2.8): Versión obsoleta de 2008. Llena de vulnerabilidades conocidas.
- Sistema operativo: Linux kernel 2.6 (anterior a 2011). Muy desactualizado.
💡 Consejo: No te asustes si al principio ves mucha información. Concéntrate en la columna
VERSION. Una versión moderna suele ser segura; una versión muy antigua es una bandera roja. Nmap te está diciendo exactamente por dónde podrías atacar (en un entorno autorizado, claro).
Tipos de escaneo en Nmap
Cada tipo de escaneo tiene sus ventajas y desventajas. Vamos a ver los tres que más usarás.
Escaneo SYN (Stealth Scan) - -sS
Es el favorito de los pentesters porque es rápido y menos detectable que otros. No completa la conexión TCP (envía SYN, recibe SYN-ACK y responde RST), por lo que muchas aplicaciones no lo registran.
sudo nmap -sS 192.168.100.149- Requiere privilegios de administrador (sudo).
Escaneo TCP Connect - -sT
Completa el triple handshake TCP. Es más detectable (los servicios lo registran como una conexión real), pero no necesita privilegios elevados.
nmap -sT 192.168.100.149- Útil cuando no tienes sudo o estás en sistemas Windows sin WinPcap/Npcap.
Escaneo UDP - -sU
El gran olvidado. Muchos servicios importantes corren sobre UDP (DNS, SNMP, DHCP, TFTP…). Es más lento y menos fiable porque UDP no confirma la recepción, pero es necesario.
sudo nmap -sU --top-ports 20 192.168.100.149Resultado real en Metasploitable:
PORT STATE SERVICE
53/udp open domain
67/udp closed dhcps
68/udp open|filtered dhcpc
69/udp open|filtered tftp
137/udp open netbios-ns
138/udp open|filtered netbios-dgmAnálisis rápido:
- Puerto 53 abierto → servidor DNS (inusual en una máquina normal).
- Puerto 69
open|filtered→ TFTP, un servicio peligroso si permite descargas sin autenticación. - Puertos 137/138 → NetBIOS, típico de entornos Windows pero aquí presente por Samba.
💡 Nota: Los estados
open|filteredsignifican que Nmap no pudo determinar si está realmente abierto o hay un firewall filtrando. En Metasploitable suelen estar abiertos.
Detección de versiones y sistemas operativos
Abrir un puerto está bien, pero saber qué corre detrás es lo que marca la diferencia.
Identificación de servicios (-sV)
Este parámetro hace que Nmap envíe sondas específicas para determinar el software y su versión.
nmap -sV --version-intensity 7 192.168.100.149 -p 21,22,80,445Resultado (ya visto antes, pero fijémonos en los detalles):
21/tcp open ftp vsftpd 2.3.4
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) DAV/2)
445/tcp open netbios-ssn Samba smbd 3.X - 4.X¿Por qué es tan importante?
vsftpd 2.3.4→ CVE-2011-2523: backdoor que da shell root.OpenSSH 4.7p1→ Vulnerable a generación débil de claves (CVE-2008-0166).Apache 2.2.8→ Múltiples vulnerabilidades, incluyendo Slowloris.Samba 3.X→ CVE-2007-2447: ejecución remota de comandos.
Sin -sV, solo verías "ftp", "ssh", "http"... y no sabrías que son críticamente vulnerables.
Detección de sistema operativo (-O)
Nmap analiza las respuestas de las sondas TCP/IP y las compara con una base de datos de firmas.
sudo nmap -O 192.168.100.149Salida real:
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.9 - 2.6.33- Saber que es un Linux con kernel 2.6 (anterior a 2010) nos confirma que el sistema está muy desactualizado y es probable que tenga cientos de vulnerabilidades.
Enumeración de servicios con Nmap
Aquí es donde Nmap se vuelve realmente poderoso gracias a su motor de scripts (NSE).
Scripts NSE (Nmap Scripting Engine)
El NSE permite ejecutar scripts de automatización para tareas como detectar vulnerabilidades, enumerar usuarios, extraer banners, etc. Hay cientos de scripts organizados por categorías: auth, default, discovery, vuln, exploit…
Un comando muy útil para empezar es el de vulnerabilidades:
nmap --script vuln 192.168.100.149- Este escaneo puede tardar varios minutos, pero la información que devuelve es oro puro.
Ejemplos prácticos de enumeración (con resultados reales)
vsftpd 2.3.4 - Backdoor (crítica)
El script ftp-vsftpd-backdoor detectó:
| ftp-vsftpd-backdoor:
| VULNERABLE:
| vsFTPd version 2.3.4 backdoor
| State: VULNERABLE (Exploitable)
| IDs: CVE:CVE-2011-2523
| Exploit results:
| Shell command: id
| Results: uid=0(root) gid=0(root)- Traducción: Este FTP tiene una puerta trasera. Un atacante puede obtener una shell como root sin contraseña. Así de grave.
UnrealIRCd - Backdoor
|_irc-unrealircd-backdoor: Looks like trojaned version of unrealircd.- El IRC (puerto 6667) también tiene una backdoor conocida (CVE-2010-2075). Permite ejecutar comandos del sistema.
Apache Slowloris (DoS)
| http-slowloris-check:
| VULNERABLE:
| Slowloris DOS attack
| State: LIKELY VULNERABLE- El servidor web puede ser tumbado con un ataque de denegación de servicio manteniendo muchas conexiones parciales.
RMI Remote Code Execution
| rmi-vuln-classloader:
| VULNERABLE:
| RMI registry default configuration remote code execution- Java RMI mal configurado permite ejecutar código arbitrario.
Enumeración de recursos compartidos SMB
nmap --script smb-os-discovery,smb-enum-shares -p 445 192.168.100.149Resultado real:
| smb-os-discovery:
| OS: Unix (Samba 3.0.20-Debian)
| Computer name: metasploitable
| smb-enum-shares:
| \\192.168.100.149\IPC$:
| Anonymous access: READ/WRITE
| \\192.168.100.149\tmp:
| Comment: oh noes!
| Anonymous access: READ/WRITE- ¿Qué significa? Hay un recurso compartido llamado
tmpcon acceso anónimo de lectura y escritura. Cualquiera en la red puede subir o bajar archivos. Es una invitación a meter un payload malicioso.
Enumeración HTTP: descubriendo paneles y archivos sensibles
nmap --script http-enum,http-title -p 80 192.168.100.149Resultado real:
| http-enum:
| /tikiwiki/: Tikiwiki
| /test/: Test page
| /phpinfo.php: Possible information file
| /phpMyAdmin/: phpMyAdmin
| /doc/: Potentially interesting directory w/ listing
|_ /index/: Potentially interesting folder
|_http-title: Metasploitable2 - LinuxHallazgos importantes:
phpinfo.php→ Expone toda la configuración de PHP (versión, rutas, variables de entorno).phpMyAdmin→ Interfaz de administración de MySQL, a menudo con contraseñas débiles o por defecto.doc/yicons/→ Directorios con listado activado; pueden contener archivos sensibles.
Optimizando el reconocimiento: velocidad vs. sigilo
No todos los escenarios requieren la misma velocidad. A veces necesitas ser sigiloso para no activar alarmas; otras veces quieres barrer una red rápidamente.
Plantillas de temporización (-T0 a -T5)
| Plantilla | Uso recomendado |
|---|---|
-T0 (paranoid) | Evasión extrema, muy lento (para IDS muy sensibles) |
-T1 (sneaky) | Sigiloso, útil en entornos monitoreados |
-T2 (polite) | Para no saturar redes lentas |
-T3 (normal) | Valor por defecto, equilibrio |
-T4 (aggressive) | Escaneos locales o redes rápidas (puede perder puertos) |
-T5 (insane) | Muy rápido, poco fiable, mucho ruido |
Ejemplo para no levantar sospechas (modo sigiloso):
sudo nmap -sS -T2 --max-retries 1 --min-rate 100 192.168.100.149Técnicas de evasión básicas
Además de fragmentar paquetes (-f), puedes probar:
# Escaneo con IPs señuelo (decoy)
sudo nmap -sS -D 10.0.0.1,10.0.0.2,ME 192.168.100.149
# Modificar puerto de origen (simular tráfico DNS)
sudo nmap -sS --source-port 53 192.168.100.149
# MTU pequeño (evita detección por tamaño de paquete)
sudo nmap -sS --mtu 24 192.168.100.149⚠️ Recuerda: Estas técnicas solo deben usarse en entornos autorizados o laboratorios propios. Usarlas contra sistemas ajenos es ilegal.
Buenas prácticas, ética y errores comunes
Buenas prácticas para escanear como un profesional
- Empieza siempre con un escaneo rápido (
-p- --min-rate 5000) para descubrir puertos abiertos. - Luego profundiza con
-sV -sC -Oen esos puertos. - No olvides UDP (
-sU --top-ports 20). - Usa scripts específicos para servicios interesantes (HTTP, SMB, FTP, etc.).
- Guarda los resultados con
-oA nombre_archivopara futuros análisis.
Ética y legalidad (esto es serio)
- Nunca escanees sistemas sin permiso explícito por escrito.
- Cumple las leyes locales (en muchos países, escanear sin autorización es delito).
- Usa Nmap solo con fines educativos o en trabajos autorizados (pentesting, auditorías internas).
- En tu laboratorio (como Metasploitable), eres libre de practicar todo lo que quieras.
Errores comunes al usar Nmap (y cómo evitarlos)
- No usar privilegios de root → El escaneo SYN (
-sS) no funcionará correctamente. Usasudo. - Ignorar puertos UDP → Te perderás servicios críticos como DNS, SNMP o TFTP.
- Quedarte solo con el estado
open→ Sin-sVno sabrás las versiones vulnerables. - No ejecutar scripts de vulnerabilidad → El script
vulnencontró 6+ vulnerabilidades críticas en Metasploitable. Siempre úsalo (en entornos autorizados). - Olvidar
-Pn→ Si el objetivo bloquea el ping, Nmap asumirá que está caído. Añade-Pnpara forzar el escaneo. - Escaneos UDP sin límite de tiempo → Usa
--host-timeouto--max-retriespara que no se eternicen.
Caso práctico completo: escaneando Metasploitable paso a paso
Ahora que ya conoces las técnicas, vamos a aplicarlas todas en orden contra nuestra máquina vulnerable. Sigue estos pasos en tu laboratorio y compara resultados.
Paso 1: Escaneo rápido de puertos abiertos (descubrimiento)
sudo nmap -sS -p- --min-rate 5000 192.168.100.149- Resultado: 23 puertos TCP abiertos en menos de un minuto.
Paso 2: Escaneo profundo de versiones y SO en esos puertos
sudo nmap -sS -sV -O -p 21,22,23,25,80,139,445,3306,5432,5900,6667 192.168.100.149- Obtenemos: vsftpd 2.3.4, OpenSSH 4.7p1, Apache 2.2.8, Samba 3.x, etc.
Paso 3: Escaneo de vulnerabilidades (NSE vuln)
nmap --script vuln 192.168.100.149- Tiempo: ~5-10 minutos. Hallazgos: Backdoor en vsftpd, backdoor en UnrealIRCd, RCE en RMI, Slowloris, etc.
Paso 4: Enumeración específica SMB
nmap --script smb-enum-shares,smb-os-discovery -p 445 192.168.100.149- Resultado: Recurso
tmpcon acceso anónimo de lectura/escritura.
Paso 5: Enumeración HTTP
nmap --script http-enum,http-title,http-php-version -p 80 192.168.100.149- Resultado: phpinfo.php, phpMyAdmin, directorios listables.
Paso 6: Escaneo UDP (top 20 puertos)
sudo nmap -sU --top-ports 20 192.168.100.149- Resultado: DNS, NetBIOS, TFTP abiertos.
Paso 7: Generar reporte completo
sudo nmap -sS -sV -O --script vuln -oA informe_metasploitable 192.168.100.149- Esto crea tres archivos:
.nmap(texto legible),.xml(para otras herramientas),.gnmap(para grep).
Resumen de hallazgos críticos en Metasploitable
| Servicio | Puerto | Vulnerabilidad | Criticidad |
|---|---|---|---|
| vsftpd 2.3.4 | 21 | Backdoor (shell root) | 🔴 Crítica |
| UnrealIRCd | 6667 | Backdoor ejecución comandos | 🔴 Crítica |
| Samba 3.0.20 | 445 | RCE (CVE-2007-2447) | 🔴 Crítica |
| Java RMI | 1099 | ClassLoader RCE | 🟠 Alta |
| Apache 2.2.8 | 80 | Slowloris, múltiples CVEs | 🟠 Alta |
| OpenSSH 4.7p1 | 22 | Claves débiles (Debian) | 🟡 Media |
🧠 Moraleja: Con solo Nmap y sus scripts, hemos identificado al menos 4 formas de obtener acceso root a Metasploitable. Esto demuestra por qué el reconocimiento y enumeración son tan importantes en pentesting.
Herramientas complementarias
Nmap es genial, pero no está solo. Combínalo con estas herramientas para un flujo de trabajo profesional:
- Wireshark – Analiza el tráfico que genera Nmap y entiende qué está pasando a nivel de paquetes.
- Metasploit – Importa los resultados XML de Nmap (
db_import) y pasa directamente a la explotación. - Nikto – Escáner específico para servidores web (complementa a
http-enum). - Burp Suite – Para auditoría manual de aplicaciones web.
- Searchsploit – Busca exploits para las versiones que encontraste (
searchsploit vsftpd 2.3.4).
Preguntas frecuentes (FAQs)
- ¿Nmap es legal?
Sí, siempre que se use en sistemas con permiso explícito. Escanear sin autorización puede ser delito. - ¿Qué es el escaneo SYN?
Un escaneo que no completa la conexión TCP, lo que lo hace rápido y difícil de detectar. Requieresudo. - ¿Para qué sirve
-sV?
Para detectar las versiones exactas de los servicios que corren en los puertos abiertos. - ¿Qué es NSE?
El motor de scripts de Nmap. Permite automatizar desde detección de vulnerabilidades hasta enumeración de usuarios. - ¿Nmap puede detectar vulnerabilidades?
Sí, con scripts como--script vulno específicos comoftp-vsftpd-backdoor. - ¿Es necesario ser root para usar Nmap?
Para escaneos SYN (-sS), detección de SO (-O) y algunos scripts, sí. Para escaneos TCP Connect (-sT) no. - ¿Puedo escanear toda Internet con Nmap?
Técnicamente sí, pero es ilegal sin autorización. Además, hay herramientas específicas comomasscanozmappara eso. Limítate a tus redes o laboratorios controlados. - ¿Cuánto tarda un escaneo normal contra Metasploitable?
En mi laboratorio (red local): escaneo SYN de todos los puertos (~1 min),-sV -O(~2-3 min),--script vuln(~5-10 min). Si tarda más, revisa tu red o reduce el número de puertos.
Conclusión
El reconocimiento y enumeración con Nmap es una habilidad esencial para cualquier profesional de ciberseguridad. En esta guía, usando tu propio laboratorio con Metasploitable, hemos visto cómo:
- Detectar puertos abiertos con escaneos SYN y UDP.
- Identificar versiones de servicios obsoletos con
-sV. - Enumerar recursos compartidos inseguros (SMB).
- Descubrir vulnerabilidades críticas con scripts NSE (
--script vuln). - Interpretar los resultados para planificar una fase de explotación.
Nmap no es solo una herramienta, es una puerta de entrada al mundo del hacking ético. Cuanto más practiques, más preciso y eficiente serás.
Ahora es tu turno: Abre tu terminal, inicia tu máquina Metasploitable (sigue mi guía de laboratorio si no lo tienes) y reproduce cada uno de los comandos que ejecuté. Compara tus resultados con los míos. ¿Encuentras algún servicio adicional? ¿Alguna vulnerabilidad distinta? El reconocimiento es un arte que se perfecciona con horas de escaneo y análisis.
Próximo artículo de la serie: "Explotación de vulnerabilidades con Metasploit: convirtiendo los hallazgos de Nmap en acceso al sistema" (si te interesa, déjamelo en lo comentarios, o si tienes dudas sobre otro tema también).
Comentarios (0)
- No hay comentarios aún. ¡Sé el primero en comentar!
Debes iniciar sesión para dejar un comentario.