share

Ataque DoS con DHCP Starvation usando yersinia

Cómo funciona un servidor DHCP

Sea una red local LAN con uno o mas servidores DHCP ya configurados. Cualquier PC que quiera conectarse a LAN necesitará una dirección IP para poder hacerlo. Para ello emitirá en broadcast, o sea a todos los puestos de la red, un paquete llamado DHCP discover.

Cuando un PC emite un paquete en broadcast utiliza la IP 255.255.255.255 que es una IP reservada para el broadcast, es decir para enviar paquetes a todas las MAC de todas las tarjetas de red de la LAN.

Ese tipo de paquetes se envían al puerto 67 UDP y no son retransmitidos por el router. En la LAN pueden haber mas de un servidor DHCP y cada uno de esos posibles servidores DHCP responden a los paquetes DHCP discover con una oferta de IP. La primera de esas ofertas que reciba el cliente será respondida con un paquete DHCP request, y el servidor DHCP responde con un paquete DHCP ACK, y así se le cede al cliente la IP en régimen del alquiler. Este protocolo va sin autenticación, se usa la MAC.

Y esto precisamente constituye la debilidad del protocolo. El ataque que montaremos será uno que se llama DHCP Starvation que es un tipo de ataque DoS, que como todos sabéis, significa Denial of Service, esto es, denegación de servicio. La máquina atacante pedirá al servidor dhcp muchas IP usando direcciones MAC falsas. Así inundaremos de peticiones el servidor DHCP. La herramienta que usaremos se llama yersinia y está incluida en cualquier distribución parrot o kali. Esta herramienta quebrará el funcionamiento normal del protocolo pues ninguna se completará con el dhcp request o el dhcp ack. No aparecerán en el registro del servidor DHCP por esta razón, porque no se cierra el ciclo del protocolo, pero las direcciones IP se habrán agotado en segundos.

Creación de un servidor DHCP en Windows Server 2022

Nuestra red de trabajo va a ser muy simple. vamos a utilizar VMware para, no solamente levantar las máquinas, sino para construir la red donde están. para ello no podemos usar la versión gratuita, sino que usaremos la de pago, que se llama VMware workstation. Es decir, no utilizaremos el VMPlayer, sino el VMWorkstation que podéis descargar aquí:

https://mega.nz/folder/LF8URJDL#0QdnNigBwSS-ZvZywOhRNA

Lo primero que vamos a hacer es crear la red de área local con la que vamos a trabajar en el VM workstation. Para ello abrimos el workstation:

Seleccionamos Edit, Virtual Network Editor

Y ahora debemos crear una sola red local con los siguientes parámetros. No lo voy a describir paso a paso porque es trivial, y entiendo que todos vosotros sois capaces de hacerlo.

Una vez creada la red vamos a levantar la máquina Windows Server 2022, que se puede descargar de aquí:

https://home.mycloud.com/action/share/f7ddcf59-c064-4b56-aaf9-b17fe97c66d0

Realmente es una máquina sin licencia, pero viene con un período de prueba de unos 90 días, pasados los cuales la licencia puede rearmarse 2 veces mas. En otro post hemos explicado como se rearman licencias de Windows. Cuando venzan todos los rearmados siempre se puede eliminar la máquina y volverla a descomprimir. Descomprimiremos la máquina en una carpeta de nuestro laboratorio, cada cual donde lo tenga, y abriremos la máquina windows server 2022 con el workstation. La contraseña es Pa$$w0rd, pero os recomiendo cambiarla a 1234 simplemente por comodidad.

Nos autenticamos en la máquina windows server e instalamos las vmware tools, que pueden descargarse aquí:

https://home.mycloud.com/action/share/3eb0ace4-ff6e-4ab2-b9dc-40fa1a5e3990

Tampoco tengo que explicaros como se instala una aplicación dentro de windows, si estáis leyendo este post es que sabéis hacer eso.

Una vez hecho todo esto procedemos a crear el servidor DHCP en la máquina windows server 2022.

Si os habéis fijado, en los settings de la LAN virtual que hemos creado con el vmware workstation, ya viene un servidor DHCP. Ahora lo que haremos será desactivar ese servidor DHCP. Para ello entramos en:

Edit, Virtual Network Editor

Pulsamos “Change Settings”

Desactivamos “Use local DHCP service….”

Pulsamos “Apply” y “ok”

Ahora vamos a la máquina Server 2022, ejecutamos el server manager:

Dentro de server manager, nos vamos a dashboard, Add rules and features:

Pulsamos “Next” tres veces y marcamos “DHCP server”:

Pulsamos “Add features” en la ventana emergente

