Saltar al contenido

Próxima edición 6 de julio de 2026

Volver al blog

Tutorial Nmap: Escaneo de redes desde cero hasta el descubrimiento

Ventana de terminal mostrando resultados de escaneo Nmap con puertos abiertos y versiones de servicios destacados sobre fondo oscuro

Aprende Nmap desde cero con ejemplos prácticos de comandos. Domina el descubrimiento de hosts, escaneo de puertos, detección de servicios, fingerprinting de SO y scripts NSE en este tutorial práctico para principiantes.

Daute Delgado
13 min de lectura
  • Offense
  • Detection
  • Skills
  • Mindset
  • Confidence
Compartir este artículo:

TL;DR

Nmap es la herramienta de escaneo de redes más utilizada en ciberseguridad, empleada por más del 80% de los pentesters para reconocimiento. Este tutorial guía a los principiantes a través de cada técnica esencial de Nmap: descubrimiento de hosts con barridos de ping, escaneos TCP connect y SYN stealth, escaneo UDP, detección de versiones de servicios, fingerprinting del sistema operativo y automatización con el Nmap Scripting Engine (NSE). Cada concepto incluye comandos de terminal reales que puedes ejecutar en tu propio laboratorio.

Se suponía que la evaluación sería rutinaria. Elena, una pentester junior en su primera evaluación profesional, estaba sentada en una sala de conferencias con su portátil conectado a la red de invitados del cliente. Su líder de equipo le había informado sobre el alcance: una subred /24, 254 hosts posibles, enumeración completa de puertos. Había estudiado la metodología durante el entrenamiento, leído la documentación y aprobado su examen de certificación. Ahora necesitaba encontrar máquinas activas, averiguar qué estaban ejecutando y documentar cada servicio expuesto antes de que el equipo ofensivo pudiera comenzar la explotación.

Abrió una terminal y escribió su primer comando Nmap. En segundos, los resultados empezaron a desplazarse. Host 10.0.1.12: puertos 22, 80, 443 abiertos. Host 10.0.1.35: puertos 21, 139, 445 abiertos. Un recurso compartido SMB en un servidor sin parches. Una aplicación web ejecutando una versión obsoleta de Apache. Un puerto de base de datos expuesto a toda la subred. En 20 minutos, Elena había mapeado la superficie de ataque que guiaría toda la evaluación. La red le dijo todo lo que necesitaba saber. Solo tuvo que hacer las preguntas correctas.

Eso es lo que hace Nmap. Traduce el concepto abstracto de seguridad de red en datos concretos y procesables. Cada puerto abierto es una puerta. Cada servicio en ejecución es una conversación esperando a suceder. Nmap te ayuda a encontrarlos todos.

Qué hace realmente Nmap

Nmap, abreviatura de Network Mapper, es una herramienta de código abierto creada por Gordon Lyon en 1997. Envía paquetes especialmente diseñados a hosts objetivo y analiza las respuestas para determinar qué hosts están activos, qué puertos están abiertos, qué servicios se están ejecutando y, frecuentemente, qué sistema operativo usa el objetivo.

A diferencia de las herramientas de monitoreo pasivo como Wireshark, Nmap es un escáner activo. Genera tráfico y observa cómo reacciona el objetivo. Esto lo hace indispensable para pruebas de penetración, auditoría de redes y evaluaciones de seguridad, pero también significa que debes tener autorización antes de escanear cualquier red que no poseas.

Instala Nmap desde nmap.org o a través del gestor de paquetes de tu sistema. En Kali Linux viene preinstalado. En Ubuntu o Debian, ejecuta:

bash
sudo apt install nmap

En macOS con Homebrew:

bash
brew install nmap

Verifica la instalación:

bash
nmap --version

Deberías ver la versión 7.90 o posterior. Con Nmap instalado, estás listo para empezar a escanear.

Descubrimiento de hosts: encontrar objetivos activos

