En el cambiante panorama de la ciberseguridad, mantenerse un paso por delante de los actores maliciosos es fundamental, y comprender las complejidades de las redes es una parte integral de ello. Una herramienta que puede ayudar en esta tarea es Nmap, o Network Mapper, una solución incondicional en el ámbito de la ciberseguridad.
Nmap es una herramienta de código abierto diseñada para analizar redes y realizar auditorías de seguridad, revelando información valiosa sobre la infraestructura de red. Es esencial tanto para profesionales de la ciberseguridad que buscan vulnerabilidades como para administradores de sistemas que mantienen la salud de la red.
Funcionalidades clave de Nmap
Las capacidades y versatilidad de Nmap lo han convertido en un elemento básico en el arsenal de profesionales de la ciberseguridad, administradores de sistemas y hackers éticos. Su conjunto de funciones va más allá del escaneo básico de redes, incluyendo:
- Descubrimiento del host: Nmap identifica los hosts activos en una red, sentando las bases para una exploración más profunda.
- Exploración de puertos: Descubre puertos y servicios abiertos, permitiendo a los administradores conocer la superficie de ataque de una red.
- Detección de versiones: Puede identificar versiones de servicios, ayudando a localizar posibles vulnerabilidades asociadas a versiones específicas.
- Interacción programable: El Nmap Scripting Engine (NSE) permite a los usuarios crear análisis a medida y automatizar tareas complejas.
- Huella digital del sistema operativo: Las capacidades de detección de SO de Nmap permiten identificar los sistemas operativos que se ejecutan en los hosts, lo que ayuda en el inventario de la red y las evaluaciones de seguridad.

