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
-
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.
-
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.
- 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.
- 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.