Antes de escanear puertos, necesitas saber qué hosts en la red están realmente activos. Escanear los 65.535 puertos en 254 direcciones cuando solo existen 12 máquinas desperdicia tiempo y genera ruido innecesario. El descubrimiento de hosts reduce el campo.

La técnica de descubrimiento más simple es un barrido de ping, que envía solicitudes de eco ICMP a cada dirección en un rango y anota cuáles responden:

bash
nmap -sn 192.168.1.0/24

La bandera -sn le dice a Nmap que omita el escaneo de puertos y solo verifique si los hosts están activos. La salida muestra cada host que responde con su dirección IP y, cuando está disponible, su nombre de host y dirección MAC. En una red doméstica típica, esto termina en menos de 5 segundos.

Algunos hosts bloquean ICMP. Cuando el ping falla, Nmap usa técnicas adicionales. El siguiente comando combina descubrimiento ARP (efectivo en redes locales), sondas TCP SYN al puerto 443, sondas TCP ACK al puerto 80 y solicitudes de timestamp ICMP:

bash
sudo nmap -sn -PE -PS443 -PA80 -PP 192.168.1.0/24

El prefijo sudo es importante aquí. Varios métodos de descubrimiento requieren acceso a raw sockets, que solo las cuentas root o de administrador pueden usar.

Escaneo TCP: escaneos Connect y SYN Stealth

Una vez que sabes qué hosts están activos, el escaneo de puertos revela qué servicios están escuchando conexiones. El escaneo TCP es el enfoque más común porque TCP impulsa la mayoría de los servicios en red: servidores web, SSH, bases de datos, correo electrónico y más.

Escaneo TCP Connect

El escaneo TCP connect es el método más directo. Nmap completa un handshake de tres vías completo (SYN, SYN-ACK, ACK) con cada puerto. Si la conexión tiene éxito, el puerto está abierto. Si el objetivo devuelve un paquete RST, el puerto está cerrado.

bash
nmap -sT 192.168.1.10

Este escaneo no requiere privilegios especiales porque usa el mecanismo normal de conexión del sistema operativo. La contrapartida es la visibilidad: una conexión TCP completa aparece en los logs del servidor, registros de firewall y alertas de IDS/IPS. Si la discreción importa, usa un escaneo SYN en su lugar.

Escaneo SYN Stealth

El escaneo SYN, también llamado escaneo half-open, es el predeterminado de Nmap cuando lo ejecutas con privilegios root. Envía un paquete SYN y espera una respuesta sin completar el handshake:

bash
sudo nmap -sS 192.168.1.10

Si el objetivo responde con SYN-ACK, el puerto está abierto. Nmap envía inmediatamente un RST para destruir la conexión antes de que se establezca completamente. Si el objetivo responde con RST, el puerto está cerrado. Si no hay respuesta después de varias retransmisiones, el puerto se marca como filtrado, lo que significa que un firewall o filtro de paquetes probablemente está bloqueando el tráfico.

Un escaneo SYN predeterminado verifica 1.000 de los puertos TCP más comúnmente utilizados. Para escanear los 65.535 puertos:

bash
sudo nmap -sS -p- 192.168.1.10

La bandera -p- significa «todos los puertos». También puedes especificar rangos personalizados. Escanea solo los puertos principales de web y bases de datos:

bash
sudo nmap -sS -p 21,22,80,443,3306,5432,8080,8443 192.168.1.10

Escaneo UDP: el protocolo olvidado

Muchas evaluaciones de seguridad se centran exclusivamente en TCP y pasan por alto servicios críticos que se ejecutan sobre UDP. DNS (puerto 53), SNMP (puerto 161), DHCP (puerto 67/68) y NTP (puerto 123) dependen todos de UDP. Un servicio SNMP vulnerable con community strings predeterminadas puede exponer toda la configuración de red a un atacante.

El escaneo UDP es fundamentalmente más lento que TCP porque no hay handshake. Nmap envía un paquete UDP al puerto objetivo. Si el puerto está cerrado, el objetivo devuelve un mensaje ICMP «port unreachable». Si el puerto está abierto, puede responder con datos, o puede no enviar nada en absoluto. Ese silencio convierte el escaneo UDP en un juego de espera por timeouts.

