Nmap: La Herramienta Definitiva para el Escaneo de Redes

Hacker La Red Oscura

Nmap (Network Mapper) es una herramienta de código abierto ampliamente utilizada para el escaneo y auditoría de redes. Desarrollado originalmente por Gordon Lyon (conocido como Fyodor) en 1997, Nmap se ha convertido en un estándar de facto para los profesionales de la seguridad, administradores de sistemas y hackers éticos. Su capacidad para identificar hosts, servicios y vulnerabilidades en una red lo convierte en una herramienta esencial para la gestión y seguridad de redes.

Introducción a Nmap

¿Qué es Nmap?

Nmap es un escáner de redes que permite descubrir hosts y servicios en una red informática. Mediante el envío de paquetes a los sistemas objetivo y el análisis de las respuestas, Nmap puede determinar qué dispositivos están activos, qué puertos están abiertos, qué servicios están disponibles en esos puertos y qué sistema operativo (OS) está en ejecución. Además, Nmap ofrece capacidades avanzadas como la detección de versiones de servicios, la detección de vulnerabilidades y la creación de scripts personalizados para escaneos más profundos.

Instalación de Nmap en Kali Linux

Kali Linux, una distribución de Linux orientada a la seguridad, viene preinstalada con Nmap. Sin embargo, si por alguna razón necesitas instalarlo o actualizarlo, puedes hacerlo fácilmente desde la terminal:

sudo apt-get update
sudo apt-get install nmap -y

Para verificar que la instalación fue exitosa, ejecuta:

nmap --version

Esto debería mostrar la versión de Nmap instalada en tu sistema.

Conceptos Básicos de Nmap

Antes de profundizar en las opciones y características avanzadas, es importante comprender algunos conceptos básicos de Nmap:

  • Host: Un dispositivo en la red, como una computadora, router o impresora.
  • Puerto: Un punto de acceso en un dispositivo para la comunicación de red. Los puertos pueden estar abiertos (aceptando conexiones), cerrados o filtrados (bloqueados por un firewall).
  • Protocolo: Nmap trabaja principalmente con TCP (Transmission Control Protocol) y UDP (User Datagram Protocol), los cuales son protocolos de comunicación en red.

Escaneo Básico de Puertos

La forma más simple de usar Nmap es escanear un host para ver qué puertos están abiertos. El comando básico es:

nmap <dirección_IP>

Por ejemplo, para escanear un dispositivo con la IP 192.168.1.1, utilizarías:

nmap 192.168.1.1

Esto realiza un escaneo predeterminado, que consiste en un escaneo de puertos TCP en el rango de puertos de 1 a 1000. El resultado te mostrará qué puertos están abiertos y qué servicios están asociados con esos puertos.

Escaneo de Hosts en una Red

Si deseas escanear todos los dispositivos activos en una red, puedes usar el siguiente comando:

nmap -sn 192.168.1.0/24

La opción -sn (sin escaneo de puertos) simplemente verifica qué hosts están activos sin realizar un escaneo de puertos.

Opciones y Argumentos de Nmap

Nmap es una herramienta poderosa con una gran cantidad de opciones y argumentos que permiten realizar escaneos muy específicos y personalizados. A continuación, se describen las opciones más importantes con ejemplos detallados.

Tipos de Escaneo

1. Escaneo TCP Connect (-sT)

Este es el escaneo más básico y fiable, ya que realiza una conexión TCP completa (el conocido "three-way handshake"). Sin embargo, es más fácil de detectar por sistemas de detección de intrusos (IDS).

nmap -sT 192.168.1.1

2. Escaneo TCP SYN (-sS)

Conocido como "escaneo stealth" o "medio abierto", este escaneo envía un paquete SYN y espera una respuesta. Si el puerto está abierto, el objetivo responderá con un paquete SYN-ACK, pero Nmap no completa la conexión, lo que hace que sea más difícil de detectar.

nmap -sS 192.168.1.1

3. Escaneo UDP (-sU)

El escaneo UDP es útil para descubrir servicios que se ejecutan sobre el protocolo UDP. Este tipo de escaneo puede ser más lento y menos confiable debido a la naturaleza de UDP.

nmap -sU 192.168.1.1

4. Escaneo de Puertos Fin, Xmas, Null (-sF, -sX, -sN)

Estos escaneos envían paquetes TCP que están diseñados para evadir algunos firewalls y sistemas de detección. Funcionan mejor en sistemas que siguen estrictamente la especificación TCP.

  • FIN: Envia un paquete TCP con la bandera FIN.
  • Xmas: Envia un paquete TCP con las banderas FIN, PSH y URG.
  • Null: Envia un paquete TCP sin banderas.
nmap -sF 192.168.1.1
nmap -sX 192.168.1.1
nmap -sN 192.168.1.1

Especificación de Puertos

1. Escanear un Rango de Puertos

Puedes especificar un rango de puertos utilizando la opción -p:

nmap -p 1-100 192.168.1.1

2. Escanear Puertos Específicos

