Airolib-ng
描述
Airolib-ng是一款aircrack-ng套件工具,旨在存儲和管理essid和密碼列表,計算其成對主密鑰(PMK)并將其用于WPA / WPA2破解。該程序使用輕量級SQLite3數據庫作為大多數平臺上可用的存儲機制。選擇SQLite3數據庫時要考慮平臺可用性以及管理,內存和磁盤開銷。
WPA / WPA2破解涉及計算成對的主密鑰,從該主密鑰導出派生臨時密鑰(PTK)。使用PTK,我們可以計算給定數據包的幀消息標識碼(MIC),并有可能發現MIC與數據包的相同,因此PTK是正確的,因此PMK也正確。
由于PMK使用pbkdf2算法,因此計算速度非常慢。但是,對于給定的ESSID和密碼組合,PMK始終相同。這使我們可以為給定的組合預先計算PMK,并加快破解wpa / wpa2握手的速度。測試表明,在aircrack-ng破解中使用此技術可以使用預先計算的PMK表每秒檢查超過50000個密碼。
仍然需要計算PMK,但是我們可以:
預計算它以供以后和/或共享使用。
使用分布式計算機生成PMK并將其值用于其他地方。
要了解有關WPA / WPA2的更多信息:
- 請參閱Wiki頁面上的“ WPA / WPA2信息”部分。
要了解有關coWPAtty的更多信息:
Will Hack for SUSHI> CoWPAtty
無線防御CoWPAtty撰寫
如上所述,該程序需要SQLite3數據庫環境。您必須運行3.3.17或更高版本。您可以從SQLite下載頁面獲取最新版本。
用法
用法:airolib <數據庫> <操作> [選項]
哪里:
database是數據庫文件的名稱。(可選)指定完整路徑。
operation指定您要對數據庫執行的操作。請參閱下面的完整列表。
根據指定的操作,可能需要選件
這是有效的操作:
–stats-輸出有關數據庫的一些信息。
–sql {sql}-執行指定的SQL語句。
–clean [all]-執行步驟以清除舊的垃圾數據庫。如果可能,選項“全部”還將減小文件大小并運行完整性檢查。
–批處理-開始批處理ESSID和密碼的所有組合。必須在aircrack-ng中使用數據庫之前或在添加其他SSID或密碼之后運行此程序。
–驗證[全部]-驗證一組隨機選擇的PMK。如果給出選項“ all”,則將驗證數據庫中的所有PMK,并刪除不正確的PMK。
–export cowpatty {essid} {file}-導出到cowpatty文件。
–import cowpatty {文件}-導入cowpatty文件并創建數據庫(如果該文件不存在)。
–導入{essid | passwd} {file}-導入文本平面文件作為ESSID或密碼的列表,并創建數據庫(如果不存在)。該文件每行必須包含一個essid或密碼。行應以換行符終止。含義在輸入值時,在每行末尾按“輸入”。
使用范例
這是每個操作的用法示例。
狀態操作
輸入:
airolib-ng testdb --stats
哪里:
testdb是要創建的數據庫的名稱。
–stats是要執行的操作。
系統響應:
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
SQL操作
以下示例將為SSID“ VeryImportantESSID”賦予最高優先級。
輸入:
airolib-ng testdb --sql 'update essid set prio=(select min(prio)-1 from essid) where essid="VeryImportantESSID";'
系統響應:
update essid set prio=(select min(prio)-1 from essid) where essid="VeryImportantESSID";
Query done. 1 rows affected.
以下示例將在pmk中查找非常重要的模式。
輸入:
airolib-ng testdb --sql 'select hex(pmk) from pmk where hex(pmk) like "%DEADBEEF%"'
系統響應:
hex(pmk) BF3F122D3CE9ED6C6E7E1D7D13505E0A41EC4C5A3DEADBEEFFEFF597387AFCE3
Clean操作
要進行基本Clean,請輸入:
airolib-ng testdb --clean
系統響應:
cleanDeleting invalid ESSIDs and passwords...
Deleting unreferenced PMKs...
Analysing index structure...
Done.
要進行基本Clean減小文件大小并運行完整性檢查。請輸入:
airolib-ng testdb --clean all
系統響應:
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.
批量操作
輸入:
airolib-ng testdb --batch
系統響應:
Computed 464 PMK in 10 seconds (46 PMK/s, 0 in buffer). No free ESSID found. Will try determining new ESSID in 5 minutes...
驗證操作
要驗證1000個隨機PMK,請輸入:
airolib-ng testdb --verify
系統響應:
verifyChecking ~10.000 randomly chosen PMKs...
ESSID CHECKED STATUS
Harkonen 233 OK
teddy 233 OK
要驗證所有PMK,請輸入:
airolib-ng testdb --verify all
系統響應:
verifyChecking all PMKs. This could take a while...
ESSID PASSWORD PMK_DB CORRECT
Cowpatty表導出操作
輸入:
airolib-ng testdb --export cowpatty test cowexportoftest
系統響應:
airolib-ng testdb --import essid ssidlist.txt
導入作業
SSID
要導入SSID的ascii列表并創建數據庫(如果不存在),請輸入:
airolib-ng testdb –import essid ssidlist.txt
哪里:
testdb是要更新的數據庫的名稱,如果它不存在,則將創建它。
–import是要執行的操作。
essid表示這是SSID的列表。
ssidlist.txt是包含SSID的文件名。每行一個。可以選擇完全合格。
系統響應:
importReading...
Writing...
Done.
密碼
要導入密碼的ascii列表并創建數據庫(如果不存在),請輸入:
airolib-ng testdb --import passwd password.lst
哪里:
testdb是要更新的數據庫的名稱,如果它不存在,則將創建它。
–import是要執行的操作。
passwd指示它是密碼列表。
password.list是文件名。每行一個。可以選擇完全合格。
系統響應:
importReading...
Writing... read, 1814 invalid lines ignored.
Done.
牛扒桌
導入Cowpatty表并創建數據庫(如果不存在),請輸入:
airolib-ng testdb --import cowpatty cowexportoftest
哪里:
testdb是要更新的數據庫的名稱,如果它不存在,則將創建它。
–import是要執行的操作。
cowpatty表示它是一個cowpatty表。
cowexportoftest是文件名。每行一個。可以選擇完全合格。
系統響應:
importReading header...
Reading...
Updating references...
Writing...
Aircrack-ng用法示例
最終目標是在aircrack-ng下加速WPA / WPA2破解。要使用通過airolib-ng構建的表,請使用“ -r”選項來指定包含預先計算的PMK的數據庫。
輸入:
aircrack-ng -r testdb wpa2.eapol.cap
哪里:
-r指定將使用預先計算的PMK數據庫。
testdb是數據庫文件的名稱,可以選擇完全限定。
wpa2.eapol.cap是包含WPA / WPA2握手的捕獲文件。
注意:也可以使用適用于WPA / WPA2的所有其他標準選項。這是一個非常有限的例子。
使用技巧
創建自己的數據庫示例
要自己測試工具…
讓自己獲得sqlite3庫和標頭(建議使用最新版本)
取得aircrack-ng套件的1.0dev版本
導入一個essid,例如“ echo Harkonen | airolib-ng testdb –import essid-”
Database <testdb> does not already exist, creating it...
Database <testdb> sucessfully created
Reading file...
Writing...
Done.
- 導入密碼,例如“ echo 12345678 | airolib-ng testdb –import passwd-”
Reading file...
Writing...
Done.
- 啟動批處理過程(“ airolib-ng testdb –batch”),等待其用盡或使用Ctrl-C暫停
Computed 1 PMK in 0 seconds (1 PMK/s, 0 in buffer). All ESSID processed.
- 檢查數據庫以確認所有內容均已計算(“ 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
- 破解您的WPA / WPA2握手,例如“ aircrack-ng -r testdb -e Harkonen wpa2.eapol.cap”
KEY FOUND! [ 12345678 ]
使用預先制作的樣本數據庫
進行自我測試的另一種方法是下載一個名為passphrases.db的預制數據庫。該文件也位于aircrack-ng來源的測試目錄中。然后嘗試使用aircrack-ng源的測試目錄中提供的兩個測試WPA / WPA2文件來嘗試該數據庫。WPA / WPA2測試文件稱為“ wpa.cap”和“ wpa2.eapol.cap”。
這些命令是以下之一:
aircrack -ng -r passphrases.db wpa.cap aicrack-ng -r passphrases.db wpa2.eapol.cap
這應該給您通過階段。成功表示您的安裝正常。
使用故障排除
啟用Airolib-ng
默認情況下不編譯Airolib-ng。要啟用編譯,請執行“ make sqlite = true”和“ make sqlite = true install”。
編譯錯誤
盡管這不是使用故障排除技巧,但這是在1.0dev版本的編譯過程中的常見問題。提醒一下,SQLite必須為3.3.13或更高版本。當您的SQLite版本小于要求時,這是您收到的編譯錯誤:
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
什么時候需要SQLite補丁?
僅當在Windows下編譯時,才需要使用aircrack-ng源附帶的SQLite補丁。需要刪除一些不會在Windows下編譯且不需要的元素。
linux安裝不需要它。
Airolib-ng無法打開或創建數據庫
僅在Windows上,當airolib-ng位于包含特殊字符(例如’?’,’é’,’è’,’à’,…)的目錄中時,打開/創建數據庫不起作用(包含空格的目錄不受影響)。
解決方案是將airolib-ng及其數據庫移到另一個目錄中,而無需這些特殊字符。
“無效的行被忽略”錯誤信息
導入密碼或ESSID時可能會出現此錯誤消息。它是具有無效密碼或ESSID長度的記錄的數量。有效長度為:
密碼的長度必須為8到63個字符
ESSID的長度必須為1到32個字符
“退出aircrack-ng …”錯誤消息
如果隨后運行aircrack-ng并且僅收到“ Quiting aircrack-ng…”,則數據庫中缺少ESSID。您需要加載它,然后重新運行批處理選項。
Aircrack-ng中文使用教程
推薦文章: