Cargando



Ataque DHCP Spoofing Simple

Este tutorial muestra cómo mediante DHCP es posible inducir una situación de intermediario o ataque MitM (Man in the Middle). Se utilizan herramientas y comandos simples en GNU/Linux para aplicar el ataque DHCP Spoofing.


nov 13 2014 05:54
Profesional
Total de Apartados : 6
dic 03 2016 21:37

Siguiendo con la colección de ataques informáticos “simples”, una variante interesante de ataques MitM puede ser generada a partir de una técnica de engaño (Spoofing) utilizando el protocolo DHCP.

 

DHCP
Dynamic Host Configuration Protocol, es un protocolo de red, basado en el paradigma cliente/servidor, utilizado para la asignación automática de parámetros de configuración de red.

 

En una red LAN habitualmente se configura un servidor DHCP dónde se indican las configuraciones que deben otorgarse a los clientes DHCP, sea Gateway, DNS, Máscara de subred y por supuesto dirección IP (ésta última es tomada de un pool de direcciones o asignada de una lista estática a partir de la MAC del cliente).

 

Gracias a DHCP, cuando un host es conectado a la red, las configuraciones y parámetros mencionados son aplicados automáticamente y no se requiere intervención del administrador de la red. Un caso típico de esto es cuando conectamos un laptop a la red doméstica y el modem nos asigna la configuración de red adecuada.

 

Funcionamiento general
El funcionamiento normal del protocolo DHCP indica que:
  • Inicialmente un host cliente debe enviar al Broadcast de la red un paquete “DISCOVERY” para solicitar se le asignen y envíen los parámetros de configuración
  • Cada servidor DHCP de la red, recibe el mensaje y responde con un paquete “OFFER” en el que incluye información relativa a la configuración asignada.
  • El cliente puede seleccionar total o parcialmente los parámetros recibidos y responder con un mensaje “REQUEST” solicitando se le asignen dichos parámetros.
  • Finalmente, el servidor valida la asignación de estos parámetros y responde con un mensaje “DHCP ACK” indicando al cliente que la configuración ha sido reservada.

 

El servidor DHCP “conoce” aquellas direcciones IP que ha asignado como así también las direcciones MAC de los equipos a los que ha “configurado”.

 

Normalmente la dirección IP tiene un “tiempo de alquiler DHCP” denominado “DHCP lease time”, que básicamente indica el tiempo durante el que se asigna la dirección IP al host. Cumplido este tiempo, la dirección IP podrá ser renovada (se reinicia un conteo de tiempo de alquiler) o bien se asigna una nueva dirección.

 


1. DHCP Spoofing, Simple


DHCP Spoofing
La técnica de ataque de engaño DHCP consiste básicamente en la asignación de parámetros de configuración de DHCP “desde un servidor DHCP” no autorizado en la red.

 

El escenario más Simple toma lugar cuando un atacante inicia una instancia de servidor DHCP en la LAN ofreciendo configuraciones IP a los host que lo soliciten. En este punto, el atacante entra en condición de carrera con el DHCP legítimo de la red.

 

Es posible que unas veces un host tome la configuración del Atacante y otras las del DHCP legítimo.
El atacante debe conocer la configuración de la red y podrá simular una asignación correcta al host (por ejemplo asignando la dirección IP que le habría asignado anteriormente el DHCP legítimo), pero indicando por ejemplo como Gateway o puerta de enlace predeterminada, la dirección IP del Atacante; de este modo el Atacante se convierte en la puerta de enlace predeterminada del host y gana una posición de intermediario.

 


2. Prueba de concepto


Alice es un host de la red, el servidor DHCP de la misma le asigna una dirección IP mediante DHCP.
Existe un atacante que ha iniciado un servidor DHCP con una configuración especialmente manipulada, indicando que dirección IP debe asignarse a Alice y en particular que la dirección IP del Atacante debe ser indicada como puerta de enlace predeterminada.

 

Si Alice solicita configuración mediante DHCP, es posible que el Atacante gane la carrera al DHCP legítimo y logre reconfigurar la puerta de enlace predeterminada de Alice, forzándola a utilizar como puerta de enlace predeterminada al Atacante.

 

Sistemas Involucrados
Alice:
Dirección MAC: AA:BB:CC:22:33:44
Dirección IP: 192.168.1.198/24
OS: Windows XP

 

Gateway de la red: (DNS + DHCP):
Dirección IP: 192.168.1.1/24
OS: openwrt
dominio: casa

 

Atacante:
Dirección MAC: AA:BB:CC:88:88:88
Dirección IP: 192.168.1.124/24
OS: GNU/Linux Ubuntu 14.04
Dominio: dhcp.spoofed.casa

 

 


3. Escenario Normal


Primero Alice solicita una IP al servidor DHCP de la red; en windows puede utilizarse el terminal para simular esta acción con el comando:
C:\ipconfig /renew
El servidor DHCP de la red asigna a Alice una dirección IP y demás parámetros de la red. Entre estos parámetros se ha indicado que la dirección IP de la puerta de enlace predeterminada es 192.168.1.1

 

1.png

 

Si se ejecuta una traza hacia 8.8.8.8 en la terminal de Alice con el comando:

C:\tracert 8.8.8.8 -d
Puede observarse que el primer salto es la puerta de enlace predeterminada de la red, es decir, 192.168.1.1:

 


