2021年9月12日 星期日

hashcat到底怎麼了?不認得cap2hccapx轉出的檔案

玩暴力破解的人,對John the Ripper(簡稱JtR)和Hashcat應該不陌生,這幾天趁空想比較JtR、Hashcat及Aircrack-ng破解WPA2的操作方法,論效能,大家潛意識會選Hashcat吧!所以這篇不是比較效能,而是比較不同的操作方法。

三種方法的前置作業都是先擷取封包,就是利用airodump-ng抓取目標AP的封包。當收集足夠理想的封包後,接下來的作法就略有不同。本例採用「暴力破解」,假設密碼是8位的數字(密碼愈長愈複雜,破解時間愈長)。

利用aircrack-ng破解

aircrack-ng可以直接處理擷取到的*.cap檔,但本身無暴力產生密碼功能,需要借助用john的mask模式,指令如下:(aircrack-ng的-w -參數表示從STDIN讀入字典)

john --mask=?d?d?d?d?d?d?d?d --stdout | aircrack-ng -a 2 -b 1C:AB:C0:DD:xx:xx abc-01.cap -w -

利用Johnt the Ripper破解

要使用JtR破解WPA2,必須先利用wpapcap2john將*.cap轉成JtR認得的格式:

wpapcap2john abc-0*.cap >  ap.john
john --mask=?d?d?d?d?d?d?d?d --format=wpapsk ap.john

利用Hashcat破解

要使用Hashcat破解WPA2,必須先利用cap2hccpax或aircrack-ng將*.cap轉成hccapx格式:

aircrack-ng -j ap.hccapx abc-01.cap
cap2hccapx abc-01.cap ap.hccapx
hashcat -a 3 -m 22000 ap.hccapx ?d?d?d?d?d?d?d?d

不同版本的hccapx

Kali裡的hashcat 6.1.1版可以正常破解cap2hccpax轉出的檔案,但Windows 10裡的6.2.4卻出現下列錯誤:

https://hashcat.net/cap2hashcat/線上轉檔的結果,hashcat 6.2.4版則可正常處理。

1. 將.cap檔上傳到https://hashcat.net/cap2hashcat/
2. 下載轉檔後的結果
經比較發現,cap2hccpax或aircrack-ng轉檔的結果是二進制檔,而線上轉檔的結果是文字檔,所以,想用Windows的hashcat破解WPA2,可以將*.cap檔上傳到https://hashcat.net/cap2hashcat/轉檔。

2021年9月8日 星期三

Kali的sparta整合工具不見了,請改用legion

sparta是一款圖形化的整合型掃描與枚舉平台,本身並沒有掃描功能,但它將nmap、Nikto、hydra、nbtscan等多種工具整合在一起,我們只要提供待測目標的網址清單,sparta就會利用nmap掃描,再依照掃描結果調用其他工具做後續處理,可替滲透測試人節省掉很多時間。 

sparta

由於sparta的開發者已不在維護,而它的執行環境是python 2.6,也是已過時的版本,故Kali自2019.4版之後就移除sparta了,對於習慣使用sparta從事滲透測試者,或許可以改用legionlegion的操作介面幾乎和sparta一樣。不過,Kali並未事先安裝legion,需要自己動手:

apt-get install legion
legion執行畫面

安裝後,可參考「自定Kali應用程式選單(Applications Menu) 的項目(成員)」這篇的作法,將legion加到Kali應用程式選單中,底下就是筆者的legion.desktop內容,加入選單後,就可分別從「01-信息收集─>情報分析」及「05-密碼攻擊─>在線攻擊」兩處找到legion:

[Desktop Entry]
Name=legion(Sparta)
Encoding=UTF-8
Exec=legion
Icon=kali-menu
StartupNotify=false
Terminal=true
Type=Application
Categories=01-07-osint-analysis;05-01-online-attacks;
X-Kali-Package=legion

自定Kali應用程式選單(Applications Menu) 的項目(成員)

Kali以前使用Gnome桌面,可以透過Alacarte工具編輯應用程式選單。改用Xfce桌面後,還是可以安裝Alacarte,但是它只能編輯現有項目的屬性,卻無法新增項目。

網路推薦的Xfce選單編輯器是menulibre,安裝後一執行卻出現「MenuLibre cannot be run as root.」,不能用root執行,偏偏我已習慣用root操作Kali。

為此,另外建了一組帳號,再執行「 su - kali -c menulibre」,這次出現別的錯誤:

root@kali-2020-3:~# su - kali -c menulibre
┏━(Message from Kali developers)

┃ We have kept /usr/bin/python pointing to Python 2 for backwards
┃ compatibility. Learn how to change this and avoid this message:
┃ ⇒ https://www.kali.org/docs/general-use/python3-transition/

┗━(Run: “touch ~/.hushlogin” to hide this message)
Unable to init server: Could not connect: Connection refused
Unable to init server: 無法連接:Connection refused

(menulibre:4377): Gtk-CRITICAL **: 08:10:06.059: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
No menu prefix found, MenuLibre will not function properly.
Unable to init server: 無法連接:Connection refused