Escaneo de redes y auditoría de seguridad con Nmap
El escaneo de redes explora sistemáticamente una red informática para identificar sus componentes, evaluar su topología y descubrir posibles fallos de seguridad. Al conocer la configuración de una red, los administradores pueden tomar decisiones de seguridad informadas y reforzar el perímetro digital.
Nmap es la herramienta líder para el análisis de redes y la auditoría de seguridad gracias a su variada gama de técnicas de escaneo y su capacidad de personalización:
- Inventario de redes: Puede elaborar una lista de todos los activos de software y servicios, creando un "mapa" de la red con detalles como direcciones IP, puertos, versiones de software o servicios, sistemas operativos y direcciones MAC.
- Detección de vulnerabilidades: Puede analizar una red en busca de vulnerabilidades comparando los sistemas operativos y las versiones de los servicios con vulnerabilidades conocidas mediante el NSE.
- Supervisión de redes: Se logra automatizando las tareas de escaneo con el NSE.
Primeros pasos con Nmap
Instalación de Nmap
El primer paso para usar Nmap es instalarlo en tu equipo. A continuación, se detallan las instrucciones para los tres principales sistemas operativos. Se recomienda consultar la página de descargas de Nmap para obtener la última versión del software.
Instalar Nmap en Linux
La instalación de Nmap en Linux depende de la distribución:
- Para distribuciones basadas en RPM (Red Hat, Mandrake, SUSE, Fedora): yum install nmap
- Para Debian Linux y sus derivados (Ubuntu): apt-get install nmap
En la mayoría de las distribuciones de Linux, ZenMap, la interfaz gráfica oficial de Nmap, debe instalarse por separado.
Instalar Nmap en Windows
- Dirígete a la página de descargas de Nmap y descarga la última versión estable para Windows.
- Haz doble clic en el archivo de instalación.
- Haz clic en Sí cuando Windows solicite permiso y acepta la licencia.
- En el menú de componentes, asegúrate de que todo lo necesario esté marcado (incluido ZenMap si lo deseas) y haz clic en Siguiente.
- Haz clic en Instalar en la pantalla final.
- Aparecerá la pantalla de configuración de Npcap. Acepta la licencia y haz clic en Instalar. Npcap es la versión para Windows de la librería libpcap, necesaria para que Nmap funcione.
- Sigue los pasos del proceso de instalación, dejando la configuración predeterminada.
Una vez finalizada la instalación, tendrás un enlace a Zenmap en tu escritorio y una carpeta en el menú de inicio.
Instalar Nmap en Mac
Existen dos opciones para instalar Nmap en Mac:
- Si ya tienes Homebrew instalado: brew install nmap
- Descarga el último instalador de la versión estable (.dmg) desde la sección "Mac OS X Binaries" de la página de descargas de Nmap. Este archivo también incluye ZenMap. Haz doble clic en el archivo .dmg para iniciar el instalador y sigue las instrucciones.
Comandos y sintaxis básicos de Nmap
Una vez instalado Nmap, puedes empezar a aprender algunos comandos básicos para el escaneo de redes:
- Ayuda: Para obtener ayuda, simplemente ejecuta nmap en un terminal.
- Detección sencilla de hosts: Para descubrir dispositivos activos en la red: nmap <target> (donde <target> puede ser una dirección IP, un nombre de host o un rango de direcciones IP, por ejemplo, nmap 192.168.10.0/24).
- Escaneo de ping: Identifica hosts activos sin enviar paquetes al host: nmap -sn <target>.
- Escaneo básico de puertos: Para sondear puertos y servicios abiertos: nmap -p <port-range> <target> (reemplaza <port-range> con un número de puerto o un rango, por ejemplo, 80, 443 o 1-1024).
- Detección de versiones: Para conocer las versiones de los servicios en puertos abiertos: nmap -sV -p <port-range> <target>. El indicador -sV activa la detección de versiones.
- Huella digital del sistema operativo: Para determinar el sistema operativo de un host: nmap -O <target>. El indicador -O habilita la detección de SO.
10 Comandos Básicos de NMAP - Kali Linux
Uso de Nmap para escanear la red
Para poner en práctica los comandos, necesitarás un rango de IP para escanear. Puedes usar tu propia red (por ejemplo, si tu IP es 10.0.0.23, el rango sería 10.0.0.0/24) o scanme.nmap.org como objetivo, que fue creado para ayudar a aprender a usar Nmap.
Usar un escaneo de ping para identificar hosts activos
Un escaneo de ping es la base del descubrimiento de hosts. Para escanear un rango de direcciones IP, ejecuta:
nmap -sn 10.0.0.0/24
Esto mostrará los hosts activos en la red.
Exploración de diferentes técnicas de escaneado de puertos
Un escaneo de ping solo proporciona las direcciones IP de los hosts. Para obtener más información, se necesitan otras técnicas de escaneo.
Exploración de conexión TCP
Es la técnica de escaneo más directa. Nmap establece un protocolo de enlace TCP completo de tres vías con cada puerto de destino para determinar su estado (abierto, cerrado o filtrado). Ejemplo:
nmap -sT 10.0.0.1
Esto listará los puertos en el host.
Escaneo SYN
También conocido como escaneo semiabierto o sigiloso. Envía paquetes SYN a los puertos objetivo sin completar el protocolo de enlace, evaluando las respuestas para determinar la apertura del puerto sin conectarse completamente. Es más rápido y menos propenso a ser detectado. Algunos comandos de Nmap, como este, requieren privilegios de root en Unix/Mac o una cuenta de administrador en Windows. Ejemplo:
sudo nmap -sS 10.0.0.1
Escaneo UDP
Se dirige a los puertos UDP del host. Dado que UDP es un protocolo sin conexión, determinar el estado del puerto requiere interpretar la respuesta o su ausencia. Nmap detecta la limitación de velocidad y reduce la velocidad para evitar desbordamientos, lo que puede hacer que el escaneo sea prolongado. Por ello, se usa la opción -F para escanear solo los 100 puertos principales. Este escaneo también requiere privilegios de root o una cuenta de administrador. Ejemplo:
sudo nmap -sU 10.0.0.1 -F
Escaneo del sistema operativo
Saber qué sistemas operativos se ejecutan en los hosts es importante para comprender la arquitectura de una red. También requiere privilegios de root o una cuenta de administrador. Ejemplo:
sudo nmap -O 10.0.0.0/24
Se pueden usar rangos de direcciones IP para este escaneo.
Uso de Nmap para auditorías de seguridad
Los comandos aprendidos te ayudarán a iniciar una auditoría de seguridad al listar todos los puertos abiertos, servicios y sistemas operativos en uso en tu red, indicando posibles puntos de entrada para agentes maliciosos. Para auditorías de seguridad más profundas, puedes utilizar el Nmap Scripting Engine (NSE).
NSE incluye un conjunto de scripts (más de 600) que te ayudarán a encontrar vulnerabilidades en tus sistemas, la mayoría preinstalados con Nmap. Utiliza el lenguaje de programación Lua y permite escribir scripts propios para personalizar los escaneos.
Para un ejemplo, se utilizará el script vulners, que usa la base de datos de vulnerabilidades Vulners. Este script depende de tener información sobre las versiones de software, por lo que debes usar el indicador -sV. Ejemplo de escaneo usando este script para un rango de IP:
nmap -sV --script=vulners 10.0.0.0/24
El resultado mostrará las vulnerabilidades detectadas, si las hubiera.
Nmap para diferentes sistemas operativos
Aunque los comandos de Nmap son consistentes entre sistemas operativos, existen consideraciones específicas:
Linux
- Instalar Nmap: Usa apt-get en Debian/Ubuntu o yum en RHEL/CentOS. También puedes descargar paquetes RPM manualmente.
- Ejecutar Nmap: Abre el terminal e introduce el comando.
- Actualizar Nmap: sudo apt-get update && sudo apt-get upgrade nmap para Debian/Ubuntu; sudo yum update nmap para RHEL/CentOS.
- Desinstalar Nmap: sudo apt-get remove nmap para Debian/Ubuntu; sudo yum remove nmap para RHEL/CentOS.
Windows
- Instalar Nmap: Descarga el ejecutable de instalación desde la página de Nmap.
- Ejecutar Nmap: Abre el Símbolo del sistema o PowerShell e introduce el comando.
- Actualizar Nmap: Nmap se actualizará automáticamente a la última versión.
- Desinstalar Nmap: Haz doble clic en el script de desinstalación en la carpeta de instalación.
- Rendimiento: Puede no ser tan eficiente como en sistemas Unix, y solo soporta interfaces Ethernet para escaneos de paquetes en bruto, pero es suficiente para la mayoría de los casos de uso.
Mac
- Instalar Nmap: Descarga el archivo .dmg o usa Homebrew con brew install nmap.
- Ejecutar Nmap: Abre la aplicación Terminal e introduce el comando.
- Actualizar Nmap: Si se instaló con Homebrew, usa brew upgrade nmap. Si se instaló desde el sitio oficial, compara tu versión (nmap) con la estable actual para decidir si necesitas una nueva instalación.
- Desinstalar Nmap: Si se instaló con Homebrew, usa brew uninstall nmap. Si se instaló desde el sitio oficial, usa sudo rm -rf /usr/local/bin/nmap /usr/local/share/man/man1/nmap.1.
EternalBlue y su impacto
EternalBlue es el nombre de una serie de vulnerabilidades del software de Microsoft y del exploit creado por la NSA. La NSA, después de casi un año buscando un fallo en el software de Microsoft, desarrolló EternalBlue para explotar una vulnerabilidad de seguridad de Windows.
Sin embargo, la NSA sufrió un ataque informático, y el grupo Shadow Brokers filtró EternalBlue y otras herramientas cibernéticas sensibles. El 14 de marzo de 2017, Microsoft publicó el boletín de seguridad MS17-010, un parche diseñado para solucionar fallos en SMBv1 para todos los sistemas operativos Windows compatibles (incluidos Windows Vista, 7, 8.1, 10, Server 2008, 2012 y 2016). Tras la filtración, Microsoft lanzó un segundo parche de emergencia para sistemas operativos sin soporte, demostrando la gravedad de EternalBlue.