Si deseas escanear puertos específicos, simplemente sepáralos con comas:

nmap -p 22,80,443 192.168.1.1

3. Escaneo de Todos los Puertos

Para escanear todos los puertos posibles (65535 puertos), usa:

nmap -p- 192.168.1.1

Detección de Versión de Servicios (-sV)

Nmap puede identificar las versiones exactas de los servicios que están en ejecución en los puertos abiertos. Esto es útil para identificar posibles vulnerabilidades específicas de una versión.

nmap -sV 192.168.1.1

Detección de Sistema Operativo (-O)

La detección del sistema operativo es una de las características más avanzadas de Nmap. Utiliza una variedad de técnicas de huellas dactilares (fingerprinting) para identificar el sistema operativo en ejecución en el host.

nmap -O 192.168.1.1

También puedes combinar la detección de sistema operativo con la detección de versión de servicios:

nmap -A 192.168.1.1

Scripts NSE (Nmap Scripting Engine)

Nmap incluye un potente motor de scripting llamado NSE, que permite realizar escaneos más complejos y personalizados. Los scripts NSE pueden ser utilizados para realizar escaneos de vulnerabilidades, detección de malware, pruebas de fuerza bruta, entre otros.

1. Escaneo de Vulnerabilidades

Puedes usar scripts específicos para escanear vulnerabilidades conocidas:

nmap --script vuln 192.168.1.1

2. Ejecución de un Script Específico

Para ejecutar un script específico, utiliza:

nmap --script <nombre_del_script> 192.168.1.1

Por ejemplo, para verificar si el servidor HTTP es vulnerable a la inyección SQL:

nmap --script https-sql-injection 192.168.1.1

Técnicas de Evasión

Nmap ofrece varias técnicas para evadir firewalls y sistemas de detección de intrusos:

1. Fragmentación de Paquetes (-f)

Fragmenta los paquetes enviados para evadir la detección por firewalls.

nmap -f 192.168.1.1

2. Cambio del Orden de los Puertos (--randomize-hosts)

Escanea los puertos en un orden aleatorio para evitar la detección.

nmap --randomize-hosts 192.168.1.1

3. Ajuste de Velocidad (-T<0-5>)

Controla la velocidad del escaneo. Los niveles van desde -T0 (más lento y sigiloso) hasta -T5 (más rápido, pero más fácil de detectar).

nmap -T2 192.168.1.1

Escaneo en Red Local

1. Escaneo ARP (-PR)

Para escanear hosts en una red local, el escaneo ARP es más eficiente, ya que identifica hosts activos sin enviar paquetes ICMP.

nmap -PR 192.168.1.0/24

2. Escaneo Ping Sweep (-sn)

Para identificar todos los dispositivos activos en una red sin escanear puertos, utiliza:

nmap -sn 192.168.1.0/24

Generación de Reportes

Nmap permite exportar los resultados del escaneo en varios formatos:

1. Salida en Formato Normal

Por defecto, Nmap imprime los resultados en un formato legible en la terminal. Puedes redirigir esta salida a un archivo:

nmap -oN resultados.txt 192.168.1.1

2. Salida en Formato XML

Para exportar los resultados en XML, útil para su análisis posterior o integración con otras herramientas:

nmap -oX resultados.xml 192.168.1.1

3. Salida en Formato Grepable

El formato grepable permite un análisis rápido y fácil de los resultados:

nmap -oG resultados.grep 192.168.1.1

Ejemplos Avanzados de Uso de Nmap

Escaneo de una Red Completa con Detección de OS y Versiones

Este escaneo es útil para mapear toda la red, identificar qué dispositivos están activos, qué servicios están corriendo y en qué sistema operativo:

nmap -A -T4 192.168.1.0/24

Escaneo de Vulnerabilidades Específicas en Servicios

Supongamos que deseas verificar si hay vulnerabilidades en los servidores web en tu red:

nmap -p 80,443 --script https-vuln* 192.168.1.0/24

Evadir Firewalls y Sistemas IDS

Para evadir detecciones mientras escaneas, podrías combinar varias técnicas de evasión:

nmap -sS -T2 -f --data-length 50 --randomize-hosts 192.168.1.1

Consideraciones Éticas y Legales

Es crucial recordar que Nmap, como todas las herramientas de escaneo de redes, debe ser utilizado de manera responsable. Escanear redes o dispositivos sin el permiso explícito del propietario es ilegal en muchas jurisdicciones y puede llevar a severas consecuencias legales. Es importante usar Nmap únicamente en redes que posees o para las cuales tienes autorización explícita.

Conclusión

Nmap es una herramienta extremadamente versátil y poderosa que ofrece una amplia gama de opciones para la exploración y auditoría de redes. Desde simples escaneos de puertos hasta la detección avanzada de vulnerabilidades, Nmap es una herramienta indispensable para cualquier profesional de la seguridad. Con la práctica y un entendimiento profundo de sus capacidades, puedes utilizar Nmap para asegurar tus redes y sistemas contra posibles amenazas.