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