User Tools

Site Tools


airolib-ng

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
airolib-ng [2008/01/28 21:22]
darkaudax updated install instructions
airolib-ng [2019/03/30 23:01]
mister_x [Creating your own database example] Document control-C with batch
Line 1: Line 1:
 ====== Airolib-ng ====== ====== Airolib-ng ======
- 
-++++++ IMPORTANT ++++++\\ 
-++++++ IMPORTANT ++++++\\ 
-++++++ IMPORTANT ++++++\\ 
- 
-This functionality will be available in a future release. It is NOT available currently. 
- 
-++++++ IMPORTANT ++++++\\ 
-++++++ IMPORTANT ++++++\\ 
-++++++ IMPORTANT ++++++\\ 
  
 ===== Description ===== ===== Description =====
  
-Airolib-ng is a tool for the aircrack-ng suite to store and manage essid and password lists, compute their Pairwise Master Keys (PMKs) and use them in WPA/WPA2 cracking.  The program uses the lightweight SQLite3 database as the storage mechanism which is available on most platforms.  The SQLite3 database was selected taking in consideration platform availability plus management, memory and disk overhead.+Airolib-ng is an aircrack-ng suite tool designed to store and manage essid and password lists, compute their Pairwise Master Keys (PMKs) and use them in WPA/WPA2 cracking.  The program uses the lightweight SQLite3 database as the storage mechanism which is available on most platforms.  The SQLite3 database was selected taking in consideration platform availability plus management, memory and disk overhead.
  
 WPA/WPA2 cracking involves calculating the pairwise master key, from which the private transient key (PTK) is derived.   Using the PTK, we can compute the frame message identity code (MIC) for a given packet and will potentially find the MIC to be identical to the packet's thus the PTK was correct therefore the PMK was correct as well. WPA/WPA2 cracking involves calculating the pairwise master key, from which the private transient key (PTK) is derived.   Using the PTK, we can compute the frame message identity code (MIC) for a given packet and will potentially find the MIC to be identical to the packet's thus the PTK was correct therefore the PMK was correct as well.
  
-Calculating the PMK is very slow since it uses the pbkdf2 algorithm.  Yet the PMK is always the same for a given ESSID and password combination. This allows us to pre-compute the PMK for given combinations and speed up cracking the wpa/wpa2 handshake.  Tests on have shown that using this technique in [[aircrack-ng]] can check more than 30,000 passwords per second using pre-computed PMK tables.+Calculating the PMK is very slow since it uses the pbkdf2 algorithm.  Yet the PMK is always the same for a given ESSID and password combination. This allows us to pre-compute the PMK for given combinations and speed up cracking the wpa/wpa2 handshake.  Tests have shown that using this technique in [[aircrack-ng]] can check more than 50 000 passwords per second using pre-computed PMK tables.
  
 Computing the PMK is still required, yet we can: Computing the PMK is still required, yet we can:
Line 30: Line 20:
 To learn more about coWPAtty: To learn more about coWPAtty:
  
