El teu blog de Linux en català

A la primera part es van instal·lar els mòduls per aconseguir que la targeta inalambrica ipw2200 pugui injectar paquets.

En aquesta segona part, s’explicarà com fer petar una xarxa (crackejar-la) per comprovar-ne la seguretat. Per fer-ho, s’usarà el programa aircrack-ng. En un apunt anterior, ja es va explicar el funcionament detallat d’aquest programa. Tanmateix, els passos a seguir amb l’aircrack difereixen segons la targeta inalàmbrica que es tingui. Per tant, aquest tutorial està enfocat concretament a la targeta Intel Pro/Wireless 2200bg (ipw2200). Alhora, es prestarà especial atenció als petits problemes que un se sol trobar, i els trucs que hi ha per solucionar-los.

0. Obrim una consola

Primer de tot s’obrirà una consola com a suprausuari (root). Per fer hi ha dues opcions. Si es disposa d’un compte per l’usuari root, escriurem l’orde següent i s’hi indroduirà la contrasenya.

su

Com que l’usuari root no està habilitat per defecte en Ubuntu, tenim una altra opció

sudo -s

Serà molt més útil i s’evitarà fer-se un embolic obrint noves pestanyes en lloc d’obrir terminals. No us oblideu d’entrar-hi sempre com a suprausuari.

1. Monitorització de la xarxa

El primer s’ha de fer és desactivar el Network Manager. Hi ha dues opcions. La més recomanada és anar sobre l’applet i amb el botó secundari es desmarca l’opció “Habilita la xarxa sense fil. L’altra opció és eliminar-lo a través de la terminal.

killall nm-applet

Engeguem l’airodump-ng. Això ens permetrà veure les xarxes inalàmbriques que es troben dins del rang.

airodump-ng rtap0

Esperem una mica perquè es puguin detectar totes les xarxes disponibles i s’ordenin de millor a pitjor senyal. Observem el tipus de seguretat de cada xarxa, i ens centrem amb les que la tenen del tipus WEP (AUTH).

Ens quedarem amb tres informacions importants.

  • El nom de la xarxa (ESSID).
  • L’identificador numèric de la xarxa (BSSID). Al tutorial s’abreuja a BSSID
  • El canal (CH) a través del qual s’emet.

Un cop tenim aquesta informació parem el monitor amb la combinació de teclat ctrl+c.

2. Associar-nos al Punt d’Accés

Ara reiniciarem els paràmetres de la configuració inalàmbrica perquè no interfereixin amb l’auditoria. Es recomana executar aquest ordre prèviament a la monitorització de les xarxes del punt anterior, ja que de vegades la informació emmagatzemada de la última connexió inalàmbrica interfereix en el procés de detectar noves xarxes. Per simplificar el tutoria es canviarà l’adreça MAC de la targeta inalàmbrica a 00:11:22:33:44:55.

iwconfig eth1 essid 0 channel 0 && ifconfig eth1 up hw ether 00:11:22:33:44:55 && iwconfig eth1 rate 1M

Ara bé el pas decisiu. Us heu d’associar al Punt d’Accés. Per fer-ho, heu d’escriure el nom de la xarxa inalàmbrica i el número del canal. Si el nom de la xarxa conté espais, heu d’escriure el nom entre dobles cometes (p. ex: “Xarxa que te espais”). Si és un nom ocult, només heu d’escriure dues doble cometes sense cap espai entremig (p. ex: “”).

iwconfig eth1 essid nom_de_la_xarxa channel numero_de_canal key s:fakekey mode managed

Si s’està lluny del Punt d’Accés costa fer l’associació. Cal tenir paciència i esperar una mica. És recomanable moure l’ordinador per diversos llocs amb l’objectiu d’estar més aprop del Punt d’Accés i anar mirant l’estat de l’associació amb l’ordre següent. Aquest fet pot marcar la diferència entre associar-se, o no. Quan llegim un missatge en anglès que ens diu Associated ho haurem aconseguit.

iwconfig

3. Captura de paquets

Un cop ens diu que hi estem associats, és l’hora de capturar els paquets.

airodump-ng --bssid BSSID -w dump rtap0