¿Cómo funciona EternalBlue?
El exploit EternalBlue aprovecha vulnerabilidades de SMBv1 en versiones antiguas de sistemas operativos Microsoft. SMBv1, desarrollado en 1983, es un protocolo de comunicación de red para el acceso compartido a archivos, impresoras y puertos. El exploit utiliza la forma en que Microsoft Windows gestiona (o gestiona mal) paquetes especialmente elaborados por atacantes maliciosos.
El parche de Microsoft cierra completamente esta vulnerabilidad, impidiendo el despliegue de ransomware, malware, cryptojacking o cualquier otro intento de infiltración digital tipo gusano usando EternalBlue.
La persistencia de EternalBlue
Este problema clave le da a EternalBlue una vida tan larga: muchas personas e incluso empresas no actualizan su software regularmente, dejando sus sistemas operativos sin parchear y, por tanto, vulnerables. La vulnerabilidad tiene una criticidad de 8.8 en base al CVSSv3.1, se la encuentra bajo los identificadores CVE-2017-0144 o MS17-010 y permite una ejecución remota de código.
EternalBlue se ha utilizado para propagar los ransomware WannaCry y Petya, pero puede usarse para cualquier tipo de ciberataque, incluyendo cryptojacking y malware tipo gusano. Aunque WannaCry y NotPetya causaron la mayor parte de su daño a principios de 2017, otros ataques que explotan EternalBlue siguen vigentes.
WannaCry
Un ataque mundial de ransomware que comenzó el 12 de mayo de 2017 y tuvo un impacto global. Aunque no hubo objetivos específicos, entidades importantes como FedEx, la Universidad de Montreal, LATAM Airlines, Deutsche Bahn y el Servicio Nacional de Salud del Reino Unido (NHS) sufrieron ataques.
Petya y NotPetya
Petya se lanzó a principios de 2016. Gracias a EternalBlue y al éxito de WannaCry, el ransomware Petya tuvo una segunda oportunidad de destrucción con NotPetya (Petya V2), cuyo objetivo era inutilizar completamente un sistema, sin cura incluso si se pagaba el rescate.
La amenaza actual y futura
Casi un millón de equipos continúan usando el protocolo vulnerable SMBv1 y permanecen en línea, garantizando la persistencia de EternalBlue. La amenaza más profunda radica en los exploits sin utilizar también liberados durante el ataque a la NSA por Shadow Brokers. La amenaza más peligrosa que se vislumbra es EternalRocks, que, a diferencia de WannaCry (que usó dos exploits), se dice que usa siete exploits, incluyendo EternalBlue, EternalRomance, EternalSynergy, EternalChampion, ArchiTouch y SMBTouch.
Protegerse de EternalBlue
La buena noticia es que existen herramientas sólidas para protegerse. Se recomienda a todos los usuarios de Windows que apliquen el parche de seguridad de Microsoft disponible en MS17-010. Simplemente actualiza tu software a la última versión de Windows. No hacerlo significa intentar combatir problemas del presente con herramientas del pasado.
Para ver si un PC es vulnerable a un ciberataque de EternalBlue, se puede usar EternalBlue Vulnerability Checker de ESET, que es fácil de usar y está disponible para descarga. Para usuarios en red que no son responsables directos de las actualizaciones, es útil saber qué máquinas tienen el puerto 445/TCP accesible y son vulnerables.
Comprobación de vulnerabilidad con Nmap en Windows
En el contexto de TryHackMe, la sala Blue (de dificultad fácil) explora cómo hackear una máquina Windows aprovechando problemas comunes de desconfiguración, como EternalBlue.
Enumeración
Se realiza una enumeración de los servicios asociados a los puertos abiertos. Se observa que hay varios puertos habilitados, entre ellos el 135 (RPC), 139/445 (SMB), 3389 (RDP). El informe destaca que es posible que el sistema operativo de la máquina objetivo sea Windows 7 Professional.
Explotación de EternalBlue con Metasploit
Para explotar la vulnerabilidad de EternalBlue, se puede usar el framework Metasploit. En este caso, se emplea el exploit exploit/windows/smb/ms17_010_eternalblue. Se utiliza específicamente el payload windows/x64/shell/reverse_tcp para obtener una shell convencional.
El resultado de una ejecución del módulo auxiliar puede indicar que el objetivo es vulnerable y proporciona la arquitectura del sistema operativo, útil para especificar el payload.
Es normal que el exploit falle en los primeros intentos.
Post-explotación: De shell a Meterpreter y migración
Si se obtiene una shell convencional, se puede transformar en una sesión Meterpreter utilizando el módulo post/multi/manage/shell_to_meterpreter. La única opción requerida es el ID de sesión. Después de configurarlo y ejecutar el módulo, se obtiene una nueva sesión Meterpreter. Para evadir detecciones, se migra al proceso winlogon.exe, un proceso habitual en sistemas operativos Windows.
Recolección de credenciales con Mimikatz
Con acceso al sistema como nt authority\system, se pueden obtener los hashes de las contraseñas de los usuarios con la herramienta Mimikatz. Para usarla en la máquina víctima, se ubica mimikatz.exe en la máquina atacante (Kali), se crea un recurso compartido (por ejemplo, "a") que lo contenga, y se accede desde la víctima.