NMAP es una herramienta integrada en Kali Linux que nos va a ayudar a identificar servicios en red como número de puertos, estado de los mismos, el tipo de máquina que está conectado a la red, o las posibles vulnerabilidades en cuanto a parches de seguridad, entre otras funciones que vamos a ir viendo en la práctica.
Mirpas.como no se hace responsable del mal uso que realices con NMAP.
Te dejo la guia oficial de NMAP para que investigues por tu cuenta más sobre NMAP.
Primeros pasos con NMAP.
Como es una herramienta de red, lo primero que necesitas conocer es las ips que van a estar en tu red. Puede que tu red sea privada y no tengas conocimientos de cuales son las IPs de los equipos conectados. Eso no es problema, porque NMAP te permite escanear cualquier ancho de banda o rangos de red.
El protocolo IP realiza dos funciones en una máquina:
● Redireccionamiento.
● Enrrutamiento.
Con el primero nombra al dispositivo dentro de la red asignandole una dirección IP. Esta dirección identifica a la interfaz de forma única como si fuese un DNI. Con el enrrutamiento, indica el mejor camino de un datagrama para llegar de forma óptima desde el origen a su destino.
Así que para realizar un escaneo de red, lo único que debemos de saber es la dirección IP del equipo de red. Vamos a ponernos en situación. Tengo en mi red una máquina con W10 y otra máquina con Kali linux (aunque Kali linux está virtualizado desde Virtual Box, es como si fuese una máquina más de mi red).

Estructura de mi red local.
Lo que quiero hacer primero es escanear toda mi red local. Primero tendré que saber cual es la IP del equipo que va a realizar el escaneo. Eso se hace para que sepamos a qué rango de red estamos accediendo.
Una direccion IPv4 tiene una longitud de 32 bits que se dividen en dos partes:
● Los bits que identifican la RED.
● Los bits que identifican al HOST.
El identificador de red reconoce un subconjunto de host agrupados en una subred dentro de una red TCP/IP más grande.
El identificador de host identifica al host dentro de la subred.
Los 32 bits se representan como 4 octetos separados por un punto (.); y normalmente aparecen representados en formato decimal tipo 192.168.1.1
Desde Kali linux para conocer tu ip, basta con escribir:

Sacar Ip de tu máquina.
Con el comando ip a (o ip address), el sistema te mostrará todas las interfaces de red disponibles en tu máquina. Observa que la primera interfaz, lo (loopback), corresponde a mi localhost (127.0.0.1). La interfaz que nos interesa para interactuar con el entorno es eth0. Como se ve en la imagen, me está asignando la dirección IP privada 192.168.1.108.
El /24 que aparece al final representa la máscara de red (notación CIDR). Esto nos indica que nuestra red local abarca el rango desde 192.168.1.0 hasta 192.168.1.255. Por lo tanto, si quisiéramos lanzar un escaneo a toda nuestra red local, apuntaríamos a todo ese segmento (por ejemplo, usando 192.168.1.0/24 en herramientas como Nmap).

Escaneo con NMAP a mi red local.
Este escaneo básico te devuelve los equipos conectados a tu red local y también, qué puertos tiene abiertos. Con la opción de -O estamos indicando a NMAP que pregunte a la máquina que realiza el escaneo sobre su nombre del dispositivo y su sistema operativo. Además, te va a devolver los puertos que tiene abiertos dicha máquina:

Escaneo de máquina Windows 10 y sus puertos.
Fijate que en el escaneo de la máquina te indica el nombre del dispositivo, el tipo de sistema operativo que tiene e incluso la versión instalada del mismo, como es la 1709 - 22H2. Conocer el estado de sus puertos y servicios corriendo nos puede dar información extra sobre los posibles fallos de seguridad a los que está expuesta dicha máquina.
Escaneo sobre la máquina objetivo.
Vamos a centrarnos en la máquina W10 que he encontrado en mi red. como NMAP nos ha dado su IP, podemos establecer el siguiente script:
Es comando escanea todos los puertos (65535) de la IP con W10, 192.168.1.17 de forma sigilosa (SYN), asumiendo que está encendido sin comprobarlo con ping, sin perder tiempo resolviendo su nombre, mostrando solo los puertos que respondan, indicándo qué programas y versiones corren en ellos, y ejecutando los scripts básicos de reconocimiento integrados en NMAP y mostrando todo en la pantalla según lo vaya encontrando.