-  * [[http://www.churchofwifi.org/default.asp?PageLink=Project_Display.asp?PID=95|Church of Wifi CoWPAtty]]+  * [[http://www.willhackforsushi.com/?page_id=50|Will Hack For SUSHI > CoWPAtty]]
   * [[http://www.wirelessdefence.org/Contents/coWPAttyMain.htm|Wireless Defense CoWPAtty writeup]]   * [[http://www.wirelessdefence.org/Contents/coWPAttyMain.htm|Wireless Defense CoWPAtty writeup]]
  
Line 54: Line 44:
   * - -verify [all]  - Verify a set of randomly chosen PMKs. If the option 'all' is given, all(!) PMKs in the database are verified and the incorrect ones are deleted.   * - -verify [all]  - Verify a set of randomly chosen PMKs. If the option 'all' is given, all(!) PMKs in the database are verified and the incorrect ones are deleted.
   * - -export cowpatty {essid} {file}  -  Export to a cowpatty file.   * - -export cowpatty {essid} {file}  -  Export to a cowpatty file.
-  * - -import cowpatty {file}  -  Import a cowpatty file. +  * - -import cowpatty {file}  -  Import a cowpatty file and create the database if it does not exist
-  * - -import {essid|passwd} {file}  -  Import a text flat file as a list of either ESSIDs or passwords.  This file must contain one essid or password per line.  Lines should be terminated with line feeds.  Meaning press "enter" at the end of each line when entering the values.+  * - -import {essid|passwd} {file}  -  Import a text flat file as a list of either ESSIDs or passwords and create the database if it does not exist.  This file must contain one essid or password per line.  Lines should be terminated with line feeds.  Meaning press "enter" at the end of each line when entering the values.
  
 ===== Usage Examples ===== ===== Usage Examples =====
Line 182: Line 172:
  
 === SSID === === SSID ===
-To import an ascii list of SSIDs, enter:+To import an ascii list of SSIDs and create the database if it does not exist, enter:
  
    airolib-ng testdb --import essid ssidlist.txt    airolib-ng testdb --import essid ssidlist.txt
Line 188: Line 178:
 Where: Where:
  
-  * testdb is the name of the database to be updated and this must already exist.+  * testdb is the name of the database to be updated and it will be created if it does not exist.
   * - -import is the operation to be performed.   * - -import is the operation to be performed.
   * essid indicates it is a list of SSIDs.   * essid indicates it is a list of SSIDs.
Line 200: Line 190:
  
 === Passwords === === Passwords ===
-To import an ascii list of passwords, enter:+To import an ascii list of passwords and create the database if it does not exist, enter:
  
    airolib-ng testdb --import passwd password.lst    airolib-ng testdb --import passwd password.lst
Line 206: Line 196:
 Where: Where:
  
-  * testdb is the name of the database to be updated and this must already exist.+  * testdb is the name of the database to be updated and it will be created if it does not exist.
   * - -import is the operation to be performed.   * - -import is the operation to be performed.
   * passwd indicates it is a list of passwords.   * passwd indicates it is a list of passwords.
Line 219: Line 209:
 === Cowpatty tables === === Cowpatty tables ===
  
-Enter:+Imports a cowpatty table and create the database if it does not exist, enter:
  
    airolib-ng testdb --import cowpatty  cowexportoftest    airolib-ng testdb --import cowpatty  cowexportoftest
Line 225: Line 215:
 Where: Where:
  
-  * testdb is the name of the database to be updated and this must already exist.+  * testdb is the name of the database to be updated and it will be created if it does not exist.
   * - -import is the operation to be performed.   * - -import is the operation to be performed.
   * cowpatty indicates it is a cowpatty table.   * cowpatty indicates it is a cowpatty table.
Line 256: Line 246:
  
 ===== Usage Tips ===== ===== Usage Tips =====
 +
 +==== Creating your own database example ====
  
 To test the tool yourself... To test the tool yourself...
Line 261: Line 253:
   * get yourself the sqlite3 library and headers (latest version is recommended)   * get yourself the sqlite3 library and headers (latest version is recommended)
   * get yourself the 1.0dev version of the aircrack-ng suite   * get yourself the 1.0dev version of the aircrack-ng suite
-  * import some essid, e.g. "echo Harkonen | airolib-ng testdb import ascii essid -" +  * import an essid, e.g. "echo Harkonen | airolib-ng testdb --import essid -" 
-  * import some passwords, e.g. "echo 12345678 | airolib-ng testdb import ascii passwd -" + 
-  * start the batch process ("airolib-ng testdb batch"), wait for it to run out of work, kill it +   Database <testdb> does not already exist, creating it... 
-  * crack your WPA/WPA2 handshake, e.g. "aircrack-ng -r testdb -e Harkonen -wpa2.eapol.cap"+   Database <testdb> sucessfully created 
 +   Reading file... 
 +   Writing... 
 +   Done. 
 + 
 +  * import a password, e.g. "echo 12345678 | airolib-ng testdb --import passwd -" 
 + 
 +   Reading file... 
 +   Writing... 
 +   Done. 
 + 
 +  * start the batch process ("airolib-ng testdb --batch"), wait for it to run out of work or pause it with Ctrl-C 
 + 
 +   Computed 1 PMK in 0 seconds (1 PMK/s, 0 in buffer). All ESSID processed. 
 + 
 +  * Check the database to confirm everything has been computed ("airolib-ng testdb --stats"
 + 
 +   There are 1 ESSIDs and 1 passwords in the database. 1 out of 1 possible combinations have been computed (100%). 
 +    
 +   ESSID   Priority        Done 
 +   Harkonen        64      100.0 
 + 
 +  * crack your WPA/WPA2 handshake, e.g. "aircrack-ng -r testdb -e Harkonen wpa2.eapol.cap" 
 + 
 +   KEY FOUND! [ 12345678 ] 
 + 
 + 
 + 
 +==== Using a sample pre-made database ==== 
 + 
 +Another way to test for yourself is to download a pre-made database called [[http://download.aircrack-ng.org/wiki-files/other/passphrases.db|passphrases.db]].  This  file is also located in the test directory of the aircrack-ng sources. Then try this database with the two test WPA/WPA2 files supplied in the test directory of the aircrack-ng sources.  The WPA/WPA2 test files are called "wpa.cap" and "wpa2.eapol.cap"
 + 
 +The commands are either of: 
 + 
 +   aircrack-ng -r passphrases.db wpa.cap 
 +   aircrack-ng -r passphrases.db wpa2.eapol.cap 
 + 
 +This should give you the passphase.  Success indicates that your setup is working correctly. 
  
 ===== Usage Troubleshooting ===== ===== Usage Troubleshooting =====
Line 270: Line 300:
  
 ==== Enabling Airolib-ng ==== ==== Enabling Airolib-ng ====
-Airolib-ng is not compiled by default.  To enable compiling, do "make SQLITE=true" and "make sqlite=true install".+Airolib-ng is not compiled by default.  To enable compiling, do "make sqlite=true" and "make sqlite=true install".
  
 ==== Compile Error ==== ==== Compile Error ====
-Although this is not a usage troublshooting tip, it is a common problem during the compilation of the 1.0dev version.  As a reminder, SQLite must be version 3.3.13 or above.  This is the compile error you receive when your version of SQLite is less then the requirement:+Although this is not a usage troubleshooting tip, it is a common problem during the compilation of the 1.0dev version.  As a reminder, SQLite must be version 3.3.13 or above.  This is the compile error you receive when your version of SQLite is less then the requirement:
  
   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   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
Line 287: Line 317:
  
 It is not required for linux installations. It is not required for linux installations.
 +
 +==== Airolib-ng fails to open or create the database ====
 +
 +On windows only, opening/creating a database doesn't work when airolib-ng is in directories containing special characters like 'ç', 'é', 'è', 'à', ... (directories containing spaces are not affected).
 +
 +The solution is to move airolib-ng and its database in another directory without these special characters.
 +
 +==== "invalid lines ignored" error message ====
 +
 +This error message may occur when importing passwords or ESSIDs.   It is the number of records with invalid passwords or ESSIDs lengths.  The valid lengths are:
 +
 +  * Passwords must have a length of 8 through 63 characters
 +  * ESSIDs must have a length of 1 through 32 characters
 +
 +==== "Quitting aircrack-ng..." error message ====
 +
 +If you subsequently run aircrack-ng and only receive "Quitting aircrack-ng..." then the ESSID is missing from the database.  You need to load it plus rerun the batch option.
  
airolib-ng.txt · Last modified: 2019/04/15 19:07 by mister_x