share

Escaneo Idle con Nmap

Introducción al escaneo idle usando Nmap

El escaneo idle o escaneo inactivo se realiza sobre la máquina víctima aún cuando esta tiene el firewall levantado. Elegida la máquina víctima de la cual conoceremos la IP, habremos de seleccionar una segunda máquina, llamada máquina zombi que nos servirá de puente para realizar el ataque.

Esta máquina zombi ha de estar en la misma LAN o intranet que la máquina víctima y ha de conocerse su IP. Hay que tener en cuenta que las máquinas Windows no se dejan hacer un escaneo idle. Así que escogeremos:

Máquina atacante: ANTUNIX con IPANTUNIX

Máquina víctima: MINT con IPMINT

Máquina zombi: El Router con IPRouter

Escogemos como máquina zombi el router por comodidad. Al final lo que nos interesará es su dirección IP. Por razones de seguridad no escribo las direcciones IP reales. Cada uno utilizará las suyas al hacer este problema. Todo se desarrolla en la red interna.

Cada paquete enviado por la red tiene un número de secuencia. Para entender esto veamos qué aspecto tienen estos paquetes tcp. Para ello vemos el aspecto de la cabecera de un mensaje o paquete TCP:

Ahí tenemos ese número de secuencia. La idea es la siguiente: 

a) La máquina atacante envía un paquete SYN, ACK a la máquina zombi

b) La máquina zombi al no entender la comunicación incompleta que le envía la máquina atacante, devuelve un paquete RESET donde va el número de secuencia. Imaginemos que es el 3268. El atacante lo apunta.

c) Ahora la máquina atacante envía un paquete SYN a un puerto de la máquina víctima pero poniendo como origen la IP de la máquina zombi. Ahora puede ser que el puerto esté abierto o cerrado. Si está abierto, la máquina víctima devuelve un paquete SYN, ACK al zombi, pues cree que es el zombi quien le está hablando.

d) Pero el zombi realmente no se lo ha pedido a la máquina víctima y por lo tanto el zombi responde con un segundo RESET a la máquina víctima con el número de secuencia a 3269.

e) La máquina atacante envía un segundo paquete SYN, ACK a la máquina zombi y la máquina zombi enviará otro RESET con 3270. Eso implica que el puerto está abierto. Eso es así porque la máquina atacante ve un salto de 3268 a 3270. Si no hay salto, el puerto está cerrado.

No es necesario apoderarse de la máquina zombi. Si la máquina zombi es Windows no vale porque el FW de Windows detecta esto.

Esto que parece muy difícil explicarlo, y también largo se hace de forma muy sencilla, rápida y automatizada con el Nmap.

Vamos a hacer un escaneo normal desde la máquina ANTUNIX hacia la máquina MINT:

En primer con ifconfig, descubro la dirección IP de la red interna. La LAN, si estamos en nuestra casa será algo parecido a:

192.168.X.0

Siendo X cualquier número entre 0 y 255. Supongamos que la dirección IP de nuestra red interna es:

192.168.11.0 /24

En cualquier caso deberá estar en el rango de las direcciones privadas:

Clase A -> 10.x.x.x /8

Clase B -> 172.16-31.x.x /16

Clase C -> 192.168.0-255.x /24

sudo nmap -sn 192.168.10.0/24

Con esta instrucción descubro los host aptos para hacer de máquina zombi en el escaneo Idle.

Voy a utilizar la IP del router para que actúe como máquina zombi. Si hago un nmap normal a la máquina víctima: (sin firewall)

sudo nmap IPMINT

Observamos que sin firewall, alguna información da sobre la máquina víctima. Levantemos ahora el firewall en la la máquina víctima.

Y volvemos a ejecutar la instrucción nmap desde la máquina atacante:

Si hacéis:

sudo nmap -Pn IPMINT

Veréis que el FW de MINT está funcionando ok y el escaneo nmap no descubre ninguna información. Mantenemos el firewall levantado en mint e intentamos un escaneo idle usando el router como máquina zombi.

sudo nmap -Pn  -sI   IPRouter   IPMINT

Con este tipo de escaneo debería dar mas información. La idea del post no es tanto que funcione, que esto está cada vez mas solucionado, sino ilustrar como se idean ataques aprovechando los protocolos, en este caso el protocolo TCP.