Realizar un escaneo de puertos UDP con Nmap

NmapBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá cómo utilizar Nmap para escanear puertos UDP (User Datagram Protocol), una habilidad vital para los profesionales de seguridad de redes. UDP, un protocolo sin conexión, no establece una conexión dedicada de extremo a extremo antes de la transferencia de datos. Esto lo hace más rápido pero menos confiable que TCP.

El escaneo de redes es crucial en ciberseguridad, ya que permite a los profesionales identificar puertos abiertos, servicios en ejecución y posibles vulnerabilidades. Nmap, una poderosa herramienta de código abierto para la detección de redes y auditoría de seguridad, es ampliamente utilizada por administradores de sistemas y expertos en ciberseguridad. Al final de este laboratorio, dominará la configuración de un servidor UDP, la realización de un escaneo básico de puertos UDP con Nmap y la interpretación de los resultados del escaneo, que son esenciales para la exploración de redes y la evaluación de seguridad.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 99%. Ha recibido una tasa de reseñas positivas del 99% por parte de los estudiantes.

Configuración de un servidor UDP

En este paso, configurarás un servidor UDP. Este servidor actuará como objetivo para tus escaneos de Nmap. Al hacer esto, comprenderás mejor cómo funcionan los servicios UDP y cómo las herramientas de escaneo pueden detectarlos.

Comprender el protocolo UDP

Antes de comenzar a configurar el servidor, tomemos un momento para entender qué es UDP (User Datagram Protocol). UDP es una parte importante del conjunto de protocolos de Internet (IP).

  • UDP es un protocolo sin conexión. Esto significa que, a diferencia de TCP, no establece una conexión antes de enviar datos. Cuando se utiliza TCP, primero se establece una conexión entre el emisor y el receptor, pero UDP omite este paso.
  • UDP es más rápido que TCP. Dado que no tiene que pasar por el proceso de establecimiento de una conexión, los datos se pueden enviar más rápidamente. Sin embargo, esta velocidad tiene un costo. UDP es menos confiable que TCP porque no hay garantía de que los datos se entreguen, de que lleguen en el orden correcto o de que no haya datos duplicados.
  • UDP se utiliza comúnmente en aplicaciones donde la velocidad es más importante que la confiabilidad. Por ejemplo, la transmisión de medios como videos y música, los juegos en línea y las consultas DNS se basan en UDP. En estos casos, un pequeño retraso en la entrega de datos puede ser más notable y disruptivo que una pequeña cantidad de pérdida de datos.

Configuración del servidor UDP

Para configurar un servidor UDP, utilizaremos una herramienta llamada netcat, que a menudo se abrevia como nc. netcat es una utilidad de red muy útil que te permite leer y escribir en conexiones de red utilizando TCP o UDP.

  1. Primero, abre una ventana de terminal. Una vez abierta la terminal, debes navegar al directorio del proyecto. Aquí es donde se encuentran todos los archivos y configuraciones relevantes para este laboratorio. Puedes hacer esto ejecutando el siguiente comando en la terminal:
cd /home/labex/project
  1. Ahora, es hora de iniciar el servidor UDP. Queremos que el servidor escuche en el puerto 9999. Puedes iniciar el servidor con el siguiente comando:
nc -u -l -p 9999 -k

Desglosemos lo que significa cada opción en este comando:

  • -u: Esta opción le dice a netcat que utilice UDP en lugar del TCP predeterminado. Dado que estamos configurando un servidor UDP, debemos especificar esto.
  • -l: Esto pone a netcat en modo de escucha. En modo de escucha, netcat actúa como un servidor, esperando conexiones entrantes.
  • -p 9999: Esta opción especifica el número de puerto en el que el servidor escuchará. En este caso, hemos elegido el puerto 9999.
  • -k: Esta opción le dice al servidor que siga funcionando incluso después de que un cliente se desconecte. Esto es útil porque permite que el servidor acepte nuevas conexiones sin tener que reiniciarlo cada vez que un cliente se va.

Después de ejecutar este comando, tu terminal puede parecer congelada o detenida. Este es un comportamiento normal. Significa que netcat ahora está escuchando activamente conexiones UDP entrantes en el puerto 9999.

Mantén esta ventana de terminal abierta porque la necesitaremos para el siguiente paso. Para continuar con el laboratorio, necesitarás abrir una nueva ventana de terminal.

Realizar un escaneo UDP básico con Nmap

En este paso, utilizaremos Nmap para escanear el servidor UDP que configuraste en el paso anterior. Este proceso es crucial, ya que te ayudará a entender cómo Nmap identifica los puertos UDP abiertos y los servicios que se ejecutan en ellos. Al final de este paso, tendrás una mejor comprensión de cómo usar Nmap para escanear puertos UDP, lo cual es una habilidad esencial en el campo de la ciberseguridad.

Comprender el escaneo UDP de Nmap

Nmap, abreviatura de Network Mapper, es una conocida herramienta gratuita y de código abierto utilizada para la detección de redes y la auditoría de seguridad. Cuando se trata de escanear puertos UDP, Nmap funciona de manera diferente en comparación con el escaneo de puertos TCP.

