Nmap: Guía Esencial en Español
Nmap: Guía Esencial en Español
Nmap (Network Mapper) es la herramienta de auditoría de red más potente que viene preinstalada en Kali Linux. Básicamente, es el "ojos y oídos" de un hacker ético o administrador de sistemas para descubrir qué está pasando en una red.
Aquí tienes una guía rápida y esencial para dominarlo.
1. ¿Qué es Nmap y para qué sirve?
Nmap se utiliza para descubrir dispositivos en una red, identificar qué puertos están abiertos y detectar qué servicios (y versiones) están ejecutándose. Es fundamental en la fase de reconocimiento.
Conceptos clave antes de empezar:
Puerto Abierto: Una aplicación está escuchando conexiones.
Puerto Cerrado: No hay ninguna aplicación escuchando.
Filtrado: Un firewall está bloqueando el acceso y Nmap no puede determinar si está abierto o cerrado.
2. Comandos Básicos Esenciales
Para ejecutar estos comandos, abre la terminal en Kali y usa sudo (ya que Nmap necesita privilegios de administrador para enviar paquetes "crudos").
| Comando | Descripción |
nmap [IP] | Escaneo simple de los 1000 puertos más comunes. |
nmap -p 80,443 [IP] | Escanea solo puertos específicos (ej. HTTP y HTTPS). |
nmap -p- [IP] | Escanea todos los puertos (del 1 al 65535). |
nmap -sP [Red/Máscara] | Ping Sweep: Descubre qué equipos están encendidos en una red (ej. 192.168.1.0/24). |
3. Escaneos Avanzados (El "Kit del Hacker")
Si quieres obtener información detallada de tu objetivo, estos parámetros son los más usados:
Detección de Versiones (
-sV): No solo te dice que el puerto 80 está abierto, sino que te dice que usa "Apache 2.4.41".sudo nmap -sV [IP]
Detección de Sistema Operativo (
-O): Intenta adivinar si el objetivo es Windows, Linux o un dispositivo IoT.sudo nmap -O [IP]
Escaneo Agresivo (
-A): Es un "todo en uno". Activa detección de OS, versiones, scripts y traceroute.sudo nmap -A [IP]
Escaneo Silencioso (
-sS): Conocido como TCP SYN scan. Es más rápido y difícil de detectar por logs antiguos porque no llega a completar la conexión total.
4. Scripts de Nmap (NSE)
Nmap no solo escanea; tiene un motor de scripts (Nmap Scripting Engine) que puede buscar vulnerabilidades automáticamente.
Ejemplo: Para buscar vulnerabilidades conocidas en un objetivo:
sudo nmap --script vuln [IP]
Un consejo de "amigo":
Recuerda siempre usar Nmap en entornos controlados (como laboratorios de TryHackMe o HackTheBox) o en redes donde tengas permiso explícito. Escanear redes ajenas puede ser detectado por sistemas IDS/IPS y meterte en problemas legales.
Para analizar una red local de forma efectiva, lo ideal es combinar la velocidad del descubrimiento de equipos con la profundidad del análisis de servicios.
Aquí tienes el comando "definitivo" para un escaneo completo de red local y la explicación de qué hace cada parte.
El Comando Recomendado
Asumiendo que tu red local es el rango 192.168.1.0/24 (ajústalo según tu configuración), ejecuta esto en tu terminal de Kali:
sudo nmap -sV -O -p- -T4 -oN escaneo_red_local.txt 192.168.1.0/24
¿Qué está pasando "bajo el capó"?
Desglosemos los parámetros para que entiendas exactamente qué información estás recolectando:
sudo: Necesario para el escaneo de Sistema Operativo (-O) y el envío de paquetes SYN.-sV: Service Version. No solo detecta el puerto, intenta identificar qué software y qué versión específica está corriendo (ej. OpenSSH 8.2p1).-O: OS Detection. Analiza cómo responde el stack TCP/IP para adivinar si el equipo es Windows, Linux, un iPhone o una impresora.-p-: Escanea los 65,535 puertos. Por defecto, Nmap solo mira los 1,000 más comunes. Con esto te aseguras de no pasar por alto servicios ocultos en puertos inusuales.-T4: Timing Template. Establece la velocidad del escaneo.T4es rápido y agresivo, ideal para redes locales estables. Si la red es muy lenta o quieres ser más sigiloso, usaT3.-oN nombre_archivo.txt: Guarda el resultado en un formato de texto normal para que puedas consultarlo más tarde sin tener que repetir el proceso.192.168.1.0/24: El objetivo. El/24le dice a Nmap que analice desde la IP.1hasta la.254.
¿Cómo saber cuál es mi rango de red?
Si no estás seguro de qué poner al final del comando, escribe en tu terminal:
ip a o ifconfig
Busca tu interfaz (usualmente eth0 para cable o wlan0 para Wi-Fi) y mira la sección inet. Si ves algo como 192.168.0.15/24, tu rango a escanear es 192.168.0.0/24.
Un truco extra: El modo "Vistazo Rápido"
Si solo quieres saber qué dispositivos están encendidos sin entrar en detalles de puertos (mucho más rápido), usa el Ping Sweep:
sudo nmap -sn 192.168.1.0/24
Este comando te dará una lista de IPs y nombres de host activos en cuestión de segundos.
Vamos a subir de nivel. Una vez que ya sabes qué dispositivos están en tu red y qué puertos tienen abiertos, el siguiente paso lógico es ver si esos servicios son vulnerables.
Para esto usamos el NSE (Nmap Scripting Engine). Nmap viene con cientos de scripts programados en Lua que pueden detectar desde contraseñas por defecto hasta fallos críticos como EternalBlue.
El Comando de Auditoría de Vulnerabilidades
Para analizar tu red local en busca de fallos de seguridad conocidos, utiliza este comando:
sudo nmap -sV --script vuln 192.168.1.0/24
¿Qué hace este comando?
-sV: Es obligatorio. Los scripts de vulnerabilidades necesitan saber la versión exacta del servicio para compararla con sus bases de datos.--script vuln: Llama a una categoría completa de scripts diseñados para identificar vulnerabilidades (CVEs) conocidas.
Otras categorías de scripts útiles
El motor de Nmap divide los scripts en "familias". Aquí tienes las más interesantes para un entorno local:
| Categoría | Comando | Uso principal |
| Auth | --script auth | Prueba si hay servicios con configuraciones vacías o usuarios por defecto (ej. admin/admin). |
| Default | -sC | Ejecuta los scripts básicos y seguros (es el estándar en auditorías). |
| Brute | --script brute | Intenta adivinar contraseñas en servicios como SSH, FTP o bases de datos. |
| Safe | --script safe | Scripts que no deberían tirar el servicio ni causar problemas en la red. |
Un ejemplo real: Analizar un equipo específico
Si en tu escaneo anterior viste que la IP 192.168.1.50 tiene el puerto 445 (SMB) abierto (común en Windows), podrías lanzar un ataque específico de scripts para ese servicio:
sudo nmap -p 445 --script "smb-vuln-*" 192.168.1.50
Esto buscará específicamente vulnerabilidades de Samba/Windows en ese equipo.
⚠️ Advertencia de Seguridad
Los scripts de la categoría vuln o brute pueden ser intrusivos. Si los lanzas contra un servidor de producción o una base de datos sensible, existe una pequeña posibilidad de que el servicio se bloquee o se reinicie. Úsalos siempre con precaución.
Tip Pro: Los scripts de Nmap se encuentran físicamente en
/usr/share/nmap/scripts/. Puedes echarles un vistazo si tienes curiosidad por saber cómo funcionan por dentro.
Generar un reporte profesional en HTML es el paso final para cualquier auditoría. En lugar de leer miles de líneas de texto en la terminal, obtendrás un archivo interactivo que puedes abrir en tu navegador (Firefox, Chrome, etc.), con tablas ordenadas y colores que resaltan los puertos abiertos.
Para lograr esto, utilizaremos el formato XML de Nmap y una herramienta de conversión llamada xsltproc.
El Comando para Generar el Reporte
Sigue estos pasos en tu terminal de Kali:
Ejecuta el escaneo guardando el resultado en XML:
Bashsudo nmap -sV --script vuln -oX reporte.xml 192.168.1.0/24Aquí
-oXle dice a Nmap: "Guarda todo en un archivo llamado reporte.xml".Convierte el XML a un archivo HTML visual:
Bashxsltproc reporte.xml -o reporte_final.htmlAbre tu reporte en el navegador:
Bashfirefox reporte_final.html
¿Por qué es mejor este formato?
Cuando abres el archivo .html, verás una interfaz mucho más limpia que incluye:
Resumen de la red: Cuántos equipos se encontraron y cuántos están "up".
Filtros rápidos: Puedes buscar una IP específica o un puerto rápidamente.
Detalle de Vulnerabilidades: Los scripts que lanzamos antes (
--script vuln) aparecerán con secciones dedicadas, enlaces a bases de datos de CVE y niveles de severidad.Portabilidad: Puedes enviar este único archivo por correo o guardarlo como evidencia de tu auditoría.
Pro-Tip: El "Zenmap" (La versión gráfica)
Si prefieres no usar la terminal para ver los resultados, Kali suele incluir Zenmap. Es la interfaz gráfica oficial de Nmap.
Para abrirlo, simplemente escribe
sudo zenmapen la terminal.Te permite ver un "Network Inventory" y un "Topology Map", que es un dibujo visual de cómo están conectados los equipos en tu red.
Resumen de tu "Toolbox" de Nmap:
Descubrimiento:
nmap -sn(Rápido).Análisis Profundo:
nmap -sV -O -p-(Detallado).Seguridad:
nmap --script vuln(Vulnerabilidades).Reporte:
nmap -oX+xsltproc(Profesional).
Evadir un firewall o un sistema de detección de intrusos (IDS) es un "juego del gato y el ratón". Los firewalls buscan patrones de tráfico sospechosos, y nuestro objetivo con Nmap es hacer que nuestro escaneo parezca tráfico de red normal o fragmentarlo tanto que el firewall no pueda reconstruir nuestra intención.
Aquí tienes las técnicas más efectivas para pasar desapercibido:
1. Fragmentación de Paquetes (-f)
Esta es una de las técnicas más clásicas. Consiste en dividir los paquetes de Nmap en trozos más pequeños (fragmentos de 8 bytes). Al hacer esto, a algunos firewalls antiguos les cuesta reensamblar los paquetes para inspeccionarlos.
Comando:
sudo nmap -f [IP_Objetivo]Doble fragmentación: Puedes usar
-ffpara fragmentar aún más los paquetes.
2. Uso de Señuelos o "Decoys" (-D)
Esta técnica es genial porque no oculta tu escaneo, sino que lo camufla entre una multitud. Nmap envía paquetes desde tu IP real, pero también desde IPs falsas que tú elijas. El administrador del firewall verá 10 personas escaneándolo a la vez y no sabrá quién es el verdadero atacante.
Comando:
sudo nmap -D RND:10 [IP_Objetivo]Explicación:
RND:10genera 10 direcciones IP aleatorias como señuelos.
Manual:
sudo nmap -D 192.168.1.5,192.168.1.10,ME [IP_Objetivo](DondeMEes tu IP real).
3. Engaño de Puerto de Origen (--source-port)
Muchos firewalls están configurados para permitir todo el tráfico que provenga de puertos específicos, como el 53 (DNS) o el 80 (HTTP), asumiendo que es una respuesta legítima de un servidor.
Comando:
sudo nmap --source-port 53 [IP_Objetivo]Uso: Si el firewall es perezoso y confía en el tráfico que viene del puerto 53, tus paquetes de escaneo entrarán sin problemas.
4. Escaneo "Sigiloso" y Tiempos (-sS y -T)
El escaneo por defecto de Nmap es muy ruidoso. Para ser más discreto:
SYN Scan (
-sS): No completa la conexión TCP (Three-way handshake), por lo que muchos logs no registran la conexión.Tiempos lentos (
-T0o-T1): Los IDS buscan ráfagas rápidas de paquetes. Si escaneas muy lento (un puerto cada pocos minutos), pasarás bajo el radar.Comando:
sudo nmap -sS -T1 [IP_Objetivo]
5. Modificar el MTU (Maximum Transmission Unit)
Similar a la fragmentación, puedes especificar el tamaño exacto de los paquetes. El número debe ser múltiplo de 8.
Comando:
sudo nmap --mtu 24 [IP_Objetivo]
Resumen de técnicas combinadas
Si quieres intentar un escaneo que use varias de estas capas de evasión a la vez, podrías usar algo así:
sudo nmap -sS -f -D RND:5 --source-port 53 -T2 [IP_Objetivo]
Nota Crítica: En redes modernas con firewalls de "Próxima Generación" (NGFW) o sistemas como CrowdStrike o Snort actualizados, estas técnicas son mucho más difíciles de ejecutar con éxito. La evasión hoy en día requiere entender muy bien el comportamiento específico de la red que estás auditando.
Entender por qué Nmap clasifica un puerto como "filtrado" es la clave para saber qué tipo de firewall te está bloqueando. Para esto, el parámetro --reason es tu mejor amigo, ya que te muestra la "evidencia" técnica detrás de cada decisión de Nmap.
1. El Comando --reason
Añade este parámetro a cualquier escaneo para ver una columna extra en los resultados:
sudo nmap -sS --reason 192.168.1.1
¿Cómo interpretar los resultados?
En la columna REASON, verás términos técnicos que te dicen mucho sobre la configuración del firewall:
no-response: Nmap envió un paquete y no recibió nada de vuelta (típico de un firewall que simplemente "suelta" o hace DROP a tus paquetes).admin-prohibited: El firewall te respondió activamente con un mensaje ICMP de "destino inalcanzable". Es un firewall que dice educadamente "no tienes permiso".syn-ack: El puerto está abierto y respondió correctamente al inicio de la conexión.conn-refused: El puerto está cerrado porque el equipo respondió con un paquete RST (Reset), indicando que no hay nada escuchando ahí.
2. Diferencia entre un Firewall "Drop" y uno "Reject"
Con --reason puedes saber cómo está configurada la política de seguridad del objetivo:
| Comportamiento | Mensaje en Nmap | Significado para el Hacker Ético |
| DROP (Silencioso) | no-response | El firewall es sigiloso. Es más difícil de escanear porque Nmap tiene que esperar a que se agote el tiempo (timeout). |
| REJECT (Activo) | admin-prohibited | El firewall es ruidoso. Te confirma que él está bloqueando la conexión, lo cual revela su presencia de inmediato. |
3. Combinando todo: El "Escaneo de Diagnóstico"
Si sospechas que hay un firewall interfiriendo, usa este comando combinado:
sudo nmap -sS -p 80,443,3389 --reason --packet-trace 192.168.1.1
--packet-trace: Es el nivel máximo de detalle. Te muestra cada paquete que sale de tu tarjeta de red y cada paquete que entra. Es como tener un mini Wireshark dentro de Nmap.Verás exactamente si tu paquete salió y si el firewall te respondió con un error ICMP o si simplemente hubo silencio total.
Un último truco: El escaneo ACK (-sA)
Si quieres mapear las reglas de un firewall sin importar si los puertos están abiertos o cerrados, usa el ACK Scan:
sudo nmap -sA 192.168.1.1
Este escaneo no te dirá si el puerto está abierto, sino si está filtrado o no filtrado. Si el resultado es unfiltered, significa que tus paquetes pasaron a través del firewall con éxito.