Table of Contents

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:

Para aprender mas acerca de WPA/WPA2:

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:

A continuación puedes ver las operaciones válidas:

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:

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:

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:

El sistema responderá:

 importReading...
 Writing...
 Done.

Para importar una lista ascii de contraseñas, escribe:

 airolib-ng testdb import ascii passwd password.lst

Donde:

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:

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…

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