(menulibre:4377): Gtk-WARNING **: 08:10:06.082: cannot open display: 

實在不想花太多時間去處理偶爾才用一次的功能,最後還是將menulibre移除了。


為什麼需要編輯功能表?因為新安裝工具後,若一段時間不用,常忘了工具的名稱,如果能將工具安排在選單裡,就算忘了名稱,大概還記得工具的類型,較容易從選單裡找到。

既然Alacarte及menulibre不能用,就改用手工編輯吧!反正偶爾才用一次。

注意:這不是標準,也非精確的作法,只是剛好解決在應用程式選單加入新項目的需求。

首先是xfce的選單項目是存放在「/usr/share/kali-menu/applications/」目錄裡,每個項目的副檔名是「.desktop」,就以「Kali-nmap.desktop」為例,其內容如下:

[Desktop Entry]
Name=nmap
Encoding=UTF-8
Exec=/usr/share/kali-menu/exec-in-shell "nmap"
Icon=kali-nmap
StartupNotify=false
Terminal=true
Type=Application
Categories=01-info-gathering;01-04-network-scanners;02-vulnerability-analysis;
X-Kali-Package=nmap

這是相對單純的項目內容,還有其他更複雜的項目,但這個單純範例已符合我的需要!當需要新增項目的,就可以直接複製Kali-nmap.desktop來修改,例如要增加一個vega選項:

cp Kali-nmap.desktop vega.desktop

然後編輯vega.desktop,如下:

[Desktop Entry]
Name=vega
Encoding=UTF-8
Exec=vega
Icon=kali-menu
StartupNotify=false
Terminal=true
Type=Application
Categories=01-info-gathering;03-05-web-vulnerability-scanners;
X-Kali-Package=vega

主要修改部分如紅粗字接著將此檔案複製一份到「/usr/share/applications/,這樣就完成選單項目新增,如下圖黃圈的vega就是我手工加到選單上的。當然,只要將檔案刪除就可移除選單項目。

再說一次,這不是標準作法,只是剛好解決增、刪、改選單項目的要求。

檔案內容說明

[Desktop Entry]                         # 區段名稱,不需修改
Version=1.0                              # 版號
Name=vega                              # 呈現的名稱,各語系通用,要修改
Comment=Web vulnerability Scanner          # 提示文字,當滑鼠停駐項目時彈出,各語系通用
Name[zh_CN]=vega 扫描            # zh_CN,作業系統使用簡中語系時呈現的名稱
Comment[zh_CN]= Web漏洞扫描工具     # zh_CN,作業系統使用簡中語系時呈現的提示文字
Name[zh_TW]=vega 掃描            # zh_TW,作業系統使用繁中語系時呈現的名稱
Comment[zh_TW]= Web漏洞 掃描 工具     # zh_TW,作業系統使用繁中語系時呈現的提示文字
Encoding=UTF-8                     # 編碼格式
Type=Application                    # 類型   Application,或Link
Exec=vega                             # 選擇此項目時要執行的命令,如同手動在終端機執行
Icon=kali-menu                          # 此選單項目的圖示,請參考下列「Icon的來源」段
StartupNotify=false                 # 啟動時,要不要顯示提示視窗?反正設為false就對了
Terminal=true                           # ?? 不清楚,照著設為true
Categories=02-vulnerability-analysis;                 # 要放在選單的哪個分類下,若要放在多個分類,請用「;」分隔,至於怎麼找到分類名稱,請參考下面「分類名稱來源」段的說明
X-Kali-Package=vega                  # kali裡的套件名稱 

除了Type=Application使用用Exec執行命令外,如果「Type=Link」則可透過「URL=<URL>」指定欲由預設瀏覽器開啟的網址。

如果希望應用程式在終端機內執行,可將Exec的值修改如下,前段的「/usr/share/kali-menu/exec-in-shell」會啟動作業系統的終端機,後段的「"hydra -h"」代表要在此終端機內執行的命令及傳遞 此命令的參數。

Exec=/usr/share/kali-menu/exec-in-shell "hydra -h"


Icon的來源

項目內容裡的Icon參數只需指定圖示名稱,系統會參照「/usr/share/icons/hicolor/DxD/apps/」內的同名稱圖示檔,如上例的「kali-menu」就是指 kali-menu.png,前述路徑裡的DxD是指圖示大小,有興趣者,可以自己到「/usr/share/icons/hicolor/」目錄下找找!

分類名稱來源

分類名稱就從現有的選單項目內容去,例如想找自定的選單項目放在「06-無線攻擊」裡的「藍牙工具集」,「cat kali-btscanner.desktop」就會發現分類名稱是「06-02-bluetooth-tools

root@kali-2019-3:/usr/share/applications# cat kali-btscanner.desktop
[Desktop Entry]
Name=btscanner
Encoding=UTF-8
Exec=/usr/share/kali-menu/exec-in-shell "btscanner -h"
Icon=kali-menu
StartupNotify=false
Terminal=true
Type=Application
Categories=06-02-bluetooth-tools;
X-Kali-Package=btscanner

不要問我如何新增分類夾,我還沒有找到答案,如果有人知道,也請告訴我,謝謝!