Conceptos básicos. Para ocultar pinchar en el botón +/-.
🔍 El Escaneo de Puertos
-p-: Le dice a Nmap que escanee todos los puertos posibles. Por defecto, Nmap solo escanea los 1,000 puertos más comunes. Con este flag fuerzas el escaneo desde el puerto 1 hasta el 65535. No se le va a escapar ningún servicio oculto.
--open: Le dice a Nmap que solo muestre los puertos que estén abiertos. Ignorará por completo los puertos cerrados o filtrados en el reporte final, limpiando el ruido para que vayas directo al grano.
Detección y Scripts (La "Inteligencia")
-sV: Activación de la detección de versiones. Nmap no solo te dirá "el puerto 80 está abierto", sino que enviará sondas para averiguar qué servicio específico está corriendo ahí y su versión exacta (por ejemplo: Apache httpd 2.4.41). Esto es crucial para buscar exploits conocidos más adelante.
-sC (o --script=default): Ejecuta el conjunto de scripts por defecto del motor NSE (Nmap Scripting Engine). Estos scripts realizan tareas de reconocimiento automático muy útiles, como extraer títulos de páginas web, llaves SSH públicas o comprobar vulnerabilidades básicas y muy conocidas.
🏎️ Tipo de Escaneo y Rendimiento.
-sS: Escaneo de tipo SYN Stealth Scan (o escaneo semi-abierto). Es el rey de los escaneos en Nmap. Envía un paquete SYN (intención de conexión) y, si el objetivo responde con un SYN/ACK (puerto abierto), Nmap le responde inmediatamente con un RST (reiniciar) para romper la conexión antes de que se complete el saludo de tres vías (3-way handshake). Esto evita que muchas aplicaciones de la víctima registren un intento de conexión completa, haciéndolo más "sigiloso".
Sigilo y Optimización de Tiempos.
-n: No realizar resolución DNS. Le prohíbe a Nmap intentar convertir la IP en un nombre de dominio (p. ej. de 192.168.1.17 a servidor local). Al saltarse este paso, el escaneo gana muchísima velocidad, especialmente en redes locales.
-Pn: No realizar descubrimiento de host (No Ping). Por defecto, Nmap intenta hacer un ping previo para ver si el equipo está encendido. Si el objetivo tiene un firewall que bloquea los pings (ICMP), Nmap pensará que está apagado y no lo escaneará. Con -Pn le dices: "Asume que el objetivo está vivo y escanéalo sí o sí".
📢 Reporte y Nivel de Detalle.
-vvv: Nivel máximo de Verbosidad (Triple Verbose). Le ordena a Nmap que te vaya mostrando en pantalla todo lo que va descubriendo en tiempo real. En lugar de esperar minutos en silencio absoluto hasta que termine todo el análisis, verás aparecer los puertos abiertos en el mismísimo segundo en que Nmap los detecte.
Comandos de NMAP.
Guía de Comandos NMAP para Ciberseguridad
Esta tabla interactiva recopila los comandos esenciales de Nmap clasificados por su caso de uso, desde el descubrimiento básico hasta técnicas avanzadas de evasión de firewalls.
| Categoría | Comando / Atributo | Explicación Técnica | Ejemplo de Uso |
|---|---|---|---|
| Descubrimiento y Rutinas Básicas | nmap <target> |
Escaneo básico del objetivo sin flags. Nmap realiza un escaneo SYN por defecto sobre los 1,000 puertos más comunes. | nmap 192.168.1.17 |
-sn (o -sP) |
Escaneo de ping (Ping Scan). Determina qué hosts de una red o subred están encendidos (vivos) sin escanear sus puertos. | nmap -sn 192.168.1.0/24 |
|
-sL |
Listar objetivos (List Scan). Muestra de forma simple los objetivos a escanear de manera teórica sin enviar ningún paquete al destino. | nmap -sL 192.168.1.0/24 |
|
-p / -p- |
Selección de puertos. El atributo -p define puertos específicos o rangos, mientras que -p- escanea el total de los 65,535 puertos. |
nmap -p 22,80,443 target |
|
| Inteligencia y Análisis Avanzado | -sV |
Detección de versiones. Interroga a los puertos abiertos para identificar el software exacto y la versión del servicio que se ejecuta. | nmap -sV 192.168.1.17 |
-O |
Detección del Sistema Operativo. Utiliza la huella TCP/IP para deducir qué sistema operativo ejecuta el objetivo. | nmap -O 192.168.1.17 |
|
-sS / -sT / -sU |
Tipos de escaneo: -sS lanza un escaneo SYN sigiloso (semi-abierto); -sT realiza una conexión TCP completa; -sU analiza puertos UDP. |
nmap -sS target |
|
-A |
Escaneo agresivo. Activa de forma combinada la detección de OS, detección de versiones de servicios, scripts por defecto (NSE) y traceroute. | nmap -A 192.168.1.17 |
|
| Evasión de Firewalls y Sigilo | -Pn |
Desactiva el descubrimiento por Ping. Evita que Nmap descarte un host si este bloquea el tráfico ICMP, forzando el escaneo completo. | nmap -Pn 192.168.1.17 |
-f / --mtu |
Fragmentación de paquetes. Divide los encabezados de los paquetes TCP en fragmentos más pequeños para dificultar la inspección de firmas de firewalls e IDS. | nmap -f --mtu 16 -p 80 target |
|
-g (o --source-port) |
Fijar puerto de origen. Engaña al firewall transmitiendo desde puertos comunes (como el 53 de DNS o el 80 de HTTP) en los que los firewalls suelen confiar de forma nativa. | nmap -g 53 -p 443 target |
|
--spoof-mac |
Suplantación (spoofing) de dirección MAC. Permite falsificar la identidad física de la tarjeta de red para saltarse el filtrado MAC del firewall o punto de acceso. | nmap -sT -PO --spoof-mac 00:11:22:33:44:55 target |
|
-T0 a -T5 / --scan-delay |
Plantillas de temporizado. -T0 (Paranoid) es extremadamente lento para evadir IDS basándose en retrasos de tiempo, mientras que -T4 es rápido y óptimo para redes modernas. |
nmap -T0 --scan-delay 1s target |
|
--data-string / --data-length |
Ofuscación de carga útil. Inserta texto personalizado o añade bytes aleatorios al final de los paquetes para alterar la firma de datos y no alertar a los sistemas de inspección profunda (DPI). | nmap --data-length 100 target |
|
| Formatos de Salida (Auditoría) | -oN |
Salida normal (Normal Output). Guarda los resultados en un fichero de texto plano simple, tal y como se ve en la pantalla de la terminal. | nmap -oN reporte.txt target |
-oX |
Salida XML. Guarda el reporte en una estructura estructurada de árbol XML. Es ideal para exportar datos y procesarlos con hojas de estilo HTML o herramientas externas. | nmap -oX reporte.xml target |
|
-oG |
Salida procesable con grep (Grepable Format). Guarda el reporte estructurado en líneas independientes para poder filtrar información de hosts y puertos de manera ágil usando comandos de Unix (grep, awk, cat). |
nmap -oG reporte.grep target |
|
-oA |
Salida en todos los formatos (Alias format). Guarda los resultados de manera simultánea en formato normal (.nmap), XML (.xml) y grepable (.grep) bajo el mismo nombre base de archivo. |
nmap -oA scan_completo target |
|
| Optimización y Diagnóstico | -v / -vv / -vvv |
Modo verboso. Incrementa el nivel de detalle de salida del análisis. Permite ver puertos abiertos, estimaciones de tiempo y hallazgos en tiempo real a medida que ocurren en el escaneo. | nmap -vvv target |
-d / -d2 |
Modo de depuración (Debugging mode). Profundiza aún más que el modo verboso, mostrando detalles de bajo nivel de los paquetes como los flags TCP activos o campos TTL. | nmap -d2 target |