Ara haurem d’esperar fins que veiem que la columna #Data creix una miqueta i ja no mostra el número zero. Això significa que hem començat a capturat paquets. Convé durant tot el procés no tancar mai aquesta aplicació, ja que a través d’aquest monitor veurem si la injecció funciona o no, i la quantitat de paquets capturats.

4. Atac / Injecció de paquets

Aquest és el quid de la qüestió, i el motiu per al qual hem compilat els mòduls de la targeta inalàmbrica perquè pugui injectar paquets. A partir d’uns quants paquets capturats amb l’airodump-ng (de vegades amb només capturar-ne un ja funciona), podem injectar una gran quantitat de paquets per segon. Així no cal esperar dies i dies a que es generi el suficient trànsit per acumular suficients paquets, i finalment, desxifrar la contrasenya.

Si no us n’heu sortit compilant els mòduls de la primera part del tutorial, salteu-vos aquest apartat i aneu directament a l’apartat 5.

4.1. Atac -3

Aquest és el meu atac preferit, perquè amb no res ja podem injectar. No cal ni trobar clients associats al Punt d’Accés.

aireplay-ng -3 -x 1024 -g 1000000 -b BSSID -h 00:11:22:33:44:55 -i rtap0 eth1

S’ha d’esperar una bona estona, i si tot va bé, veureu com la columna de #Data de l’airodump-ng puja ràpidament i el missatge que diu got 0 IPV, passarà del número zero a un número que no pararà de créixer. Això significa que esteu injectant. Enhorabona!

4.1. Atac -4

Aquest atac és més tediós, però de vegades és l’únic remei que ens queda. A més a més, no tots els paquets que capturem serveixen, per al que probablement haureu de provar-ho amb paquets diferents fins que surti (si és que surt).

Quan el programa digui Use this packet?, s’ha de dir y (de yes). Si el paquet no és l’adequat, s’ha der dir que n (de no) i us en deixarà escollir un altre. S’ha de tenir en compte que no serveixen els paquets emesos per vosaltres a causa, per exemple, d’una desconnexió / connexió.

aireplay-ng -4 -a BSSID -h 00:11:22:33:44:55 -i rtap0 eth1

Si tot va bé, veurem una llista amb un número i un percentatge que va augmentant. Quan arribi al 100% ho haureu aconseguit. La sortida del programa ens donarà un nom de paquet .xor, de l’estil.

replay_dec-0000-99999.xor

Ara només caldrà ficar el nom correcte del paquet .xor i executar.

packetforge-ng -0 -a BSSID -h 00:11:22:33:44:55 -k 192.168.1.100 -l 192.168.1.101 -y replay_dec-0000-99999.xor -w arp-request

I ara ja estem preparats per injectar.

aireplay-ng -2 -r arp-request eth1

Si tot va bé, veureu com la columna de #Data de l’airodump-ng puja ràpidament. Això vol dir que esteu injectant.

5. Obtindre la clau

Un s’aconsegueix injectar, ja podem executar el programa per crackejar la clau WEP. El podem deixar funcionant mentre injecta i ell ens trobarà la contrasenya. Normalment ens la treurà amb Hexadecimal, i si té equivalent en ASCII també. Al Network Manager podeu ficar ambdues claus, però li heu de treure tots els dos punts (:) de la clau en Hexadecimal, i deixar-ho com una contrasenya de l’estil af1000dc98af5333, per ficar un exemple.

aircrack-ng -z dump*.cap

6. Netejar

Es netegen tots els fitxers que s’han creat.

rm dump* replay* arp-request*

7. A navegar!

Ara es torna a habilitar la xarxa inalàmbriques al Network Manager. Si l’heu tancat, es pot tornar a obrir amb la combinació de teclat alt+F2, i hi escriviu

nm-applet

Agraïments

Gràcies especialment a l’usuari sky de p1mp4m.es, per la seva inestimable contribució.

Fonts

http://www.p1mp4m.es/index.php?showtopic=24

Companys, responent a les peticions que m’han arribat de diversos de vosaltres, em disposo a publicar suport referent a un dels temes que més m’interessa, l’estudi de la seguretat inalàmbrica.

