DHCP starvation: Dejando fuera de juego al server!

1 comment
Hola a todos, en este nuevo post veremos un poquito sobre el ataque DHCP starvation que afecta al servidor del mismo agotando su pool de direcciones, el mismo da lugar a un ataque DHCP ROGUE (MITM). Veremos además como explotarlo con yersinia y formas de mitigarlo. Espero que esta entrada sea de su agrado, comencemos!

¿Que 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

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

Entre las tantas opciones que tenemos se encuentra el modo grafico con yersinia –G y para tener mas informacion acerca de los parámetros para el análisis a realizar basta con el siguiente comando:


Snifer@L4bs#: yersinia protocol –h 

Para realizar una muestra configure un DHCP server en un win XP con TFPD32, al mismo se asignarón un pool de 10 direcciones.

Con yersinia –I tendremos la interface
Presionamos F2 para acceder al DHCP MODE.



Presionando la X , accedemos al panel de ataque donde tendremos algunas opciones como se ve en la siguiente imagen



Ya que nuestro objetivo es inundar de peticiones DISCOVER, seleccionamos la opcion 1 y la aplicación comenzará a enviar estos packets.

Mirando un poco el DHCP server veremos que acabamos el POOL de 10 direcciones que le asignamos previamente.


En github se encuentran bastantes recursos en Python para realizar estos ataques, además de que nosotros podemos armar un ataque con Scapy por ejemplo.

Mitigación

Veremos muy rápidamente algunas maneras de evitar tener un ataque de estas características:

DAI (Dynamic Arp Inspection)

Es una funcionalidad que consiste en verificar que las peticiones y respuestas ARP sean validas, opcionalmente utiliza la tabla IP-MAC proporcionada por DHCP Snooping.

Port Security

Es una función de lo Cisco switch usada para mitigar este tipo de ataques, lo que hace es limitar el numero de direcciones MAC para un puerto.

DHCP Snooping

Otra de las funciones que proveen los switches, su principal función es prevenir que un servidor DHCP rogue se cuele en la red. En el switch se definen los puertos confiables para que transite el trafico DHCP server.

En próximos post hablare un poco más de estas funcionalidades.
Hasta la próxima!

Jorge Gabriel Mac Tier
@gabdotsh

1 comentario

  1. Me gusta mucho lo completos que son vuestros post, son muy interesantes y me gustaría poner en práctica vuestros consejos, solo por probar, no para hacer el mal :). Un saludo.

    ResponderEliminar