bash
sudo nmap -sU --top-ports 100 192.168.1.10

La bandera --top-ports 100 limita el escaneo a los 100 puertos UDP más comúnmente utilizados, lo que reduce drásticamente el tiempo de escaneo. Un escaneo UDP completo de 65.535 puertos puede tardar más de una hora en un solo host. Para evaluaciones exhaustivas, combina TCP y UDP:

bash
sudo nmap -sS -sU -p T:1-1000,U:53,67,68,123,161,162,500 192.168.1.10

Esto escanea los 1.000 puertos TCP principales y puertos UDP específicos de alto valor en una sola pasada.

Detección de versiones de servicios

Saber que el puerto 8080 está abierto te dice muy poco. Saber que ejecuta Apache Tomcat 9.0.43 te dice exactamente qué CVEs verificar. La detección de versiones transforma una lista de puertos abiertos en un inventario de software que puedes investigar, probar y reportar.

bash
sudo nmap -sV 192.168.1.10

La bandera -sV activa las sondas de servicio de Nmap. Para cada puerto abierto, Nmap envía una serie de solicitudes específicas del protocolo y compara las respuestas contra una base de datos de más de 11.000 firmas de servicios. La salida incluye el nombre del servicio, número de versión y a veces detalles adicionales como la distribución del SO o el hostname configurado.

Puedes controlar la intensidad de la detección. El nivel predeterminado (7 de 9) equilibra precisión con velocidad. Para máxima precisión en objetivos críticos:

bash
sudo nmap -sV --version-intensity 9 192.168.1.10

Para escaneos más rápidos durante el reconocimiento inicial, reduce la intensidad:

bash
sudo nmap -sV --version-light 192.168.1.10

La detección de versiones es donde Nmap transiciona del reconocimiento a la inteligencia procesable. Un escáner de vulnerabilidades cruza la cadena de versión exacta contra bases de datos como la National Vulnerability Database (NVD). Encontrar OpenSSH 7.4 en un servidor en 2026 inmediatamente te dice que ese sistema está años atrasado en parches de seguridad.

Detección y fingerprinting de SO

Nmap identifica sistemas operativos analizando diferencias sutiles en cómo se implementan los stacks TCP/IP. Windows, Linux, macOS y equipos de red responden a paquetes especialmente diseñados de maneras ligeramente diferentes. Estas diferencias forman una huella que Nmap compara contra su base de datos.

bash
sudo nmap -O 192.168.1.10

La detección de SO funciona mejor cuando existen al menos un puerto abierto y uno cerrado en el objetivo. Sin ambos, Nmap no puede enviar el rango completo de paquetes sonda necesarios para un fingerprinting preciso. La salida incluye la familia del SO, estimación de versión y un porcentaje de confianza.

Para un escaneo inicial completo que combine escaneo SYN, detección de versiones y detección de SO:

bash
sudo nmap -sS -sV -O 192.168.1.10

O usa la bandera -A, que habilita detección de SO, detección de versiones, escaneo de scripts y traceroute en un solo comando:

bash
sudo nmap -A 192.168.1.10

La bandera -A se llama modo «agresivo». Genera tráfico de red significativo y tarda más en completarse, así que úsala en objetivos específicos en lugar de subredes completas.

El Nmap Scripting Engine

El Nmap Scripting Engine (NSE) extiende Nmap de un escáner de puertos a una plataforma completa de reconocimiento. Escrito en Lua, NSE incluye más de 600 scripts organizados en categorías: auth para pruebas de autenticación, vuln para detección de vulnerabilidades, discovery para enumeración de redes, brute para pruebas de credenciales y más.

Ejecuta el conjunto predeterminado de scripts contra un objetivo:

bash
sudo nmap -sC 192.168.1.10

La bandera -sC es equivalente a --script=default y ejecuta scripts considerados seguros y útiles para la mayoría de las evaluaciones. Los scripts predeterminados incluyen fingerprinting de claves SSH, extracción de títulos HTTP, análisis de certificados SSL y enumeración de recursos compartidos SMB.

