Herramientas de usuario

Herramientas del sitio


es:airolib-ng

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

es:airolib-ng [2009/08/14 17:00] (actual)
mister_x creado
Línea 1: Línea 1:
 +====== 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.es|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 [[links#​wpa_wpa2_information|WPA/​WPA2 Information section]] en el wiki de esta página.
 +
 +Para aprender mas acerca de coWPAtty:
 +
 +  * [[http://​www.churchofwifi.org/​default.asp?​PageLink=Project_Display.asp?​PID=95|Church of Wifi CoWPAtty]]
 +  * [[http://​www.wirelessdefence.org/​Contents/​coWPAttyMain.htm|Wireless Defense CoWPAtty writeup]]
 +
 +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 [[http://​www.sqlite.org/​download.html|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.es|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