Un ejemplo de laboratorio para explotar una de las vulnerabilidades del protocolo DHCP, consistente en un ataque de suplantación de servidor DHCP (DHCP spoofing). Mostramos alguna de las medidas existentes para evitar este tipo de ataques, mediante DHCP snooping.

Laboratorio inicial

Se describe, en la imagen, el escenario de partida, que tiene la organización de ejemplo, que será la que reciba el ataque de DHCP spoofing, explotando una de sus vulnerabilidades:

Laboratorio inicial

Como se puede observar, en la imagen, el equipo marcado en rojo es el propio equipo con Kali Linux, en el que se despliega el laboratorio de red con los distintos switches (swX), cortafuegos (fwX), equipos (pcX) y diferentes VLAN y redes.

Para este ejemplo de explotación de vulnerabilidad DHCP, únicamente usaremos el equipo Kali Linux, desde el que ejecutaremos metasploit para simular un servidor de DHCP malicioso y el PC pcA1, que es el pcL1 (con IP 10.1.1.11).

Ataque DHCP Spoofing mediante servidor DHCP no autorizado con metasploit en Kali Linux

Abriremos una consola de shell de comandos en Kali Linux, y accederemos como superusuario root, con el comando:

sudo su

Iniciaremos el entorno de pruebas, el laboratorio de red y equipos virtuales, en nuestro caso con:

Para la simulación del ataque DHCP, necesitaremos asignar a una de las interfaces de red de Kali Linux la dirección IP de un rango del laboratorio anterior, en concreto, la IP 10.1.12.4. De esta forma, la máquina Kali Linux quedará conectada a la red interna del laboratorio.

Ataque DHCP Spoofing mediante servidor DHCP no autorizado con metasploit en Kali Linux

Anotaremos la dirección MAC de este adaptador de red, para posteriormente poder realizar las comprobaciones.

Iniciaremos metasploit con el comando:

Una vez iniciado metasploit, crearemos un servidor DHCP malicioso, que sería el que creara un atacante, para ello, desde la consola de metasploit ejecutaremos los siguientes comandos:

Ataque DHCP Spoofing mediante servidor DHCP no autorizado con metasploit en Kali Linux

Lo que hará metasploit será activar un servidor DHCP con los siguientes datos:

  • netmask : valor de la mascara de red que distribuirá el DHCP malicioso a los equipos cliente.
  • srvhost: dirección IP de la máquina Kali Linux en la red interna, en la simulación de ataque, será la dirección IP del equipo atacante desde el que se perpetrará el ataque DHCP Spoofing. Este será el equipo que reciba todos los datos de los equipos comprometidos.
  • dhcpipstart: especifica la primera dirección IP del rango de direcciones que puede asignar el servidor DHCP malicioso.
  • dhcpipend: especifica la última dirección IP del rango de direcciones que puede asignar el servidor DHCP malicioso.

El servidor DHCP malicioso queda iniciado y esperando peticiones de clientes.

Tras iniciar el DHCP, comprobaremos que, efectivamente, el ataque por servidor DHCP malicioso ha sido efectivo, dado que si accedemos a un equipo del laboratorio y reactivamos el DHCP (esto podría hacerse en el arranque de un equipo real), con los comandos:

Podremos comprobar que el equipo ha obtenido la configuración de red del DHCP malicioso. Para ello, ejecutaremos estos comandos:

Ataque DHCP Spoofing mediante servidor DHCP no autorizado con metasploit en Kali Linux

De esta forma, habremos conseguido llevar a cabo un ataque de suplantación del servidor DHCP, un ataque de tipo
DHCP spoofing.

Como se puede observar en el resultado del comando route -n (imagen anterior), el equipo pcL1 tiene como ruta por defecto la pasarela (gateway o puerta de enlace) de la máquina atacante, es decir, la máquina Kali Linux en la red interna (10.1.12.4), que es la que simula el ataque. Por ello, todo el tráfico del pcL1 pasará por la máquina atacante, que actúa como MitM (man in the middle).

Evitar ataque de DHCP Spoofing mediante DHCP Snooping

Un método drástico para evitar este tipo de ataques es desactivando el DHCP en todos los equipos de nuestra organización, estableciendo la configuración IP de forma estática (fija).

