airolib-ng
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
airolib-ng [2007/07/09 22:02] – darkaudax | airolib-ng [2009/09/08 01:21] – removed availability warning (1.0 is released) mister_x | ||
---|---|---|---|
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. | + | 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. |
WPA/WPA2 cracking involves calculating the pairwise master key, from which the private transient key (PTK) is derived. | WPA/WPA2 cracking involves calculating the pairwise master key, from which the private transient key (PTK) is derived. | ||
Line 33: | Line 23: | ||
* [[http:// | * [[http:// | ||
- | See the code attached for more info. This is the first version | + | As stated above, this program requires |
- | + | ||
- | To test the tool get yourself a current 1.0-dev checkout and... | + | |
- | + | ||
- | * get yourself | + | |
- | * compile airolib-ng in src/ directory with -lsqlite3 -lssl and crypto.c | + | |
- | * compile aircrack-ng with -DHAVE_SQLITE and -lsqlite3. This will make a new option " | + | |
- | * create a new database file with " | + | |
- | * import some essid, e.g. "echo Harkonen | + | |
- | * import some passwords, e.g. "echo 12345678 | airolib-ng testdb import ascii passwd -" | + | |
- | * start the batch process (" | + | |
- | * crack your WPA/WPA2 handshake, e.g. " | + | |
Line 59: | Line 38: | ||
Here are the valid operations: | Here are the valid operations: | ||
- | * init | + | * - -stats - Output some information about the database. |
- | * stats - Output some information about the database. | + | * - -sql {sql} - Execute the specified SQL statement. |
- | * sql {sql} - Execute the specified SQL statement. | + | * - -clean [all] - Perform steps to clean the database from old junk. The option ' |
- | * clean [all] - Perform steps to clean the database from old junk. The option ' | + | * - -batch - Start batch-processing all combinations of ESSIDs and passwords. |
- | * batch - Start batch-processing all combinations of ESSIDs and passwords. | + | * - -verify [all] - Verify a set of randomly chosen PMKs. If the option ' |
- | * verify [all] - Verify a set of randomly chosen PMKs. If the option ' | + | * - -export cowpatty {essid} {file} |
- | * export cowpatty {essid} {file} | + | * - -import cowpatty {file} |
- | * import cowpatty {file} | + | * - -import {essid|passwd} {file} |
- | * import | + | |
===== Usage Examples ===== | ===== Usage Examples ===== | ||
Line 74: | Line 51: | ||
Here are usage examples for each operation. | Here are usage examples for each operation. | ||
- | ==== Init Operation ==== | + | ==== Status |
- | + | ||
- | You must be in the directory where you want the database created or specify the fully qualified path name. | + | |
Enter: | Enter: | ||
- | | + | |
Where: | Where: | ||
* testdb is the name of the database to be created. | * testdb is the name of the database to be created. | ||
- | * init is the operation to be performed. | + | * - -stats |
- | The system | + | The system |
+ | | ||
+ | |||
+ | | ||
+ | | ||
+ | | ||
- | ==== Status | + | ==== SQL Operation ==== |
+ | |||
+ | The following example will give the SSID " | ||
Enter: | Enter: | ||
- | | + | |
- | Where: | + | The system responds: |
- | | + | |
- | * stats is the operation to be performed. | + | |
- | The system responds: | + | The following example will look for very important patterns in the pmk. |
- | | + | Enter: |
- | + | ||
- | | + | |
- | | + | |
- | | + | |
+ | | ||
- | ==== SQL Operation ==== | + | The system responds: |
- | + | ||
- | Coming soon! | + | |
+ | | ||
==== Clean Operation ==== | ==== Clean Operation ==== | ||
Line 119: | Line 97: | ||
To do a basic cleaning, enter: | To do a basic cleaning, enter: | ||
- | | + | |
The system responds: | The system responds: | ||
Line 131: | Line 109: | ||
To do a basic cleaning, reduce the file size if possible and run an integrity check., enter: | To do a basic cleaning, reduce the file size if possible and run an integrity check., enter: | ||
- | | + | |
The system responds: | The system responds: | ||
Line 144: | Line 122: | ||
Query done. 2 rows affected. | Query done. 2 rows affected. | ||
Done. | Done. | ||
- | |||
==== Batch Operation ==== | ==== Batch Operation ==== | ||
Line 150: | Line 127: | ||
Enter: | Enter: | ||
- | | + | |
The system responds: | The system responds: | ||
| | ||
- | |||
- | IMPORTANT: You must press control-C to terminate this program once it is finished or it will continue to run indefinitely. | ||
- | |||
- | |||
==== Verify Operation ==== | ==== Verify Operation ==== | ||
Line 164: | Line 137: | ||
To verify a 1000 random PMKs, enter: | To verify a 1000 random PMKs, enter: | ||
- | | + | |
The system responds: | The system responds: | ||
Line 176: | Line 149: | ||
To verify all PMKs, enter: | To verify all PMKs, enter: | ||
- | | + | |
The system responds: | The system responds: | ||
Line 184: | Line 157: | ||
- | ==== Export cowpatty Operation ==== | + | ==== Cowpatty |
- | + | ||
- | ++++++ IMPORTANT ++++++\\ | + | |
- | + | ||
- | This functionality will be available in a future release. It is NOT available currently. | + | |
- | + | ||
- | ++++++ IMPORTANT ++++++\\ | + | |
- | ++++++ IMPORTANT ++++++\\ | + | |
- | ++++++ IMPORTANT ++++++\\ | + | |
- | + | ||
- | ===== 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. | + | |
- | + | ||
- | WPA/WPA2 cracking involves calculating the pairwise master key, from which the private transient key (PTK) is derived. | + | |
- | + | ||
- | Calculating the PMK is very slow since it uses the pbkdf2 algorithm. | + | |
- | + | ||
- | Computing the PMK is still required, yet we can: | + | |
- | + | ||
- | * Precompute it for later and/or shared use. | + | |
- | * Use distributed machines to generate the PMK and use their value elsewhere. | + | |
- | + | ||
- | To learn more about WPA/WPA2: | + | |
- | + | ||
- | * See the [[links# | + | |
- | + | ||
- | To learn more about coWPAtty: | + | |
- | + | ||
- | * [[http:// | + | |
- | * [[http:// | + | |
- | + | ||
- | See the code attached for more info. This is the first version posted and - if accepted - to be included into the tree. there still may be bugs and work to be done before released is marked in the code. | + | |
- | + | ||
- | To test the tool get yourself a current 1.0-dev checkout and... | + | |
- | + | ||
- | * get yourself the sqlite3 library and headers | + | |
- | * compile airolib-ng in src/ directory with -lsqlite3 -lssl and crypto.c | + | |
- | * compile aircrack-ng with -DHAVE_SQLITE and -lsqlite3. This will make a new option " | + | |
- | * create a new database file with " | + | |
- | * import some essid, e.g. "echo Harkonen | airolib-ng testdb import ascii essid -" | + | |
- | * import some passwords, e.g. "echo 12345678 | airolib-ng testdb import ascii passwd -" | + | |
- | * start the batch process (" | + | |
- | * crack your WPA/WPA2 handshake, e.g. " | + | |
- | + | ||
- | + | ||
- | ===== Usage ===== | + | |
- | + | ||
- | Usage: airolib < | + | |
- | + | ||
- | Where: | + | |
- | + | ||
- | * database is name of the database file. Optionally specify the full path. | + | |
- | * operation specifies the action you would like taken on the database. | + | |
- | * options may be required depending on the operation specified | + | |
- | + | ||
- | Here are the valid operations: | + | |
- | + | ||
- | * init - Create a new database file and it' | + | |
- | * stats - Output some information about the database. | + | |
- | * sql {sql} - Execute the specified SQL statement. | + | |
- | * clean [all] - Perform steps to clean the database from old junk. The option ' | + | |
- | * batch - Start batch-processing all combinations of ESSIDs and passwords. | + | |
- | * verify [all] - Verify a set of randomly chosen PMKs. If the option ' | + | |
- | * export cowpatty {essid} {file} | + | |
- | * import cowpatty {file} | + | |
- | * import ascii {essid|passwd} {file} | + | |
- | + | ||
- | + | ||
- | ===== Usage Examples ===== | + | |
- | + | ||
- | Here are usage examples for each operation. | + | |
- | + | ||
- | ==== Init Operation ==== | + | |
- | + | ||
- | You must be in the directory where you want the database created or specify the fully qualified path name. | + | |
Enter: | Enter: | ||
- | | + | |
- | Where: | + | The system responds: |
- | * testdb is the name of the database to be created. | + | |
- | * init is the operation to be performed. | + | Done. |
- | The system does not respond with any output. | ||
+ | ==== Import Operation ==== | ||
- | ==== Status Operation ==== | + | === SSID === |
+ | To import an ascii list of SSIDs and create the database if it does not exist, enter: | ||
- | Enter: | + | airolib-ng testdb |
- | + | ||
- | airolib-ng testdb | + | |
Where: | Where: | ||
- | * testdb is the name of the database to be created. | + | * testdb is the name of the database to be updated and it will be created |
- | * stats is the operation to be performed. | + | * - -import |
+ | * essid indicates it is a list of SSIDs. | ||
+ | * ssidlist.txt is the file name containing the SSIDs. | ||
The system responds: | The system responds: | ||
- | statsThere are 2 ESSIDs and 232 passwords in the database. 464 out of 464 possible combinations have been computed (100%). | + | importReading... |
- | + | Writing... | |
- | ESSID | + | Done. |
- | | + | |
- | | + | |
+ | === Passwords === | ||
+ | To import an ascii list of passwords and create the database if it does not exist, enter: | ||
- | ==== SQL Operation ==== | + | |
- | Coming soon! | + | Where: |
- | + | * testdb is the name of the database to be updated and it will be created if it does not exist. | |
- | ==== Clean Operation ==== | + | * - -import is the operation to be performed. |
- | + | * passwd indicates it is a list of passwords. | |
- | To do a basic cleaning, enter: | + | * password.list is the file name. One per line. It can optionally be fully qualified. |
- | + | ||
- | | + | |
The system responds: | The system responds: | ||
- | cleanDeleting invalid ESSIDs and passwords... | + | importReading... |
- | Deleting unreferenced PMKs... | + | Writing... read, 1814 invalid lines ignored. |
- | | + | |
Done. | Done. | ||
+ | === Cowpatty tables === | ||
- | To do a basic cleaning, reduce | + | Imports |
- | | + | |
- | The system responds: | + | Where: |
- | | + | * testdb is the name of the database to be updated |
- | Deleting unreferenced PMKs... | + | * - -import is the operation to be performed. |
- | | + | * cowpatty indicates it is a cowpatty table. |
- | | + | * cowexportoftest is the file name. One per line. It can optionally be fully qualified. |
- | Checking database integrity... | + | |
- | | + | |
- | ok | + | |
- | Query done. 2 rows affected. | + | |
- | | + | |
- | + | ||
- | + | ||
- | ==== Batch Operation ==== | + | |
- | + | ||
- | Enter: | + | |
- | + | ||
- | | + | |
The system responds: | The system responds: | ||
- | Computed 464 PMK in 10 seconds (46 PMK/s, 0 in buffer). No free ESSID found. Will try determining new ESSID in 5 minutes... | + | importReading header... |
+ | | ||
+ | | ||
+ | | ||
- | IMPORTANT: You must press control-C to terminate this program once it is finished or it will continue to run indefinitely. | ||
+ | ===== Aircrack-ng Usage Example ===== | ||
- | + | The ultimate objective is to speed up WPA/WPA2 cracking under [[aircrack-ng]]. | |
- | ==== Verify Operation ==== | + | |
Enter: | Enter: | ||
- | airolib-ng testdb | + | aircrack-ng |
Where: | Where: | ||
- | * testdb is the name of the database and may be optionally fully qualified. | + | |
- | * export cowpatty is the operation to be peformed. | + | |
- | * test is the SSID to be exported. | + | * wpa2.eapol.cap is capture file containing |
- | * cowexportoftest | + | |
- | The system responds: | + | Note: All the other standard options which are applicable to WPA/WPA2 may also be used. This is a very limited example. |
- | | ||
- | Done. | ||
+ | ===== Usage Tips ===== | ||
- | ==== Import cowpatty Operation | + | ==== Creating your own database example |
- | Enter: | + | To test the tool yourself... |
- | airolib-ng testdb import | + | * get yourself the sqlite3 library and headers (latest version is recommended) |
+ | * get yourself the 1.0dev version of the aircrack-ng suite | ||
+ | * import an essid, e.g. "echo Harkonen | airolib-ng testdb | ||
- | Where: | + | |
+ | | ||
+ | | ||
+ | | ||
+ | Done. | ||
- | | + | * import |
- | | + | |
- | * cowexportoftest is the coWPAtty file to be imported and may be optionally fully qualified. | + | |
- | The system responds: | + | Reading |
- | + | ||
- | | + | |
- | Reading... | + | |
- | | + | |
| | ||
+ | Done. | ||
+ | * start the batch process (" | ||
- | ==== Import ascii Operation ==== | + | |
- | To import an ascii list of SSIDs, enter: | + | * Check the database to confirm everything has been computed (" |
- | airolib-ng testdb import ascii essid ssidlist.txt | + | There are 1 ESSIDs and 1 passwords in the database. 1 out of 1 possible combinations have been computed (100%). |
+ | |||
+ | | ||
+ | | ||
- | Where: | + | * crack your WPA/WPA2 handshake, e.g. " |
- | * testdb is the name of the database to be updated and this must already exist. | + | KEY FOUND! [ 12345678 ] |
- | * import ascii is the operation to be performed. | + | |
- | * essid indicates it is a list of SSIDs. | + | |
- | * ssidlist.txt is the file name containing the SSIDs. | + | |
- | The system responds: | ||
- | | ||
- | | ||
- | Done. | ||
+ | ==== Using a sample pre-made database ==== | ||
- | To import an ascii list of passwords, enter: | + | Another way to test for yourself is to download a pre-made database called [[http:// |
- | | + | The commands are either of: |
- | Where: | + | |
+ | | ||
- | * testdb is the name of the database to be updated and this must already exist. | + | This should give you the passphase. |
- | * import ascii is the operation to be performed. | + | |
- | * passwd | + | |
- | * password.list is the file name. One per line. It can optionally be fully qualified. | + | |
- | The system responds: | ||
- | | + | ===== Usage Troubleshooting ===== |
- | | + | |
- | Done. | + | |
- | ===== Aircrack-ng Usage Example | + | ==== Enabling Airolib-ng ==== |
+ | Airolib-ng is not compiled by default. | ||
- | The ultimate objective | + | ==== Compile Error ==== |
+ | Although this is not a usage troublshooting tip, it is a common problem during the compilation of the 1.0dev version. | ||
- | Enter: | + | gcc -g -W -Wall -Werror -O3 -D_FILE_OFFSET_BITS=64 -D_REVISION=`../ |
+ | airolib-ng.c: In function `sql_prepare': | ||
+ | airolib-ng.c: | ||
+ | make[1]: *** [airolib-ng.o] Error 1 | ||
+ | make[1]: Leaving directory `/ | ||
+ | make: *** [all] Error 2 | ||
+ | |||
+ | ==== When is the SQLite patch needed? ==== | ||
- | aircrack-ng | + | The SQLite patch included with aircrack-ng |
- | Where: | + | It is not required for linux installations. |
- | * -r specifies that a pre-computed PMK database will be used. | + | ==== Airolib-ng fails to open or create |
- | * testdb is the name of the database | + | |
- | * wpa2.eapol.cap is capture file containing the WPA/WPA2 handshake. | + | |
- | Note: All the other standard options which are applicable to WPA/WPA2 may also be used. This is a very limited example. | + | On windows only, opening/creating |
+ | The solution is to move airolib-ng and its database in another directory without these special characters. | ||
- | ===== Usage Tips ===== | + | ==== " |
- | None at this time. | + | This error message can occur when importing passwords or ESSIDs. It is the number of records with invalid passwords or ESSIDs lengths. |
+ | * Passwords must have a length of 8 through 63 characters | ||
+ | * ESSIDs must have a length of 1 through 32 characters | ||
- | ===== Usage Troubleshooting | + | ==== " |
- | + | ||
- | None at this time. | + | |
+ | If you subsequently run aircrack-ng and only receive " | ||
airolib-ng.txt · Last modified: 2019/04/15 19:07 by mister_x