DHCP Starvation con Yersinia: Dejando fuera del juego al Server

Daniel De Los Santos Lugo
5 min readDec 18, 2020

Antes de todo ¿Qué es DHCP?

DHCP (Dynamic host configuration protocol) es un protocolo cliente/servidor que funciona en una red para asignar dinámicamente IPs.

Este protocolo necesita un servidor que posee una lista de direcciones IP dinámicas y las va asignando a los clientes conforme éstas van quedando libres, sabiendo en todo momento quién ha estado en posesión de esa IP. Así los clientes de una red pueden conseguir sus parámetros de configuración automáticamente, utiliza los puertos 67 UDP para el server y 68 UDP para el cliente. Cuenta con un handshake de 4 pasos.

DHCP Discover: Paquete broadcast para ubicar al servidor DHCP.
DHCP Offer: El servidor DHCP responde ofreciendo la configuración al cliente.
DHCP Request: El cliente acepta los parámetros recibidos.
DHCP ACK: El servidor le asigna la IP a esa dirección MAC

Que es DHCP starvation ?

Starvation es un ataque que se realiza contra el servidor DHCP con el fin de inundarlo de peticiones DHCP DISCOVER con Spoofed MAC, dejándolo fuera de juego agotando su espacio de direcciones asignables por un periodo de tiempo. Esto da lugar a un DHCP ROGUE ATTACK.

Un poco acerca de Yersinia

Yersinia, es un framework utilizado para analizar y testear la capa 2 (data link layer) del modelo OSI, algunos de los protocolos que podemos atacar son:

STP, CDP, DTP, HSRP, 802.1q, 802.1x, ISL, VTP y el que más nos interesa ahora DHCP.

Intro

Vamos a realizar un ataque al servidor DHCP dentro de una LAN para consumir todas sus direcciones IP dinámicas, con el fin de agotar todo el rango de direcciones e impedir que otros equipos renueven o consigan una nueva.

Hay que tener en cuenta que los equipos que ya estuvieran conectados a la red no ser verán afectados por esta técnica de DoS.

Entorno

El entorno que vamos a utilizar es el siguiente:

  • Red de área local (LAN).
  • Router/GW con servidor DHCP como objetivo del ataque.
  • Host atacante con Parrot instalado.
  • Host víctima con Windows XP instalado.
Esquema de ataque DHCP starvation

Ataque

Estado inicial

Arrancamos el programa Wireshark desde el equipo atacante, seleccionando la interfaz de red utilizada para lanzar el ataque (eth0 en nuestro caso) y filtrando por el parámetro bootp. De esta forma veremos todas las peticiones realizadas con el protocolo DHCP desde el equipo que va a realizar masivamente este tipo de tráfico. En estos momentos se encuentra vacío de este tipo de peticiones.

Inicio ataque

Iniciamos el ataque con Yersinia en modo gráfico con el siguiente comando:

yersinia -G

Se inicia la interfaz gráfica del programa.

Seleccionamos la interfaz en la opción Edit interfaces del menú superior. En nuestro caso seleccionamos la eth0.

Seleccionamos el tipo de ataque, en este caso sending DISCOVER packet con DoS seleccionado, indicando que será un ataque de denegación de servicio.

Lanzamos el ataque tras pulsar el botón OK y observamos en Wireshark como se inunda al servidor destino con peticiones DHCP Discover, consumiendo todas las direcciones IP disponibles.

Desde la consola de Yersinia vemos las peticiones que está enviando y como los paquetes DHCP van en aumento.

Host víctima

Si arrancamos el host víctima vemos como no se el asigna dirección IP alguna.

Fin ataque

Si estamos realizando el ataque desde nuestra LAN doméstica es posible que perdamos la conexión a Internet desde el equipo con el que estamos lanzando el ataque.

Paramos el ataque desde el menú List attacks.

OJO!!! En ocasiones no es suficiente con solo parar el ataque y tenemos que salir del entorno gráfico de Yersinia, ya que aunque el contador de paquetes de DHCP no sigue aumentando si que vemos más envíos de paquetes Discover en Wireshark hacia el servidor. Incluso puede que el PC atacante quede bloqueado por el intenso tráfico de red que ha generado.

Recuperamos el servicio, tanto el acceso al Gateway dentro de la LAN como el acceso desde el servidor víctima. Es posible que tengamos que forzar el renovar la IP o incluso reiniciar la máquina.

Conclusión

Con esta técnica de DoS observamos lo fácil que puede ser bloquear la conectividad de una red. Por eso es muy importante implementar medidas de seguridad en los servidores DHCP, si fuera posible, y sobre todo identificar claramente a quien se le da acceso a la red.

Algunas medidas a tener en cuenta podrían ser:

  • Control de acceso por MAC.
  • No permitir acceso a la DMZ.
  • Deshabilitar administración del router vía Wifi.
  • Utilizar contraseñas seguras.

Recursos

Protocolo DHCP, pinchar aquí.

DHCP Starvation, pinchar aquí.

Yersinia, pinchar aquí.

DHCPig, pinchar aquí.

Whireshark, pinchar aquí

Parrot OS, pinchar aquí

Gracias por tomar tu tiempo y leerlo!!!

--

--