
Un script de captura de handshake y PMKID WPA PSK completamente automatizado y compatible con POSIX, diseñado para pruebas de penetración.
Airbash es un script de captura de PMKID y handshake WPA PSK totalmente automatizado y compatible con POSIX, orientado a pruebas de penetración. Es compatible con Bash y Android Shell (probado en Kali Linux y Cyanogenmod 10.2) y utiliza aircrack-ng para escanear clientes que están actualmente conectados a puntos de acceso (AP). Esos clientes son desautenticados para capturar el PMKID y/o handshake al intentar reconectarse al AP. La verificación de los datos capturados se realiza usando hcxpcaptool y hcxpcapngtool de hcxtools por ZeroBeat. Si se capturan uno o más PMKIDs y/o handshakes, se ingresan en una base de datos SQLite3, junto con la hora de captura y los datos GPS actuales (si está configurado correctamente).
Después de la captura, la base de datos puede probarse para modelos de router vulnerables usando crackdefault.sh.
Buscará entradas que coincidan con los módulos implementados, que actualmente incluyen algoritmos para calcular claves predeterminadas para
las series Speedport 500-700, Thomson/SpeedTouch, UPC 7 dígitos (UPC1234567) y routers HOTBOX.
Para más información sobre el ataque PMKID, New attack on WPA/WPA2 using PMKID es una buena lectura.
Interfaz WiFi en modo monitor (en Android esto se puede lograr usando bcmon si el dispositivo es compatible)
aircrack-ng (para Android se pueden usar los binarios precompilados de android_aircrack)
SQLite3 (Android: instalado por defecto en CyanogenMod 10.2)
openssl para la compilación de módulos y hcxtools
hcxpcaptool y hcxpcapngtool de hcxtools para la detección de PMKIDs y/o handshakes y conversión a formatos hashcat
Para registrar las coordenadas GPS de los puntos de acceso, configure su software de registro de coordenadas para que registre en .location/_.txt (el nombre del archivo se puede elegir según se desee). Airbash siempre usará la salida de cat "$path$loc"*.txt 2>/dev/null | sed '2q;d', que equivale a leer todos los archivos .txt en .loc/ y tomar la segunda línea. La razón de esta forma de implementación es la funcionalidad de GPSLogger, que se usó en el dispositivo de desarrollo.
Después de capturar un nuevo PMKID o handshake, se puede consultar la base de datos para modelos de router vulnerables. Si un módulo aplica, se calculan las claves predeterminadas para esa serie de router y se usan como entrada para aircrack-ng para intentar recuperar la frase de contraseña.
Los módulos para calcular las claves predeterminadas de Thomson/SpeedTouch y UPC1234567 (7 dígitos aleatorios) están incluidos en src/
Los créditos del código van para los autores Kevin Devine y mailto:[email protected].
En Linux:
gcc -fomit-frame-pointer -O3 -funroll-all-loops -o modules/st modules/stkeys.c -lcrypto
gcc -O2 -o modules/upckeys modules/upc_keys.c -lcrypto
Para habilitar la detección automática, mueva los binarios a airbash/bin (se agregará a PATH durante la ejecución) o a un directorio que esté en PATH.
Si está en Android, es posible que necesite copiar los binarios a /system/xbin/ o a otro directorio donde se permita la ejecución de binarios.
Ejecutar install.sh creará la base de datos, preparará la estructura de carpetas y creará enlaces cortos a ambos scripts que se pueden mover a un directorio que esté en $PATH para permitir la ejecución desde cualquier ubicación.
Después de la instalación, es posible que deba ajustar manualmente INTERFACE en la línea 46 de airba.sh. Esto se determinará automáticamente más adelante, pero por ahora el valor predeterminado es wlan0, para permitir la compatibilidad inmediata con bcmon en Android.
./airba.sh inicia el script, escaneando y atacando automáticamente objetivos que no se encuentran en la base de datos.
./crackdefault.sh intenta descifrar algoritmos de claves predeterminadas conocidos.
Para ver el contenido de la base de datos, ejecute sqlite3 .db.sqlite3 "SELECT * FROM hs" en el directorio principal.
Airbash se puede actualizar ejecutando update.sh. Esto clonará la rama master en /tmp/ y sobrescribirá los archivos locales.
_n: número de puntos de acceso encontrados
__c/m: representa el número de cliente y el número máximo de clientes encontrados, respectivamente
-: el punto de acceso está en la lista negra
x: el punto de acceso ya está en la base de datos
?: el punto de acceso está fuera de alcance (ya no es visible para airodump)
La base de datos contiene una tabla llamada captures con siete columnas.
id: contador incremental de entradas de la tabla
latitude y longitude: coordenadas GPS del handshake (si están disponibles)
bssid: dirección MAC del punto de acceso
essid: identificador de nombre
pmkid: WPA PMKID, si se capturó
psk: frase de contraseña WPA, si se conoce
processed: bandera que establece crackdefault.sh para evitar el cálculo duplicado de claves predeterminadas si se usó una frase de contraseña personalizada.
Actualmente, la base de datos SQLite3 no está protegida por contraseña.
Las contribuciones son muy bienvenidas, especialmente módulos adicionales para poder descifrar más claves predeterminadas. Se incluye un módulo de plantilla aquí en modules/. crackdefault.sh contiene una declaración elif de plantilla para incluir el nuevo módulo.
Si desea contribuir, asegúrese de que su código tenga la licencia MIT License (como este proyecto). Al contribuir con scripts de shell, asegúrese de que el código sea compatible con POSIX. Aparte de eso, simplemente abra un issue describiendo brevemente los cambios y cree un pull request!