Tabla de Contenidos
Airolib-ng
++++++ IMPORTANTE ++++++
++++++ IMPORTANTE ++++++
++++++ IMPORTANTE ++++++
Esta funcionalidad estará disponible en una futura versión. TODAVÍA no está disponible.
++++++ IMPORTANTE ++++++
++++++ IMPORTANTE ++++++
++++++ IMPORTANTE ++++++
Descripción
Airolib-ng es una utilidad de la suite aircrack-ng para almacenar y manejar listas de essid y contraseñas, calcular su “Pairwise Master Keys” (PMKs) y usarlas para crackear WPA/WPA2. El programa usa la base de datos de poco peso “SQLite3” como mecanismo almacenador que está disponible para la mayoría de las plataformas. La base de datos “SQLite3” fue seleccionada teniendo en consideración la variedad de plataformas en las que está soportada, memoria y espacio que ocupa en disco.
Crackear WPA/WPA2 supone calcular la “pairwise master key”, que se deriva de la “private transient key” (PTK).
Calcular la PMK es un proceso muy lento ya que se usa el algoritmo “pbkdf2”. Pero la PMK es siempre la misma para un ESSID y una contraseña concretas. Esto nos permite pre-calcular la PMK para conseguir combinaciones y acelerar la obtención de la clave wpa/wpa2. Los tests muestran que usando esta técnica en aircrack-ng se pueden comprobar mas de 30,000 contraseñas por segundo usando tablas PMK pre-calculadas.
Calcular la PMK todavía es un paso requerido, por lo que podemos:
- Precalcularla para usarla más tarde o compartirla.
- Usar programas que generen la PMK y usen ese valor al mismo tiempo.
Para aprender mas acerca de WPA/WPA2:
- Mira la WPA/WPA2 Information section en el wiki de esta página.
Para aprender mas acerca de coWPAtty:
Como se ha dicho con anterioridad, este programa requiere la base de datos “SQLite3”. Debes ejecutar la versión 3.3.17 o superior. Puedes obtener la última versión de SQLite download page.
Uso
Uso: airolib <database> <operación> [opciones]
Donde:
- database es el nombre del archivo de base de datos. Opcionalmente se puede especificar la ruta completa.
- operación especifica la acción que se llevará a cabo en la basede datos. Más abajo puedes ver una lista completa.
- opciones pueden ser necesarias dependiendo de la operación especificada
A continuación puedes ver las operaciones válidas:
- init - Crea un nuevo archivo de base de datos y su tabla.
- stats - Muestra alguna información acerca de la base de datos.
- sql {sql} - Ejecuta la declaración SQL especificada.
- clean [all] - Limpia la base de datos. La opción 'all' reducirá el tamaño del archivo si es posible y ejecutará una prueba de integridad.
- batch - Inicia el proceso de combinar todos los ESSIDs y contraseñas. Esto se debe de ejecutar antes de usar la base de datos con aircrack-ng o despues de haber añadido mas SSIDs o contraseñas.
- verify [all] - Verifica las PMKs. Si se usa la opción 'all' se verificaran todas las PMKs de la base de datos y las incorrectas serán borradas.
- export cowpatty {essid} {archivo} - Exportar a un archivo cowpatty.
- import cowpatty {archivo} - Importar a un archivo cowpatty.
- import ascii {essid|passwd} {archivo} - Importar un archivo plano como una lista de ESSIDs o contraseñas.
Ejemplos de uso
A continuación puedes ver algunos ejemplos de uso para cada operación.
Operación init
Debes encontrarte en el directorio donde quieres crear la base de datos o especificar la ruta completa.
Escribe:
airolib-ng testdb init
Donde:
- testdb es el nombre de la base de datos que se creará.
- init es la operación que se llevará a cabo.
El sistema no responde con ninguna salida. Se puede comprobar que se ha creado la base de datos mirando la lista de archivos del directorio.
Operación status
Escribe:
airolib-ng testdb stats
Donde:
- testdb es el nombre de la base de datos que se creará.
- stats es la operación que se llevará a cabo.
El sistema responderá:
statsThere are 2 ESSIDs and 232 passwords in the database. 464 out of 464 possible combinations have been computed (100%). ESSID Priority Done Harkonen 64 100.0 teddy 64 100.0
Operación SQL
El siguiente ejemplo le dará máxima prioridad al SSID “VeryImportantESSID”.
Escribe:
airolib-ng testdb sql 'update essid set prio=(select min(prio)-1 from essid) where essid="VeryImportantESSID";'
El sistema responderá:
update essid set prio=(select min(prio)-1 from essid) where essid="VeryImportantESSID"; Query done. 1 rows affected.
El siguiente ejemplo buscará las pmk especificadas en la base de datos.
Escribe:
airolib-ng testdb sql 'select hex(pmk) from pmk where hex(pmk) like "%DEADBEEF%"'
El sistema responderá:
hex(pmk) BF3F122D3CE9ED6C6E7E1D7D13505E0A41EC4C5A3DEADBEEFFEFF597387AFCE3
Operación clean
Para hacer una limpieza básica, escribe:
airolib-ng testdb clean
El sistema responderá:
cleanDeleting invalid ESSIDs and passwords... Deleting unreferenced PMKs... Analysing index structure... Done.
Para hacer una limpieza básica, reducir el tamaño del archivo si es posible y ejecutar una prueba de integridad, escribe:
airolib-ng testdb clean all
El sistema responderá:
cleanDeleting invalid ESSIDs and passwords... Deleting unreferenced PMKs... Analysing index structure... Vacuum-cleaning the database. This could take a while... Checking database integrity... integrity_check ok Query done. 2 rows affected. Done.
Operación batch
Escribe:
airolib-ng testdb batch
El sistema responderá:
Computed 464 PMK in 10 seconds (46 PMK/s, 0 in buffer). No free ESSID found. Will try determining new ESSID in 5 minutes...
IMPORTANTE: Debes pulsar control-C para terminar este programa cuando finalice o continuará ejecutándose de forma indefinida.
Operación verify
Para comprobar al azar 10.000 PMKs, escribe:
airolib-ng testdb verify
El sistema responderá:
verifyChecking ~10.000 randomly chosen PMKs... ESSID CHECKED STATUS Harkonen 233 OK teddy 233 OK
Para comprobar todas las PMKs, escribe:
airolib-ng testdb verify all
El sistema responderá:
verifyChecking all PMKs. This could take a while... ESSID PASSWORD PMK_DB CORRECT
Operación export cowpatty
Escribe:
airolib-ng testdb export cowpatty test cowexportoftest
El sistema responderá:
exportExporting... Done.
Operación import cowpatty
Escribe:
airolib-ng testdb import cowpatty cowexportoftest
El sistema responderá:
importReading header... Reading... Updating references... Writing...
Operación import ascii
Para importar una lista de SSIDs en ascii, escribe:
airolib-ng testdb import ascii essid ssidlist.txt
Donde:
- testdb es el nombre de la base de datos que se actualizará y debe de existir previamente.
- import ascii es la operación que se llevará a cabo.
- essid indica que es una lista de SSIDs.
- ssidlist.txt es el nombre del archivo que contiene los SSIDs. Uno por linea.
El sistema responderá:
importReading... Writing... Done.
Para importar una lista ascii de contraseñas, escribe:
airolib-ng testdb import ascii passwd password.lst
Donde:
- testdb es el nombre de la bse de datos que se actualizará y debe existir previamente.
- import ascii es la operación que se llevará a cabo.
- passwd indica que es una lista de contraseñas.
- password.list es el nombre del archivo que contiene las contraseñas. Una por linea.
El sistema responderá:
importReading... Writing... read, 1814 invalid lines ignored. Done.
Ejemplo de uso de Aircrack-ng
El objetivo es incrementar la velocidad para crackear claves WPA/WPA2 usando aircrack-ng. Para usar las tablas que acabamos de construir usando airolib-ng debemos usar la opción “-r” para especificar la base de datos que contiene las PMKs pre-calculadas.
Escribe:
aircrack-ng -r testdb wpa2.eapol.cap
Donde:
- -r especifica que se usará una base de datos PMK pre-calculada.
- testdb es el nombre del archivo de base de datos.
- wpa2.eapol.cap es el archivo que contiene el “handshake” WPA/WPA2.
Nota: Se pueden usar todas las otras opciones que son aplicables para WPA/WPA2. Este es un ejemplo muy sencillo.
Trucos de uso
Para probar esta utilidad…
- tienes que conseguir la libreria sqlite3 y los headers
- tienes que conseguir la versión 1.0dev de la suite aircrack-ng
- crea un nuevo archivo de base de datos con “airolib-ng testdb init”
- importa algunos essid, por ejemplo “echo Harkonen | airolib-ng testdb import ascii essid -”
- importa algunas contraseñas, por ejemplo “echo 12345678 | airolib-ng testdb import ascii passwd -”
- inicia el proceso (“airolib-ng testdb batch”), y espera hasta que termine el trabajo
- crackea tu WPA/WPA2 handshake, por ejemplo “aircrack-ng -r testdb -e Harkonen -q wpa2.eapol.cap”
Problemas de uso
Aunque este no es un problema de uso, es frecuente que se presenten problemas durante la compilación de la versión 1.0dev. Recuerda que la versión de SQLite debe ser 3.3.17 o superior. Este es el error de compilación que recibirás cuando la versión de SQLite sea inferior a la requerida:
gcc -g -W -Wall -Werror -O3 -D_FILE_OFFSET_BITS=64 -D_REVISION=`../evalrev` -I/usr/local/include -Iinclude -DHAVE_SQLITE -c -o airolib-ng.o airolib-ng.c airolib-ng.c: In function `sql_prepare': airolib-ng.c:129: warning: implicit declaration of function `sqlite3_prepare_v2' make[1]: *** [airolib-ng.o] Error 1 make[1]: Leaving directory `/root/1.0-dev/src' make: *** [all] Error 2