Tal com diu l’Eric Steven Raymond, hacker del ram filosòfic a qui tots haurieu d’haver llegit, qualsevol problema no hauria de ser resolt dos cops. Doncs bé: això és el que vaig a fer. Resoldre’l un altre cop, amb el regust bo de fer-ho en lingua no franca.

Useu això amb responsabilitat.

Aquest post pretén ensenyar què cal i què cal fer per a comprovar la seguretat de les VOSTRES xarxes WiFi. No proveu això contra xarxes forànies si no teniu el consentiment del propietari.

Doncs, per a què serveix això?

La seguretat de les xarxes sense fils és un tema no genys menys important. Sovint oblidem que qualsevol altra persona, amb un domini mínim de quatre aplicacions i no necessàriament sota GNU/Linux, és capaç de llegir tots i cadascun dels octets que llancem a l’aire, un sofregit de contrasenyes i altres dades privades, esdevenint un perill per la nostra privacitat.

Aquest document pretén demostrar-ho i, també, anar una mica més enllà en la gestió de les xarxes locals.

Només dius Linux. Tinc Windows.

Obre una consola. Et xiularan les orelles perquè Microsoft sencer sabrà que estàs fent doble clic sobre cmd.exe. Aleshores escriu format C: i apreta intro.

Degut a el dèficit de compiladors lliures sota Windows i la indisposició total i absoluta d’aquesta plataforma tancada versus el programari lliure fa que existeixin menys implementacions de controladors susceptibles de fer el que es descriu a continuació. Pot ser més fàcil en la forma, tocar botonets vaja, però absurd en el fons: parteix d’una base no lliurement accessible.

Què necessitaré?

  • El derivat d’UNIX més popular, el GNU/Linux. Preferiblement, de la distro Debian GNU/Linux o qualsevol de les seves derivacions, com ara (Canonical Ltd.) Ubuntu. Aquest tutorial ha estat provat sobre Debian Etch.
  • Connexió a Internet.
  • Lògicament, una tarja de WiFi 802.11b/g.
  • Coneixements mínims en l’entorn GNU/Linux i de la gestió de xarxa.

1. Prepareu el vostre sistema per a compilar.

No passeu pena. Compilar és la manera natural d’instal·lar programes. Penseu que les BSD’s tenen una comanda que es diu make world.

Primer, instal·la les capçaleres del nucli. uname -r retorna la versió del nucli que useu

apt-get update
apt-get install linux-headers-`uname -r`

Fan falta llibreries extra per a compilar

apt-get install build-essential

Aquest últim paquet instal·la el GNU Compiler Collection, altrament dit GCC, i altres llibreries comunistes.

1.1 Instruccions de compilació per a principants.

Compilar és un món. Us hi introdueixo molt breument.

Si existeix, cal executar el fitxer configure. Aquest fitxer repassa tot l’arbre de dependències del sistema i informa del que manca. Acaba creant la Makefile, que depèn del nucli i la configuració: és per això que els programes que no restringeixen la configuració (el més comú) han de crear-la expressament.

./configure

Les següents comandes, respectivament, compilen el programa (executant la Makefile) i escampen els fitxers binaris, per defecte dins de la secció del sistema de fitxers /usr/local{/bin, /etc, …}, que està pensada per a programari optatiu de l’usuari.

make
make install

Ara el programa em qüestió ja és executable des de terminal i, si és gràfic, molt probablement us haurà aparegut a la llista del menú d’aplicacions.

2. Cerqueu el xipset del vostre NIC inalàmbric.

Cerca el xipset de la teva tarja inalàmbrica. Prova amb el Google i el model de l’aparell. El que importa a l’hora de controlar aquests aparells és únicament el seu xipset, que pot no tenir res a veure amb el fabricant de l’aparell en concret.

En el meu cas (uso una tarja PCI de Conceptronic model C54Ri) es tracta de l’RT61 de Ralink.

3. Cerqueu els drivers que us permetran injectar.

Després sabreu per què serveix això. Visiteu

Aircrack-ng. Aquesta és la plana del programa que usarem per a posar a prova les xarxes. Tenen una secció dedicada a maquinari compatible i tot de drivers GPL, implementats alguns d’ells per enginyeria inversa que, ves per on, superen els dels fabricants. Que n’aprenguin.

