Atac arp & spoof dns.

Anem a fer un atac mitjançant la tècnica coneguda com “Man in the Middle” o home en el mig. Potser per internet hi ha molts manuals sobre açò, pero jo vaig a fer el meu basant-se en la meua experiència, i animant a tot el que ho probe a comentar la seua.
L’objectiu d’aquest atac és demostrar que una xarxa local típica no és segura i que amb poques ferramentes i poc temps d’aprenentatge es possible extraure dades que viatgen per la xarxa en protocols no encriptats, ademés que aquest tipus d’atac és bastant dificil de detectar i parar si no es té coneiximent adecuat.

Aquest article està destinat a aquells usuaris (locals) i administradors que vulguen probar la seguretat de la seua pròpia xarxa i/o que tinguen intenció de desenvolupar tècniques per a estar preparats contra aquest tipus d’atacs, en ningun moment incite a provar-lo fora de la vostra xarxa, ja que podeu donar un mal de cap a mes d’un administrador i ademés no és molt étic espiar trafic sense permis.. i supose que serà il·legal ,així que, avisats esteu.

Com he comentat, la técnica utilitzada sera la de man in the middle. Aquesta te un funcionament bastant simple, hem de tindre primer una base de teoria de xarxes per a entendre aquest conceptes, així que abans de llegir aquest article, convindria repasar:

Una vegada dominats mes o menys aquestos temes (no fa falta saberho de memòria, simplement saber que és cada cosa i un poquet com funciona).

Segurament és te el mite de que una xarxa amb switchos és segura.Val, mes segura que amb hubs és, però pregunte: Absolutament segura?
Per a qui no ho sapiga, un switch (conmutador) té la diferència fonamental respecte a un hub de que actua en diferents capes de xarxa.. Els elements de una xarxa s’organitzen en capes, així, la capa 1 és la física (cables, conectors) la 2 la d’enllaç, la 3 la de xarxa.. etc etc..
Un hub actua com a repetidor de senyal,(és un enllaç físic) es a dir, envia les dades a TOTS els cables que te conectats, pero sols l’agafa l’ordinador al que van dirigides les dades… Un Switch en canvi fa de conmmutador, actua com si fora un entramat d’interruptors i envia cada paquet sols per el cable corresponent a la direcció mac de desti.

Fins ahi la teoria tot bé… Pero que passa si fem creure a un ordinador que nosaltres som el router, i fem creure al router que nosaltres som el ordinador victima?

Ahi es on entra el nostre paquet de ferramentes DSNIFF. En aquest cas he fet totes les probes sota una Ubuntu Linux dapper com a equip atacant, un Window$ 2000 sp4 com a equip victima, i un Linksys BEFSR41 com a router.
D’ara en endavant seràn, atacant, victima i router.

  • Atacant serà: 192.168.1.100
  • Victima serà: 192.168.1.101
  • Router serà: 192.168.1.1

En la primera part de l’atac anem a fer que el trafic de xarxa es desvie per el ordinador atacat i que el ordinador victima no es done compte de la situació. Partim del cas de que el ordinador victima està tranquilament navegant per internet.. pertant hem de preparar-ho tot per a que no note ninguna caiguda en el servei o si ho nota que siga mínima.
Ens fa falta: que el “atacant” done internet a “victima”, pertant el “atacant” farà de porta d’enllaç de la “victima”, encara que “victima” es creurà que seguix tinguent al router com a porta d’enllaç.

El que jo he fet ha sigut fer un redireccionament de ip, conegut com a ip fowarding, aixi a primera vista sona com molta cosa, pero realment és: Compartir el internet.

En ubuntu linux es fa de la seguent forma:

vicent@ferrervicent:/$ sudo echo "1" > /proc/sys/net/ipv4/ip_forward

si estiguerem en protocol ipv6 seria canviar ipv4 per ipv6, si no sas de que va, dixaho com està. Per a desactivar-lo canvia el “1” per un “0”.

En aquest moment atacant està compartint conexió a internet. Hem de pensar bé la situació i tindre en compte moltes coses com per exemple que cara el proxy de xarxa o porta d’accés real qui estarà entrant a internet serà atacant, pero realment serà victima a través de atacant.. es soles una cosa a tindre en compte.

Val, ja estém compartint internet fins ara realment no hem fet res.. a continuació ens disposarem a començar l’atac a la taula arp de la victima. Recorde per als bagos, que convé saber algo de teoria de arp primer.

Farem creure a l’equip victima que la direcció mac del equip atacant correspon a la ip del router. i al router que la ip del victima correspon a la mac del atacant.

vicent@ferrervicent:/$ sudo arpspoof -i eth0 -t 192.168.1.101 192.168.1.1

En la forma:
arpspoof -i (interfície de xarxa) -t (ip_victima) (ip_router)
En aquest moment arpspoof començarà a enviar paquets malignes a la xarxa per a corrompre el arp i la consola donara algo paregut a d’açò:

0:14:5a:xx:xx:6 0:xx:xx:11:xx:69 0x06 42: arp ..etc..
0:14:5a:xx:xx:6 0:xx:xx:11:xx:69 0x06 42: arp ..etc..
etc...