En caso de no poder llevar a cabo la medida anterior, otro método menos drástico para evitar los ataques DHCP Spoofing es activando la función DHCP Snooping en los switches.

Para bastionar el switch (conmutador) mediante la función DHCP Snooping, seguiremos los siguientes pasos. El proceso variará en función de la marca y modelo del switch, aunque la idea general es la misma.

En el ejemplo, usamos un switch Extreme Networks, con sistema operativo EXOS. Accederemos a la configuración del switch de nuestra red y ejecutaremos el siguiente comando para activar el DHCP Snooping, teniendo en cuenta que si tenemos un servidor de DHCP autorizado (no malicioso), dejará de funcionar temporalmente (hasta que se agreguen las reglas de acceso DHCP):

Evitar ataque de DHCP Spoofing mediante DHCP Snooping

El comando anterior activará la seguridad DHCP Snooping para todos los puertos del switch. Si ahora intentamos volver a habilitar el DHCP en el equipo anterior, ahora no debería asignarle IP el DHCP malicioso. Para volver a intentar asignar configuración DHCP desde el equipo, ejecutaremos los siguientes comandos (en el equipo de pruebas pcL1)

Al hacer un:

Comprobaremos que ahora, el DHCP malicioso no ha sido capaz de asignar IP al equipo, dado que lo ha impedido la política de seguridad DHCP Snooping del switch:

Evitar ataque de DHCP Spoofing mediante DHCP Snooping

Desde el switch, podremos comprobar que la MAC del equipo ha producido una violación de las políticas de DHCP, por lo que se ha invalidado la efectividad del intento de ataque por DHCP Snooping. Ejecutando el siguiente comando en el switch, obtendremos la MAC del equipo que produce la violación (y el puerto por el que se conecta):

Evitar ataque de DHCP Spoofing mediante DHCP Snooping

Habilitar puertos del switch para permitir servidor DHCP autorizado

Tras «capar» todos los puertos para asignación de DHCP, si queremos tener este servicio habilitado en nuestra red, iniciaremos un servidor de DHCP autorizado (no malicioso), desde la plataforma que consideremos (DHCP de Windows, DHCP de Linux, DHCP de cortafuegos, DHCP de switch, etc.). En nuestro caso, al ser un entorno de laboratorio, iniciaremos el servicio DHCP ejecutando, desde la consola shell de Kali Linux, el comando:

Con el servidor de DHCP autorizado activado, aunque volvamos a intentar asignar IP desde el PC de pruebas (pcL1), con el comando:

Comprobaremos en el switch que sigue sin recibir configuración de red DHCP, ejecutando:

Vuelve a aparecer una violación de la política de seguridad:

Habilitar puertos del switch para permitir servidor DHCP autorizado

Esto es así porque hemos habilitado el DHCP Snooping para todos los puertos del switch. Ahora, para habilitar el DHCP en uno de los puertos (el puerto 1, donde está conectado el pcL1), desde el switch, ejecutaremos el siguiente comando:

Habilitar puertos del switch para permitir servidor DHCP autorizado

Si ahora volvemos a intentar reactivar el servicio DHCP en el equipo de pruebas pcL1, con los comandos:

Ahora sí, revisaremos que al equipo se le ha asignado una dirección IP del DHCP autorizado, ejecutando (en el pcL1):

Comprobaremos que se le ha asignado una IP del DHCP autorizado (10.1.12.0), en nuestro caso la 10.1.12.11, y puerta de enlace autorizada 10.1.12.1:

Habilitar puertos del switch para permitir servidor DHCP autorizado

En el ejemplo anterior hemos permitido todo el tráfico DHCP, venga del servidor que venga, para el puerto 1. Lo ideal, para mayor seguridad, es permitir únicamente un servidor DHCP determinado en todo el switch. Por ejemplo, si nuestro servidor DHCP tiene de IP la 10.1.3.1 y queremos permitir el tráfico DHCP únicamente desde este servidor, en el switch, ejecutaremos el siguiente comando:

Habilitar puertos del switch para permitir servidor DHCP autorizado

El comando anterior permitirá el tráfico DHCP únicamente proveniente de la IP 10.1.3.1, asegurando que sea solo del servidor DHCP autorizado.