Hwagm.elhacker.net. A la secció de programari per a GNU/Linux hi ha bones referències. Si amb aquest tutorial no us en sortiu, sempre podeu recórrer a les Wifislax, que són distros preparades per a fer el que s’explica aquí i més. Però crec que és millor instal·lar-vos i configurar-vos les coses per a vosaltres mateixos, adés podent donar suport com ara jo, éssent capaços d’aprofundir molt més sense dependre de sistemes que ho donen mastegat.

És possible que, segons com, i més si useu un portàtil que ja porta la tarja integrada, tingueu un xipset pel qual no existeixin drivers lliures. En aquest cas, haureu d’obtenir una tarja. Investigueu.

4. Compileu el driver.

Obtindreu un tar de codi. Llegiu les instruccions de com instal·lar-lo, si és que en venen amb el paquet. En compilar els drivers, esdevenen mòduls, és a dir, afegitons del nucli monolític que fan una feina concreta. Podria ser que haguéssiu d’aplicar només algun pedaç (patch), però en aquest cas no m’hi he trobat.

Com a guia particular que us pot servir per a comandes generals, vaig escriure aquest how-to explicant la compilació del mòdul RT61. Tingueu en compte que en Ubuntu cal que desactiveu el mòdul que vé per defecte amb el sistema, si aquest detecta maquinari compatible. Vigileu amb això.

Si heu carregat el mòdul i us respon bé (mireu el how-to anterior si és necessari) ja podeu passar a la part interessant. Heu de ser capaços d’engegar la interfície

ifconfig wlan0 up

i de veure les xarxes que us envolten

iwlist wlan0 scan

5. Monitorització.

A partir d’aquí, usaré wlan0 com a nom de la interfície sense fils. Cal que canvieu això pel nom de la vostra.

En primer lloc, cal que identifiqueu la xarxa objectiu, que, no cal que m’ho digueu, segur que és la vostra, oi? Hi ha un programa molt bo que es diu Kismet. Descarregueu el tar de codi i compileu-lo.

Dependències de compilació (kismet-2007-10-R1): libncurses-dev, libpcap-dev.

Si no podeu compilar-lo:

apt-get install kismet

Una vegada instal·lat, cal que n’editeu el fitxer de configuració. Si l’heu instal·lat via repositori és /etc/kismet/kismet.conf. Si l’heu compilat amb les opcions del make per defecte, /usr/local/etc/kismet.conf.

Heu de canviar

#suiduser=your_user_here

(descomenteu-lo, també) i

source=none,none,addme

aquest últim en funció del vostre driver (en el meu cas, source=rt2500,wlan0,rt2500).

Cal dir que, en el cas que hagueu compilat, el programa desarà els fitxers amb els paquets capturats durant la monitorització i altres dades en la carpeta en què treballeu.

