Técnicas Avanzadas de Escaneo Covert
En este paso, exploraremos técnicas de escaneo más avanzadas que ofrecen un nivel aún mayor de sigilo. Estas técnicas son cruciales en la ciberseguridad porque te permiten recopilar información sobre una red objetivo sin ser detectado fácilmente. Una técnica poderosa es el Escaneo Ocioso, también conocido como Escaneo Zombie. Este método te permite escanear un objetivo enmascarando tu identidad detrás de otro host.
Antes de comenzar, es importante asegurarte de estar en tu espacio de trabajo. Aquí es donde se ejecutarán todos tus archivos y comandos relacionados con el proyecto. Para navegar a tu espacio de trabajo, ejecuta el siguiente comando en tu terminal:
cd /home/labex/project
Entendiendo el Escaneo Ocioso
El Escaneo Ocioso es una de las técnicas de escaneo más sigilosas disponibles en Nmap. ¿Pero cómo funciona? Bueno, utiliza un host de terceros, que llamamos "zombie", para llevar a cabo el escaneo. Esto hace que parezca que el escaneo proviene del host zombie en lugar de ti.
Desglosemos el proceso de un Escaneo Ocioso paso a paso:
- Primero, el escáner envía una sonda al host zombie. Esta sonda ayuda al escáner a determinar la secuencia actual de ID de IP del zombie. La secuencia de ID de IP es un número único que el host asigna a cada paquete IP que envía.
- A continuación, el escáner envía un paquete SYN al objetivo. Sin embargo, establece la dirección IP de origen de este paquete como la dirección IP del zombie. Un paquete SYN se utiliza para iniciar una conexión TCP.
- Si el puerto del objetivo está abierto, el objetivo responderá con un paquete SYN-ACK. Este paquete se envía al zombie porque esa es la dirección IP de origen que vio en el paquete SYN.
- El zombie, que no esperaba este paquete SYN-ACK, enviará un paquete RST de regreso al objetivo. Un paquete RST se utiliza para restablecer una conexión TCP.
- Luego, el escáner vuelve a sondear al zombie. Verifica si la secuencia de ID de IP del zombie ha aumentado.
- Si la secuencia de ID de IP ha aumentado, indica que el puerto del objetivo está abierto. Esto se debe a que el zombie envió un paquete RST en respuesta al SYN-ACK del objetivo.
La belleza de esta técnica es su sigilo. El objetivo solo ve la comunicación proveniente del zombie, no del escáner real. Por lo tanto, es muy difícil para el objetivo detectar que está siendo escaneado.
Ejecutando un Escaneo Ocioso
Ahora, ejecutemos un escaneo ocioso con Nmap. En una situación del mundo real, usarías un host zombie externo. Pero para este laboratorio, simularemos el proceso usando tu máquina local.
Ejecuta el siguiente comando en tu terminal:
sudo nmap -sI 127.0.0.1 localhost -p 8080 > /home/labex/project/idle_scan.txt
Entendamos cada parte de este comando:
sudo se utiliza porque Nmap necesita acceso a sockets sin formato para realizar el escaneo ocioso. El acceso a sockets sin formato permite a Nmap crear y enviar paquetes IP personalizados, lo cual es necesario para este tipo de escaneo.
nmap es la conocida herramienta de escaneo que estamos utilizando para esta tarea.
-sI 127.0.0.1 especifica que estamos realizando un escaneo ocioso y utilizando 127.0.0.1 (que es el localhost) como host zombie.
localhost es el objetivo que queremos escanear.
-p 8080 le indica a Nmap que solo escanee el puerto 8080 en el objetivo.
> /home/labex/project/idle_scan.txt redirige la salida del escaneo a un archivo de texto. De esta manera, podemos revisar fácilmente los resultados más tarde.
Después de ejecutar el escaneo, examinemos los resultados. Usa el siguiente comando para ver el contenido del archivo de salida:
cat /home/labex/project/idle_scan.txt
Es posible que veas una salida similar a esta:
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-25 12:10 UTC
Idle scan using zombie 127.0.0.1 (127.0.0.1:80); Class: Incremental
Skipping Idle Scan against localhost (127.0.0.1) -- you can't idle scan your own machine (localhost).
Nmap scan report for localhost (127.0.0.1)
Host is up.
PORT STATE SERVICE
8080/tcp unknown http-proxy
Nmap done: 1 IP address (1 host up) scanned in 2.03 seconds
Observa que Nmap informa que está omitiendo el escaneo ocioso. Esto se debe a que estás intentando usar tu propia máquina como zombie y objetivo. En un escenario del mundo real con hosts separados, esta técnica sería muy efectiva para el escaneo encubierto.
Aunque tenemos esta limitación en nuestro entorno de laboratorio, este ejercicio aún te muestra cómo usar el comando de escaneo ocioso. En la práctica, elegirías un host diferente como zombie, y el escaneo se ejecutaría sin este mensaje de advertencia.
Esta técnica avanzada es muy valiosa cuando necesitas el máximo sigilo. Hace que sea extremadamente difícil para el objetivo rastrear el escaneo de regreso al escáner real.
Comparando Resultados de Escaneo
Comparemos las salidas de ambos tipos de escaneo para ver las diferencias:
echo "=== Resultados del Escaneo Sigiloso ===" && cat /home/labex/project/stealth_scan.txt
echo "=== Resultados del Escaneo Ocioso ===" && cat /home/labex/project/idle_scan.txt
Ambos escaneos detectaron correctamente el puerto 8080 abierto, pero el escaneo ocioso muestra información adicional sobre la técnica de escaneo utilizada.
Limpieza
Antes de finalizar, limpiemos nuestro entorno deteniendo el servidor web:
pkill -f "nc -lvp 8080"
Esto termina el proceso netcat que ejecuta nuestro servidor web en el puerto 8080.