Usa Nmap para Descubrir Hosts y Puertos

Lectura
18 min~6 min lectura

Concepto clave

Imagina que eres un detective que necesita explorar un edificio desconocido. Primero, debes identificar qué puertas existen y cuáles están abiertas antes de intentar entrar. Nmap (Network Mapper) es precisamente esa herramienta para un pentester: te permite descubrir hosts activos en una red y escanear puertos para saber qué servicios están corriendo en ellos. En términos técnicos, Nmap envía paquetes de red a direcciones IP y analiza las respuestas para determinar si un host está "vivo" y qué puertos (como el 80 para HTTP o el 22 para SSH) están abiertos, cerrados o filtrados.

Este proceso se llama reconocimiento de red y es la fase inicial crítica en cualquier prueba de penetración. Sin él, estarías actuando a ciegas. Piensa en Nmap como un mapa digital que revela la estructura de una red, similar a cómo un plano muestra las habitaciones y pasillos de un edificio. En el contexto de Kali Linux, Nmap viene preinstalado y es una de las herramientas más utilizadas en la industria para evaluaciones de seguridad legítimas, siempre que tengas autorización para escanear el objetivo.

Cómo funciona en la práctica

Vamos a desglosar un ejemplo básico paso a paso. Supón que tienes permiso para escanear la red 192.168.1.0/24 en tu laboratorio de pruebas.

  1. Abre una terminal en Kali Linux y escribe el siguiente comando para descubrir hosts activos:
    nmap -sn 192.168.1.0/24
    La opción -sn realiza un ping scan, que envía solicitudes ICMP y TCP para detectar hosts sin escanear puertos.
  2. Nmap mostrará una lista de direcciones IP con estado "up" (activas). Por ejemplo:
    Nmap scan report for 192.168.1.1 Host is up (0.0020s latency). Nmap scan report for 192.168.1.100 Host is up (0.0050s latency).
  3. Una vez identificados los hosts, escanea los puertos de uno de ellos. Por ejemplo, para 192.168.1.100:
    nmap -sV 192.168.1.100
    La opción -sV realiza un escaneo de versión, que no solo detecta puertos abiertos sino que también intenta identificar el servicio y su versión.
  4. La salida podría verse así en una tabla:
    PuertoEstadoServicioVersión
    22/tcpopensshOpenSSH 7.9
    80/tcpopenhttpApache 2.4.41
    443/tcpopenssl/httpApache 2.4.41

Este proceso te da una visión clara de qué sistemas están presentes y qué puertos podrían ser puntos de entrada para análisis posteriores.

Caso de estudio

En una evaluación de seguridad autorizada para una pequeña empresa, el equipo de pentesting usó Nmap para el reconocimiento inicial. El objetivo era la red interna 10.0.0.0/24. Primero, ejecutaron nmap -sn 10.0.0.0/24 y descubrieron 5 hosts activos, incluyendo un servidor en 10.0.0.10. Luego, escanearon ese servidor con nmap -sS -sV -O 10.0.0.10 (usando -sS para un escaneo sigiloso TCP SYN y -O para detección de sistema operativo).

Los resultados mostraron:

  • Puerto 22 abierto con OpenSSH 8.2 (potencial para ataques de fuerza bruta si las credenciales son débiles).
  • Puerto 80 abierto con Apache 2.4.46 (posibles vulnerabilidades conocidas en esa versión).
  • Puerto 3306 abierto con MySQL 5.7 (riesgo de inyección SQL si la aplicación web no está bien configurada).
Este escaneo permitió al equipo priorizar el puerto 80 para pruebas de vulnerabilidades web, lo que llevó a identificar un fallo de seguridad crítico. En un informe real, esto se documentaría como hallazgo inicial con evidencia de los comandos y salidas de Nmap.

Errores comunes

  • Escanear sin autorización: Usar Nmap en redes que no te pertenecen o sin permiso es ilegal y puede resultar en acciones legales. Siempre obtén consentimiento por escrito antes de cualquier prueba.
  • Ignorar el ruido de red: Escaneos agresivos (como con -T5 para máxima velocidad) pueden saturar la red o ser detectados por sistemas de seguridad. En entornos sensibles, usa opciones como -T2 o -T3 para ser más sigiloso.
  • No verificar la salida: A veces, Nmap puede dar falsos positivos (ej., mostrar un host como activo cuando no lo está). Confirma con múltiples escaneos o herramientas complementarias como ping o arp-scan.
  • Olvidar documentar: No guardar los resultados en un archivo (con -oN para salida normal) puede hacer que pierdas datos críticos para el informe final. Usa nmap -oN resultado.txt 192.168.1.1.
  • Malinterpretar estados de puertos: "Open" significa accesible, "filtered" puede indicar un firewall bloqueando, y "closed" significa que no hay servicio. No asumas que "filtered" es seguro; podría ser un falso negativo.

Checklist de dominio

  1. Puedo ejecutar un escaneo de descubrimiento de hosts en una red usando nmap -sn e interpretar los resultados.
  2. Sé cómo escanear puertos TCP en un host específico con opciones básicas como -sS (SYN scan) o -sT (TCP connect scan).
  3. Utilizo -sV para identificar versiones de servicios y -O para detectar el sistema operativo del objetivo.
  4. Guardo los resultados de Nmap en un archivo con formatos como -oN (normal) o -oX (XML) para documentación.
  5. Comprendo la diferencia entre estados de puertos: open, closed, filtered, y unfiltered.
  6. Aplico tiempos de escaneo ajustados (con -T) según el entorno para evitar detección o saturación.
  7. Verifico siempre que tengo autorización legal antes de ejecutar cualquier escaneo con Nmap.

Escaneo básico de red en un entorno controlado

En este ejercicio, aplicarás Nmap en una red de laboratorio para practicar el descubrimiento de hosts y el escaneo de puertos. Asegúrate de usar Kali Linux en una máquina virtual o entorno aislado con permisos.

  1. Prepara tu entorno: Enciende al menos dos máquinas virtuales en tu red local (ej., una con Kali Linux y otra con Metasploitable o una distribución Linux básica). Asegúrate de que estén en la misma red (puedes verificar con ip addr show en Kali).
  2. Descubre hosts activos: Abre una terminal en Kali y ejecuta nmap -sn [tu_rango_de_red]. Por ejemplo, si tu IP es 192.168.1.10, usa nmap -sn 192.168.1.0/24. Anota las direcciones IP que aparecen como "Host is up".
  3. Escanear puertos en un host objetivo: Elige una de las IPs descubiertas (que no sea la tuya) y ejecuta nmap -sS -sV [IP_objetivo]. Observa los puertos abiertos y los servicios identificados.
  4. Documenta los resultados: Guarda la salida del escaneo de puertos en un archivo llamado escaneo.txt usando nmap -sS -sV -oN escaneo.txt [IP_objetivo]. Luego, revisa el archivo y crea una tabla HTML simple con los puertos, estados y servicios encontrados.
  5. Analiza y reflexiona: Basado en los resultados, ¿qué puertos podrían representar riesgos de seguridad comunes? (ej., puerto 22 para SSH o 80 para HTTP). Escribe un párrafo breve explicando tus hallazgos.
Pistas
  • Si no ves hosts activos, verifica que las máquinas estén en la misma subred y que el firewall no bloquee los paquetes.
  • Para el escaneo de puertos, si -sS falla por permisos, prueba con sudo o usa -sT como alternativa.
  • Al documentar, usa cat escaneo.txt para ver el contenido del archivo y copiarlo en tu informe.

Evalua tu comprension

Completa el quiz interactivo de arriba para ganar XP.