Una vegada en funcionament, toqueu la tecla s, i escolliu en quin ordre voleu llistar les vostres xarxes (ún dels més útils és llistar-les per força del senyal (signal strength) o quantitat de paquets emesos per unitat de temps (packet count). Per defecte, el Kismet anirà saltant pels 13 canals del WiFi, de manera que escombrarà totes les possibilitats.

Kismet llistant per <em>signal strength</em>

Kismet llistant per signal strength

Si, arribats a aquest punt, no veieu cap xarxa, no us preocupeu. Apropeu-vos al vostre AP. Si tampoc en veieu cap, assegureu-vos que estigui activada. Si heu de treballar lluny de l’AP, us recomano que us construïu una antena guia d’ones amb una llauna.

No entraré en aquest tema. Si us interessa, teniu molta informació a la xarxa.

6. Extracció de claus WEP. Aircrack-ng.

Una vegada hem identificat la nostra xarxa, procedirem a provar-ne la seva vulnerabilitat. Aircrack-ng (Aircrack Next Generation) és un conjunt de programes per a posar a prova sistemes inalàmbrics presumiblement segurs. Us recomano que compileu el tarball, ja que la versió del vostre repositori pot ser passada, i el desenvolupament avança ràpidament.

Dependències de compilació (aircrack-ng-1.0-beta2): libssl-dev.

I, si no podeu compilar-lo:

apt-get install aircrack-ng

De la mateixa manera que el Kismet, Aircrack-ng crearà tots els fitxers necessaris al directori en que treballeu.

Aircrack és útil per a provar la vulnerabilitat de claus WEP (Wired-Equivalent Privacy). Aquest xifrat, com diu el seu nom, és de seguretat equivalent a les xarxes amb fils xifrades amb operacions XOR amb clau estàtica i amb una fase d’autenticació molt senzilla. L’extracció de claus WPA és complicadíssima, per no dir impossible, necessita d’un llistat de possibles claus, i és quasi impossible autenticar-se a través del seu handshake.

Sortiu del Kismet. No és recomanable combinar-lo amb programes de l’Aircrack. Seguidament es realitza tot a través de terminal.

6.1 Preparació.

Engegueu el mode monitor de l’Aircrack. El mode monitor vol dir que la interfície serà capaç de capturar trànsit que no va cap a ella.

airmon-ng start wlan0

Monitor mode enabled és la resposta que us ha de donar. Si no, vol dir que esteu usant un driver no compatible. Seguidament heu de mirar si la xarxa objectiu té altres ordinadors que hi treballen, és a dir, si té clients. En la mateixa consola

airodump-ng start wlan0

Veureu un llistat amb les xarxes i les dades de cada xarxa (canal, encriptació, etc), escombrant tot es els canals. Haurieu de veure la vostra, talment com amb el Kismet. A sota, es llisten els clients per cada xarxa. Si té clients, passeu a l’apartat 6.2-A. Si no, al 6.2-B. Nota: a vegades, els clients apareixen movent una mica l’antena o el vostre portàtil. Doneu-los temps.

6.2 Paradigma A: La xarxa inalàmbrica té clients.

A partir d’ara, s’usarà la nomenclatura

  • bssid: BSSID, nom de la xarxa objectiu.
  • mac_teva: Adreça MAC de la teva tarja inalàmbrica.
  • mac_ap: Adreça MAC de l’access point objectiu.
  • mac_client: Adreça MAC del client.
  • canal: Canal de la xarxa.
  • wlan0: Interfície inalàmbrica.

Atureu airodump-ng (Ctrl+C). Torneu-lo a executar, però ara capturant el trànsit en el canal d’interès

airodump-ng --bssid bssid --channel canal --write nom_fitxer wlan0

Deixeu aquesta consola oberta durant tot el procés. Crea automàticament el fitxer nom_fitxer.cap que contindrà el trànsit capturat. En aquest punt, podrieu deixar que capturés passivament, però probablement el trànsit generat és massa petit per arribar, amb un temps raonable, als si fa no fa 50.000 paquets que l’algorisme estadístic necessita per a descobrir una clau de 128bits (26 caràcters hexagesimals). És més divertit forçar aquest trànsit, atacant activament l’AP amb el procés més comú, que és ataconar-lo a peticions ARP a tanta velocitat que deixa una mà de paquets que dóna gust.

L’ARP (Address Resolution Protocol) és un protocol que pregunta a certa adreça IP present a la xarxa quina MAC té. Nota: els paquets que contenen dades útils per la desencriptació són els de dades (que tenen IV’s, initializing vectors), no els beacons (radiobalises, senyals de localització) que llença l’AP. És important a partir d’aquí que l’AP no restringeixi les MAC’s que s’hi poden connectar.

Si moveu una mica l’ordinador o l’antena potser podeu millorar el ritme de recepció de les radiobalises i, per tant, de les dades/clients, si no els rebeu gaire regularment (normalment són uns 10 beacons/segon, si fa no fa).

Creeu una nova consola i autentiqueu-vos a l’AP (fakeauth, autenticació falsa)

aireplay-ng -1 0 -e bssid -a mac_ap -h mac_teva wlan0

És important que aquest pas funcioni, sinó, no es pot fer res així. Si no s’atura amb el missatge Association successful, abaixeu la velocitat d’enviament o apropeu-vos a l’AP i torneu a llançar la fakeauth.

iwconfig wlan0 rate 1M

Si ja esteu autenticats, obriu una nova consola i prepareu-vos per retornar el pròxim paquet ARP que captureu (arpreplay), que anirà de l’AP al client. La opció -x indica la velocitat en paquets/segon per la ràfega de retorn. Normalment, està bé 50, però si teniu l’AP prou a prop i amb visibilitat, podeu arribar a injectar-ne 200 per segon o més:

aireplay-ng -3 -x 50 -b mac_ap -h mac_client wlan0

Podeu esperar a que l’AP llenci un paquet ARP o fer que en corri un. Per fer això, heu de desautenticar el client (deauth). Esteu negant el servei a aquest client. Quan el client es reconnecti, forçarà un ARP. Obriu la quarta consola i feu

aireplay-ng -0 0 -a mac_ap -c mac_client wlan0

El client es reconnecta, i comença el festival. Heu de veure com, en la consola d’airodump (la de captura), la quantitat de dades augmenta ràpidament. Podeu executar en aquesta quarta consola el programa de desencriptació, que anirà computant els paquets així que arriben, pròpiament dit aircrack (l’opció -z ho fa anar més ràpid (50.000 IV’s), si no necessitarieu 500.000 IV’s o més):

aircrack-ng -z -b mac_ap nom_fitxer.cap

Al cap d’una estona tindreu la clau, el mateix programa la treu en hexagesimal. A partir d’aquí, podeu desencriptar el conjunt de paquets que us ha servit per a trobar la clau, amb l’ordre

airdecap-ng -l -w CLAU:WEP:HEXAGESIMAL nom_fitxer.cap

I obrir el fitxer desencriptat amb el Wireshark (antic Ethereal) i mirar tots els paquets que conté.

apt-get install wireshark

Nota: Comproveu en tot moment que estigueu autenticats a l’AP.

6.2 Paradigma B: La xarxa inalàmbrica no té clients.

La diferència rau en què haureu de crear-vos valtros mateixos el paquet ARP. Partirem del punt en què heu fet la fakeauth. Hi ha dos possibilitats, la primera es diu atac de fragmentació que, a través del PRGA (Pseudo Random Generation Algorithm) genera un paquet encriptat sense la clau sencera. Ara és imprescindible que corri algun paquet de dades per l’aire, amb un n’hi ha prou. Tingueu paciència fins que aparegui. Llegiu en diagonal l’apartat 6.2-A i feu-ne els primers passos. Autenticats, obriu consola i feu

aireplay-ng -5 -b mac_ap -h mac_teva wlan0

Si no funciona amb el paquet de dades trobat, la segona opció és l’atac chop-chop. Executeu i espereu el paquet

aireplay-ng -4 -b mac_ap -h mac_teva wlan0

La idea és que si no va un va l’altre, solució summament informàtica. Si ho heu aconseguit, haureu obtingut un fitxer nom_fitxer.xor, que és la clau pseudo-aleatòria. Creeu amb ella un paquet ARP:

packetforge-ng -0 -a mac_ap -h mac_teva -k 255.255.255.255 -l 255.255.255.255.255 -y nom_fitxer.xor -w paquet_arp

I ara només cal retornar-lo a sacietat a l’AP (l’opció -x, com abans, indica els paquets/segon, és recomanable ajustar-ho també en aquest cas, interactive frame selection)

aireplay-ng -2 -r paquet_arp -x 50 wlan0

I executeu en la quarta consola l’aircrack-ng per desxifrar la clau tal com s’explica a l’apartat 6.2-B.

Aspecte de l'escriptori una vegada finalitzat el procés sense clients

Aspecte de l'escriptori una vegada finalitzat el procés sense clients

Curiositats: un router wired-wireless.

Nosaltres hem configurat un router que enllaça la interfície inalàmbrica amb la d’ethernet. Bàsicament, funciona amb un tallafocs fet amb iptables que també fa NAT i un servidor de DHCP per a la subxarxa.

Bueno, espero que sigui útil xecs. Feu servir WPA. Per qualsevol dubte, no dubteu en deixar comentaris.

By Jordi / Alliberats.org.

Text distribuït sota les condicions de la llicència BY-NC-SA de Creative Commons.

No podeu modificar, usar ni distribuïr públicament les imatges per cap mitjà, ja sigui amb una nova instància d’elles mateixes o enllaçant a aquests continguts sense el permís d’Alliberats.org.

Publicat per pimera vegada al bloc Join Free Software!

Altres recursos de l’autor: Making Wireless Connections Work.