Y luego pulsamos “Next” tres veces seguidas y finalmente: “Install”. despúes de que finalice la instalación, pulsamos “Complete configuration”

Pulsamos “Next” y finalmente “Commit”:

Ya está creado el servidor DHCP. Ahora hay que configurarlo con una pila de direcciones IP que serán las que entregue a los PCs que quieran conectarse a la LAN. Es decir, vamos a decirle al servidor DHCP que rango de IPs puede usar. Para ello:

Desde server manager, vamos al menú “Tools”, seleccionamos la opción “DHCP”:

Desplegamos, el servidor y nos situamos en IPv4, botón derecho, seleccionamos “Add New Scope”:

Pulsamos “Next”. En name pornemos DHCP_YERSINIA:

Pulsamos “Next”

Introducimos el rango de direcciones IP, que irán desde la 100 a la 200 en /24 según la siguiente figura:

Pulsamos “Next” tres veces. Después introducimos la IP del Gateway que en nuestro caso es 10.10.1.2:

Pulsamos “Add” y luego “Next”.

Luego pondremos el servidor DNS en primer lugar. Si no tenemos claro cual es, siempre podemos poner el de Google: 8.8.8.8

 

Y ya estaría terminado de crear y configurar el servidor DHCP con una pila de 100 direcciones IP.

Ahora vamos a levantar una máquina Windows 11 cuya IP será 10.10.1.11.

La máquina de Windows 11 se puede descargar de:

https://home.mycloud.com/action/share/c83e32bc-7302-4e84-95c5-b1f5d9575513

Y vamos a entrar en la configuración de su tarjeta de red.

Para ello pulsamos “Start”, Settings, Network & Internet

Pulsamos en “Ethernet”

Pulsamos en en “Edit”:

Cambiamos de Manual a Automatic (DHCP). Esto hará que el win11 busque servidores DHCP en la red según el mecanismo que vimos mas arriba y obtenga de ese servidor DHCP la IP.

Pulsamos “Save”

Y ya entra en acción el servidor DHCP asignando la primera IP disponible en la pila al win11:

Además vemos que ya ha cambiado el servidor DNS a 8.8.8.8

Bien, con esto finalizamos la parte de configuración de un servidor DCHP y además hemos comprobado que funciona perfectamente haciendo la prueba con la máquina win11. Ahora vamos a proceder a atacar al Windows Server 2022 con un ataque DoS basado en DHCP Starvation usando Yersinia, una utilidad que tenemos instalada en nuestra máquina de ataque Parrot Security. Dicha máquina puede descargarse aquí:

https://home.mycloud.com/action/share/ec89935c-eeda-431a-8119-84174e4828b4

La password para dicha máquina es “toor”

Ataque DoS basado en DHCP Starvation usando Yersinia

En primer lugar levantamos la máquina Parrot Security. A la vez cerramos la máquina win11 que hemos utilizado antes. Pero antes volvemos el tipo de conexión DHCP a manual con la IP que tenía antes: 10.10.1.11/24.

Como dijimos antes el usuario/contraseña para nuestra máquina de ataque Parrot Security es root/toor

Una vez dentro de Parrot Security, abrimos un terminal y ejecutamos:

sudo su

E introducimos la password de root que es toor. Seguidamente vamos a abrir el wireshark que es un sniffer y con el que vamos a monitorizar los paquetes que circulan por la red. Para ello tecleamos:

wireshark

Y se abre un entorno gráfico del wireshark:

Pulsamos capturar, y entramos como filtro “dhcp”

A continuación, abrimos otra pestaña en la ventana del terminal, ya que la anterior está ocupada en la ejecución del wireshark. Pulsamos File, Open Tab y luego ejecutamos sudo su

A continuación tecleamos en el terminal:

yersinia -I

Es posible que yersinia exija modo de pantalla completa para ejecutarse. Dentro de yersinia, pulsamos barra espaciadora y luego pulsamos F2 para ponerlo en modo DHCP. Luego pulsamos x para ver los posibles ataques:

Pulsamos 1 para lanzar el ataque:

Cuando pasan unos segundos, pulsamos l (ele) en yersinia:

Y después q para que cese el ataque. Volvemos a wireshark, que no olvidemos que estaba activo y paramos la escucha. tras ello, ponemos el filtro:

dhcp && ip.src == 10.10.1.22

Y esto me da 100 direcciones IP ya bloqueadas:

Si vamos a la máquina Windows Server 2022, veremos que las 101 direcciones IP siguen disponibles, pero esto no es así. Esto ocurre poque como dijimos mas arriba, yersinia no llega a cerrar el ciclo del protocolo DHCP y para el windows server no procede registrar, pero la IP se ha gastado.