UDP, o User Datagram Protocol, es un protocolo sin conexión. A diferencia de TCP, que establece una conexión antes de la transferencia de datos, UDP simplemente envía datos sin establecer una conexión primero. Esto significa que los métodos de escaneo basados en conexiones tradicionales utilizados para puertos TCP no funcionarán para UDP.

Cuando Nmap escanea puertos UDP, envía paquetes UDP vacíos al puerto objetivo y luego espera una respuesta. Si el puerto está cerrado, el sistema objetivo generalmente envía un mensaje ICMP "puerto inalcanzable". Sin embargo, si el puerto está abierto, las cosas se vuelven un poco más complicadas. Puede que no haya respuesta en absoluto, lo que dificulta saber si el puerto está realmente abierto. O, si el servicio UDP que se ejecuta en el puerto reconoce el formato del paquete, puede enviar una respuesta.

Es importante tener en cuenta que el escaneo UDP generalmente es más lento y menos confiable que el escaneo TCP. Esto se debe a que UDP no tiene los mecanismos integrados de comprobación de errores y retransmisión que tiene TCP.

Realización del escaneo UDP

  1. Primero, abre una nueva ventana de terminal. Asegúrate de mantener la ventana de terminal anterior con el servidor UDP en ejecución. Esto es importante porque estaremos escaneando el servidor UDP que está actualmente activo en esa terminal.

  2. A continuación, debemos navegar al directorio del proyecto. En la nueva terminal, ejecuta el siguiente comando:

cd /home/labex/project

Este comando cambia el directorio de trabajo actual al directorio del proyecto donde se encuentran todos nuestros archivos y configuraciones relevantes.

  1. Ahora, es hora de ejecutar el escaneo UDP de Nmap. Estaremos escaneando el localhost (127.0.0.1) apuntando al puerto 9999. Ejecuta el siguiente comando:
sudo nmap -sU -p 9999 127.0.0.1 > /home/labex/project/udp_scan_results.txt

Desglosemos este comando para entender qué hace cada parte:

  • sudo: Se utiliza para ejecutar el comando con privilegios elevados. El escaneo UDP requiere estos privilegios elevados porque implica enviar paquetes en una capa de red de bajo nivel.
  • nmap: Esta es la herramienta de escaneo que estamos utilizando. Es el núcleo de nuestra operación de detección de redes y auditoría de seguridad.
  • -sU: Esta opción le dice a Nmap que realice un escaneo UDP.
  • -p 9999: Esta opción especifica que solo queremos escanear el puerto 9999.
  • 127.0.0.1: Esta es la dirección IP objetivo. En este caso, es el localhost, lo que significa que estamos escaneando nuestra propia máquina.
  • > /home/labex/project/udp_scan_results.txt: Esta parte redirige la salida del escaneo de Nmap a un archivo llamado udp_scan_results.txt en el directorio del proyecto. De esta manera, podemos revisar los resultados más tarde.
  1. Después de que el escaneo se complete, podemos ver los resultados. Ejecuta el siguiente comando:
cat /home/labex/project/udp_scan_results.txt

Deberías ver una salida similar a la siguiente:

Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-15 12:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000054s latency).

PORT     STATE         SERVICE
9999/udp open|filtered unknown

Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds

Comprender los resultados

Echemos un vistazo más de cerca a los resultados del escaneo y entendamos lo que significan.

El estado open|filtered indica que Nmap no recibió un mensaje ICMP "puerto inalcanzable". Hay algunas posibles explicaciones para esto:

  • El puerto está abierto y el servicio UDP se está ejecutando como se esperaba.
  • El puerto podría estar filtrado por un firewall. Un firewall podría estar bloqueando los mensajes ICMP "puerto inalcanzable" o el tráfico UDP en sí.
  • El sistema objetivo podría no estar enviando mensajes ICMP "puerto inalcanzable" por alguna razón.

En nuestro caso, dado que configuramos el servidor UDP nosotros mismos, sabemos que el puerto está abierto. La etiqueta de servicio unknown significa que Nmap no pudo determinar qué servicio se está ejecutando en ese puerto en base a su huella digital de servicio.

Como se mencionó anteriormente, el escaneo UDP es menos concluyente que el escaneo TCP. Es por eso que Nmap a menudo muestra el estado open|filtered para puertos UDP, lo que hace un poco más difícil determinar con precisión el estado de los puertos UDP.

Resumen

En este laboratorio, has aprendido cómo usar Nmap para escanear puertos UDP, una habilidad crucial para la evaluación de seguridad de redes. Primero, configuraste un servidor UDP con netcat para crear un objetivo práctico para el escaneo. Luego, realizaste un escaneo UDP básico con Nmap en el puerto específico donde el servidor estaba escuchando.

También adquiriste experiencia práctica en la comprensión del protocolo UDP y sus diferencias con TCP, la configuración de un servidor UDP básico utilizando netcat, el uso de Nmap para escanear puertos UDP abiertos y la interpretación de los resultados de los escaneos UDP. Estas habilidades son fundamentales para un escaneo de redes y una evaluación de seguridad más avanzados. El escaneo UDP es vital, ya que muchos servicios críticos como DNS, DHCP y protocolos de transmisión utilizan UDP.

A medida que avanzes en tu viaje de ciberseguridad, recuerda que el escaneo de redes es solo parte de una evaluación de seguridad integral. Siempre escanea sistemas que pertenezcan a ti o para los que tengas permiso explícito para escanear.