2.png

 

 


4. Escenario ataque sobre Alice


El atacante desea aplicar una técnica DHCP Spoofing sobre Alice.
Para ello puede identificar la dirección IP de Alice mediante el DNS local (nslookup), utilizando nbtscan, o cualquier otro método.

 


3.png

 

El Atacante instala un servidor DHCP, por ejemplo isc-dhcp-server. Para ello en Ubuntu ejecutar en una terminal:

$ sudo apt-get install isc-dhcp-server
Para configurar el servidor DHCP el Atacante utiliza datos conocidos, como la IP de Alice, MAC de Alice (gracias ARP), Subred, DNS, etc. La configuración se realiza mediante la edición del fichero dhcpd.conf, en una terminal del
$ sudo vim /etc/dhcp/dhcpd.conf
Para este caso de estudio, el fichero de configuración debe lucir así:

 

4.png

 

La sección “subnet” define la subred, máscara, puerta de enlace predeterminada de la red, servidor de nombres, etc.
Se ha especificado también como dominio dhcp.spoofed.casa (a propósito, sólo para resaltarlo en las capturas de este tutorial).

 

Nótese que debajo, se ha especificado explícitamente una configuración para el host de Alice (bien diferenciado por su dirección MAC). En particular, se ha especificado como puerta de enlace para Alice, la dirección IP del Atacante mediante la instrucción:

option routers 192.168.1.124
Y se ha forzado que se asigne la IP 192.168.1.198 a la MAC de Alice, respetando la configuración que asignó inicialmente el DHCP legítimo de la red:
...hardware ethernet AA:BB:CC:22:33:44fixed-address 192.168.1.198...
Una vez configurado, el atacante inicia el servicio de DHCP con el comando:
$ sudo /etc/init.d/isc-dhcp-server start
Estaría iniciado.

 


5. Alice es engañada


Para simular la condición de carrera, en un entorno controlado puede obligarse a Alice a volver a solicitar configuración mediante DHCP.

 

Para ello, Alice libera la dirección IP asignada (ejecutar en una terminal de Alice el comando):

C:\ipconfig /release

5.png

 

Luego solicita nuevamente una dirección IP:

C:\ipconfig /renew
Si el atacante “gana la carrera” al servidor DHCP legítimo de la red, se asignarán los parámetros de configuración DHCP preconfigurados:

 

6.png

 

Alice ha obtenido la dirección IP “correcta” y se le ha asignado como puerta de enlace predeterminada la dirección IP del Atacante. Nótese el dominio “dhcp.spoofed.casa, a modo de referencia respecto a la configuración inicial. A partir de este punto, Alice enviará los paquetes destinados a Internet al Atacante, dado que se le ha indicado que la dirección IP 192.168.1.124 es su puerta de enlace predeterminada. Si desde la terminal de Alice se ejecuta una traza a 8.8.8.8, se puede observar el cambio en el primer salto:

 


7.png

 

 


6. Consideraciones Finales


Adicionalmente el Atacante podría configurar el reenvío de paquetes y con iptables hacer un enmascaramiento para controlar la situación MitM. No se ha incluido dicha configuración ya que no es parte de la prueba de concepto de DHCP Spoofing pero vale la pena mencionarlo.

 

Existen otras técnicas un poco más complejas para realizar DHCP Spoofing, esta es una de las más simples y, casualmente, una de las más frecuentes.

 

Una ocurrencia típica de este ataque (aunque sin intención dañina) suele darse en redes donde un usuario conecta de manera incorrecta un router inalámbrico para acceder mediante wi-fi a la LAN. Si se conecta un puerto LAN (lo correcto sería conectar el puerto WAN) a la red local, el router ofrecerá servicio DHCP a los hosts de la red local, compitiendo con el servidor DHCP legítimo de la red (por ejemplo el router del ADSL).

 

En redes administradas, suele utilizarse la funcionalidad "DHCP Snooping" para mitigar este tipo de ataques. Básicamente lo que se hace es indicar a los Switches el puerto dónde el DHCP legítimo está conectado. De este modo se indica "el camino" a través de los Switches por el cual se permite tráfico de mensajes de servicio DHCP.


¿Te ayudó este Tutorial?


7 Comentarios

Opino igual que tu, es una de las formas tipicas de ataque, al ser de las mas simples se convierte en una de las mas peligrosas.

Enhorabuena por este genial tutorial, maestro del Hack.

Ernesto Viu
nov 14 2014 21:28
Me ha venido bien la explicación.. muy útil. Salu2

Ramon Godin
nov 16 2014 18:35
Buff me encantó este tutorial. gran aporte Silvestre. Ya te sigo.
Gracias Silvestre, al entender esto ya no me atacarán Man in the Middle gracias a ti!!!

Silvestre Figueroa
nov 18 2014 19:49
Que bueno les haya interesado el tema. Estos ataques simples a veces tienen un gran impacto, conocerlos nos permite mitigarlos.

Lucas Rodriguez
nov 20 2014 19:25

Que bueno les haya interesado el tema. Estos ataques simples a veces tienen un gran impacto, conocerlos nos permite mitigarlos.


Desde luego que son útiles. Yo también te sigo, me has ayudado a entender la técnica.
Bien montado y explicado, me ha parecido muy interesante. Gracias por el aporte Silvestre.
No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X