Atacs al servei DHCP (I): Stravation (DoS) – Consumir les adreces disponibles.

Al mòdul de Serveis en Xarxa estem començant per veure el servei DHCP.  Aquests és un d’aquells serveis que, tot i la seva gran utilitat, el perdem de vista donada la seva quotidianitat.  Des del punt de vista de la seguretat en les infraestructures TIC poc jugar un paper força interessant per a un atacant.

En primer lloc, l’ús d’aquest servei és intrínsecament profitós per a un atacant ja que obté les dades més importants de la xarxa on es troba: El rang de IPs, les possibles sub-xarxes, la passarel·la de sortida, servidors DNS interns i l’adreça del propi servidor DHCP.  Un conjunt de dades ja de per si mateixes prou interessant, sobretot per l’esforç d’haver connectat un cable o establert un vincle amb un punt d’accés WiFi.

No cal aprofundir gaire per veure que restringir l’accés a aquesta informació és il·lògic en el sentit que estaríem generant el problema primigeni que va generar el seu moment la necessitat de un sistema automàtic de configuració de la xarxa en els equips: la micro-gestió.

En segon lloc un atacant pot intentar realitzar atacs MitM mitjançant tècniques de DHCP Spoofing, és a dir, suplantant al servidor DHCP legitim. D’aquesta manera l’atacant proporcionaria als equips configuracions de xarxa manipulades que redirigeixin el flux de comunicacions cap a la seva màquina (falsificant la passarel·la de sortida i un segon atac de DNS Spoofing).  Permeteu-me que aquest atac el deixi per a proper post.

Finalment tindríem un atac menys sofisticat, molt sorollós i fins a cert punt menys punyent (no s’obtenen dades sensibles i el “mal” és temporal): Els atacs DoS (Deny of Service).  Aquests tipus d’atacs cerquen saturar el servidor de manera que aquest deixi de donar servei als client legítims, o si més no, aconseguir degradar la qualitat del servei.  Si això ho traslladem al entorn de servidors DHCP obtenim tota una xarxa d’equips incapaços d’establir comunicacions, tant cap a Internet com entre ells mateixos.  Un festival!

Una eina força interessant per a realitzar aquests tipus d’atacs, i que ve inclosa a la distribució Kali Linux, és Yersinia.  Aquesta és una eina especialitzada en diferents atacs i proves a protocols de xarxa com poden ser spanning tree, vLans, etc.  Cal fer-hi un estudi a fons.  Tanmateix per atacar el servei DHCP és tan senzill com emprar aquesta comanda:

yersinia dhcp -i eth0 -attack 1

El primer paràmetre queda clar, el protocol a atacar, en aquest cas dhcp.

El segon paramente -i eth0 és la interfície per on llançar l’atac.

Finalment el tercer paràmetre marca el tipus d’atac, en aquest cas és 1, i les seves opcions son:

0: Paquests RAW

1: Paquests DISCOVER

2: Cerar un servidor DHCP fals

3: Paquets RELEASE

Fixeu-vos que en aquest atac, utilitzant paquets de DISCOVER (cerca del servidor DHCP) el que estem fent és estressar al servidor fins que queda KO.  Finalitzarem l’atac prement qualsevol tecla però el servidor trigarà encara una estona a recuperar-se del ensurt.  A més, els clients que ja tinguessin IP assignada no notaran l’atac i fins i tot aquells clients que encara tinguin l’assignació de IP “viva” podran connectar-se sense problemes.  Per tant en entorns on les màquines acostumen a estar connectades o els temps de vida de les associacions de IP siguin llargs, aquest tipus d’atac no serà gaire efectiu.

També és interessant l’atac 3, ja que en aquest cas també direm al servidor que els clients que ja disposen de IP la volen retornar, alliberant-la així per a ús d’altres equips.  Depenent de la configuració del servidor això pot provocar ràpidament la creació de IPs duplicades a la xarxa amb el desgavell que això comporta, tot un festival! Per desgràcia si ho provem de fer veurem que Yersinia encara no el té implementat.

Un altre eina molt i molt interessant per a realitzar aquests tipus d’atacs és Scapy.  En aquest cas es tracta d’un programa per fer “crafting” de paquets.  No cal dir que això ens dona un poder i flexibilitat enormes, però cal aprendre molt bé com funciona la eina.  Per llançar un atac DoS exhaurint les IPs disponibles hauríem de fer:

[root@host1 ]$ scapy
Welcome to Scapy (v1.1.1 / -)
>>> conf.checkIPaddr = False
>>> dhcp_discover =  Ether(src=RandMAC(),dst="ff:ff:ff:ff:ff:ff")/IP(src="0.0.0.0",dst="255.255.255.255")/UDP(sport=68,dport=67) /BOOTP(chaddr=RandString(12,'0123456789abcdef'))/DHCP(options=[("message-type","discover"),"end"])
>>> sendp(dhcp_discover,loop=1)
...............................................................^C
Sent 70 packets.

Per acabar us vull mostrar un script que automatitza tots aquests atacs, tant exhaurir les IPs del servidor com alliberar les IPs dels clients que ja disposin de les dades DHCP.  Es tracta de DHCPIG.PY  El seu ús no podia ser més simple, tan sols cal donar-hi com a paràmetre la interfície de xarxa per on volem llançar l’atac.  I per cert, utilitza com a base el Scapy.

pig.py eth0

I si volem alliberar les IPs dels clients ja connectats:

pig.py --neighbors-scan-arp -r -g eth0

Tanmateix, com comentava al principi, aquest atac és molt sorollós i amb un sniffer de xarxa com pot ser WireShark és molt senzill determinar la causa de tot aquest caos i també la MAC de la màquina que l’està originant.  A partir d’aquí la localització física del atacant passa  a ser una opció força factible, així que no feu bestieses! XD

Anuncis

~ per madyyelf a 4 Octubre 2013.