Apunta a categorías específicas de vulnerabilidad:

bash
sudo nmap --script vuln 192.168.1.10

Esto ejecuta todos los scripts en la categoría vuln, verificando vulnerabilidades conocidas en los servicios detectados. Ten en cuenta que algunos scripts de vulnerabilidad explotan activamente debilidades (como probar credenciales predeterminadas), así que revisa la documentación de los scripts antes de ejecutarlos contra sistemas de producción.

Ejecuta scripts individuales para verificaciones específicas. Prueba la vulnerabilidad EternalBlue de SMB (MS17-010):

bash
sudo nmap --script smb-vuln-ms17-010 -p 445 192.168.1.10

Verifica la configuración SSL/TLS en servidores web:

bash
sudo nmap --script ssl-enum-ciphers -p 443 192.168.1.10

El SANS Institute recomienda combinar NSE con detección de versiones para máxima cobertura:

bash
sudo nmap -sV -sC --script vuln 192.168.1.10

Puedes explorar la lista completa de scripts disponibles en nmap.org/nsedoc.

Formatos de salida: guardar tus resultados

Las evaluaciones profesionales producen evidencia. La salida cruda de terminal es difícil de analizar, buscar e incluir en informes. Nmap soporta múltiples formatos de salida para diferentes propósitos.

Salida normal a un archivo de texto:

bash
sudo nmap -sS -sV -oN scan_results.txt 192.168.1.10

Salida XML para integración con otras herramientas (Metasploit, escáneres de vulnerabilidades, parsers personalizados):

bash
sudo nmap -sS -sV -oX scan_results.xml 192.168.1.10

Salida grepable para análisis rápido por línea de comandos:

bash
sudo nmap -sS -sV -oG scan_results.gnmap 192.168.1.10

Guardar en los tres formatos simultáneamente:

bash
sudo nmap -sS -sV -oA scan_results 192.168.1.10

La bandera -oA crea tres archivos con el nombre base que especifiques: .nmap (normal), .xml (XML) y .gnmap (grepable). Usa siempre -oA en evaluaciones reales. Nunca sabes qué formato necesitarás después, y re-escanear el objetivo para obtener un formato de salida diferente desperdicia tiempo y genera ruido de red adicional.

Combinándolo todo: un flujo de trabajo práctico

Un flujo de trabajo estructurado de Nmap avanza a través de cuatro fases, cada una construyendo sobre los resultados anteriores.

Fase 1: Descubrimiento de hosts. Barre el rango objetivo para encontrar hosts activos.

bash
sudo nmap -sn 10.0.1.0/24 -oA discovery

Fase 2: Escaneo rápido de puertos. Escanea los hosts descubiertos buscando los puertos más comunes.

bash
sudo nmap -sS --top-ports 1000 -iL targets.txt -oA quick_scan

Fase 3: Enumeración profunda. Ejecuta escaneos completos de puertos con detección de versiones y SO en objetivos interesantes.

bash
sudo nmap -sS -sV -O -p- -iL priority_targets.txt -oA deep_scan

Fase 4: NSE dirigido. Ejecuta scripts de vulnerabilidad y enumeración contra servicios específicos.

bash
sudo nmap -sV --script vuln,auth -p 21,22,80,443,445 -iL priority_targets.txt -oA vuln_scan

Este enfoque por fases es eficiente y metódico. Evitas pasar horas en escaneos completos de puertos de hosts irrelevantes y construyes una imagen completa que documenta cada hallazgo para tu informe.

Temporización y rendimiento

Nmap proporciona plantillas de temporización de T0 (paranoico) a T5 (insano). El predeterminado es T3 (normal). En evaluaciones internas donde la discreción es menos crítica, aumenta la velocidad:

bash
sudo nmap -T4 -sS -sV -p- 192.168.1.10

En evaluaciones externas donde la evasión de IDS importa, reduce la velocidad del escaneo:

bash
sudo nmap -T2 -sS -sV 10.0.1.10