A l’equip victima no te perque haver ningun problema, creurà que atacant es el router.. pero ho creurà per la direcció mac, la direcció ip de la porta de enllaç continuarà sent la del router..

Una vegada aci ja podem dir que hem conclós el atac amb éxit, estem fent d’intermediari entre router i victima i per tant tot el trafic passa per nosaltres.. pero encara no tenim resultats.. faré una xicoteta mostra del que es pot fer, pero millor si gasteu la imaginació i inventeu les situacions possibles..

Podem enverinar les solicituds dns: amb dnsspoof podem redirigir noms de domini que busque l’ordinador victima fins a les ip que nosaltres vulguem.. jo per exemple he fet una copia de google en un servidor apache local, he creat el arxiu noms.hosts que conté:

192.168.1.100 *.google.com
192.168.1.100 google.com
192.168.1.100 *.google.es

És a dir, tot els subdominis de google.com/.es aniran redirigits a 192.168.1.100, on he instalat un apache i he fet una copia del html de google pero amb les imatges canviades…
I al executar dnsspoof:

root@ferrervicent:/home/vicent# dnsspoof -i eth0 -f noms.hosts

En quant la petició dns desde l’equip victima es realitze, en la nostra consola veurem coses com les seguents, ahi demana els dns a un servidor dns de internet i posteriorment validarà amb el arxiu (noms.hosts) i enviarà allò que convinga..

dnsspoof: listening on eth0 [udp dst port 53 and not src 192.168.1.100]
192.168.1.101.1306 > 62.42.230.135.53: 60923+ A? client.voipbuster.com
192.168.1.101.1308 > 62.42.230.135.53: 15610+ A? www.google.com
192.168.1.101.1311 > 62.42.230.135.53: 56060+ A? minijuegos.com
192.168.1.101.1321 > 62.42.230.135.53: 14079+ A? connectiontcp1.voipbuster.com

El resultat que veu el equip victima és aquest:

google

Com podem observar l’usuari de equip victima no notarà res estrany que no siga la modificació de les imatges que corresponen al nom de google.. bé i alguna cosa més.
Val, per a comprovar si ho heu entés, que passaria si ficarem en el arxiu noms.hosts el seguent:

192.168.1.100 *.*

😀

Hem de tindre en compte també que per a que aquest enverinament de la solicitud dns siga satisfactori el equip victima ha de tindre els servidors dns’s com a automàtics o els mateixos que la porta d’enllaç, en el cas de que la xarxa tinguera un servidor dns dedicat diferent de la porta d’enllaç, es podria fer altre enverinament de taula arp pero en la segona ip posariem la ip del servidor dns… bé tot açò és ampliació..

Pero deixem-se de tonteries com la del google i anem a coses mes series.. Que podriem fer?.. podem possar un sniffer i fer captura de tràfic… en poques paraules: sabrem tot lo que la màquina victima envia i rep de internet sempre que no siga tràfic encriptat (protocol https o ssh entre altres)
Pertant desactivarem el dnsspoof de moment.
Per a que siga més gràfic fare un sniff de tràfic amb Ethereal encara que amb tcpdump es pot fer igualment.. pero ho he fet amb Ethereal perque és gràfic i de segur que el trobeu més fácil d’entendre.

Ethereal

Com podeu observar tenim ací mooolt de trafic de xarxa (he capturat uns 3mb en pocs segons) , si l’analitzem veurem bastants coses, però això ja ho deixe per a que ho comproveu vosaltres mateixos.

De moment anem a capturar una contrasenya facileta va.. conectarem el dsniff.

Comprovat que la contrasenya de autentificació de el navegador cau (la tipica contrasenya de carpetes privades del apache..) en aquest cas és la de autentificació del router.

accedint al router

Supose que seguiré algun dia amb coses un poquet mes avançades de Dsniff (i més interesants).. que vos pareix capturar totes les contrasenyes de protocols no encriptats de forma fácil o simular una pàgina segura creant un certificat de xifrat pero en realitat agafar tot el tràfic? tècnica pareguda a fer un “monkey in the middle” i fer de repetidor de conexions ssh… i Dsniff te ferramentes per a tot això..

De moment sigau bons i no gasteu aquestos coneiximents per a fer mal eh? segur que algú ja estarà pensant en aplicacions “no étiques” de dsniff…

Salut i linux.

No hi ha comentaris »

  1. Xavi Said,

    setembre 7, 2006 @ 11:56 pm

    bona pinta, no l’he pogut llegir tot, però tenint la Lan q tinca ací es temptador començar a molestar un poquet, però no se, que em podria passar si em pillen?, tampoc es res greu si sols moleste girant imatges i tal no?

    jojojo!

  2. ferrervicent Said,

    setembre 8, 2006 @ 1:03 pm

    Esque ho sabia…
    Estava pensant:
    Segur que el primer comentarí seràn idees i aplicacions “no étiques” de la tècnica… 😛

    Recomanació: No ho faces, aquest atac “d’aficionat” es facil localitzarlo.. es més, es basa en localitzarte tu mateix com si fores una porta d’accés així que…
    Si tens ganes d’experimentar provaho dins de la xarxa local pero no cap a fora, que si en lund tenen tecnologia per a oferir 100mb/s açò ho tenen controlat de sobra. 😀

    Salut i linux.

Feu un comentari