Herramientas de usuario

Herramientas del sitio


es:airolib-ng

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:

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
es/airolib-ng.txt · Última modificación: 2009/08/14 17:00 por mister_x