La plantilla T4 es la más comúnmente utilizada en evaluaciones profesionales. Proporciona un aumento significativo de velocidad sin saturar las redes objetivo. Evita T5 en redes de producción porque la temporización agresiva puede causar pérdida de paquetes y producir resultados inexactos.

Errores comunes que debes evitar

Los principiantes frecuentemente cometen los mismos errores al empezar con Nmap. Ejecutar escaneos de todos los puertos sin empezar con descubrimiento de hosts desperdicia tiempo y ancho de banda. Olvidar el prefijo sudo significa que Nmap recurre a escaneos TCP connect en lugar de escaneos SYN más rápidos. Escanear sin guardar la salida significa perder resultados que no puedes reproducir. Ignorar UDP deja un punto ciego que los atacantes no ignorarán. Usar temporización agresiva (T5) en redes congestionadas produce resultados poco fiables porque los timeouts generan falsos negativos.

El error más significativo es tratar Nmap como una herramienta de apuntar y hacer clic en lugar de entender qué hace cada tipo de escaneo a nivel de paquete. Cuando entiendes que un escaneo SYN funciona manipulando el handshake TCP, puedes tomar decisiones informadas sobre qué tipo de escaneo se adapta a cada situación. Cuando entiendes que el escaneo UDP depende de respuestas ICMP de puertos cerrados, comprendes por qué tarda tanto y cómo optimizarlo.

Qué practicar a continuación

Nmap es una herramienta que se aprende usándola. Monta un laboratorio casero con máquinas virtuales ejecutando diferentes sistemas operativos y servicios. Escanéalas sistemáticamente. Compara los resultados de escaneos SYN con los de escaneos connect y observa las diferencias en tus capturas de Wireshark. Ejecuta detección de versiones contra servicios conocidos y verifica la precisión. Explora los scripts NSE leyendo su documentación y probándolos contra máquinas intencionalmente vulnerables como Metasploitable 2 o DVWA.

Aprende la línea de comandos de Linux si aún no lo has hecho, porque todo el poder de Nmap viene de encadenarlo con otras herramientas de línea de comandos. Canaliza la salida grepable hacia awk para extraer campos específicos. Usa diff para comparar resultados de escaneo a lo largo del tiempo y detectar nuevos servicios. Alimenta la salida XML en frameworks como Metasploit para flujos de trabajo de explotación.

Elena terminó su primera evaluación con un informe de 47 páginas documentando cada host, cada puerto abierto, cada versión de servicio obsoleta y cada vulnerabilidad que el equipo explotó. Nmap proporcionó la base para todo ello. La herramienta no requirió meses de estudio o habilidades de programación avanzadas. Requirió una terminal, un objetivo que tenía permiso para escanear y la disposición de escribir comandos y leer la salida. La red te dice todo. Solo necesitas saber cómo escuchar.

Sobre el autor
Daute Delgado, Founder & Bootcamp Director at Unihackers
Daute Delgado

Fundador de Unihackers

Una década defendiendo aerolíneas, SOCs y organizaciones internacionales

Daute fundó Unihackers tras una década defendiendo aerolíneas, SOCs gestionados y organizaciones internacionales. Es Associate C|CISO y voz habitual sobre IA y ciberseguridad en medios internacionales. Silver Winner en los Cyber Security Excellence Awards 2021. Enseña como le habría gustado que le enseñasen a él: sin ruido, entrenando lo que los atacantes hacen de verdad y formando profesionales útiles desde el primer día.

Ver perfil
Comienza tu camino

¿Listo para iniciar tu carrera en ciberseguridad?

Únete a cientos de profesionales que han hecho la transición a la ciberseguridad con nuestro bootcamp práctico.

Comienza tu camino

¿Listo para iniciar tu carrera en ciberseguridad?

Únete a cientos de profesionales que han hecho la transición a la ciberseguridad con nuestro bootcamp práctico.

Horas
360+
Vacantes UE abiertas
300K+
Salario medio
$85K
Explorar el bootcamp