hashcat 是一套開源 (MIT License) 的離線密碼破解軟體,還能利用顯示卡 GPU 加快破解速度。其官網宣稱是「世界上最快的密碼破解工具」,廣泛支援許多常用的雜湊值演算法,以及破解攻擊模式。
「深入 hashcat 系列」是針對想要深耕資安領域的你,所撰寫的一系列文章。每篇文章針對 hashcat 其中一個參數、參數值或功能,進行說明,並搭配實做指令範例,幫助你快速掌握 hashcat 。
Markov chain (馬可夫鏈) 是一種隨機過程的統計機率模型,hashcat 應用馬可夫鏈加快破解速度,若對馬可夫鏈還不熟悉的讀者可以參考這篇文章。
在上一篇文章,我們介紹了產生hcstat 格式的元老級程式 – hcstatgen,可惜 hashcat 最新版本已不支援此格式。目前hashcat 第 2 代馬可夫鏈統計資料模型的儲存格式是 hcstat2,與第 1 代 hcstat 儲存格式差異在於:
- 支援更長的密碼長度
- 加註版號資訊
- 壓縮儲存
hashcat 協助使用者產出 hcstat2 儲存格式的工具程式為 hcstat2gen 。接下來會講解 hcstat2gen 的原理,請你一起來探尋 hcstatgen 工具程式的原理奧秘吧!
*請留意文章中提到的工具軟體,請在授權環境下執行測試與使用,禁止在非授權環境下執行!
Photo by Ian Livesey on StockSnap
文章目錄
hcstat2gen 工具程式簡介
hcstat2 是 hashcat 第二代的馬可夫鏈統計資料模型的儲存格式,最多支援密碼長度到 256 個字元,亦是目前 hashcat 主程式採用的儲存格式。
負責產出 hcstat2 格式的工具程式即是 hcstat2gen。
kali Linux 使用者,請安裝 hashcat-utils
套件,來使用 hcstat2gen 。安裝路徑在 /usr/lib/hashcat-utils/hcstat2gen.bin,後續的程式摘要,為了縮短篇幅,統一使用 hcstat2gen代替。
$ sudo apt install hashcat-utils
讀者可使用 alias 設定 hcstat2gen,方便執行文章後面提到的指令。
$ alias hcstat2gen="/usr/lib/hashcat-utils/hcstat2gen.bin"
hcstat2gen 工具程式使用方式
- 先準備一個文字檔,比方說是 hello.txt,內容如下:
$ cat hello.txt hello world
- 使用 hcstat2gen 產生馬可夫鏈的機率模型檔案 (hello.hcstatraw2),指令如下:
$ hcstat2bin hello.hcstatraw2 < hello.txt
hello.hcstatraw2 檔名是自己取的,讀者可以自行更換檔名。
- hello.hcstatraw2 檔案還需要使用 lzma 執行檔壓縮(壓縮檔名:hello.hcstat2),才能匯入 hashcat 使用,指令如下:
$ lzma --compress --format=raw --stdout -9e hello.hcstatraw2 > hello.hcstat2
產出的 hell.hcstat2 檔案就可以做為 hashcat 的 —markov-hcstat2
參數內容,搭配使用。
若沒有 lzma 執行檔,可安裝 xz-utils 套件。
$ apt install xz-utils
與第一代 hcstatgen 產出格式的差異點
與第一代 hcstatgen 產出的格式差異點,主要有 3 點。
- 支援更長的密碼長度
- 加註版號資訊
- 壓縮儲存
密碼長度(PW_MAX) 從 64 個字元延長至 256 個字元,同時因應密碼長度延長,檔案 size 也會成長,例如 hello.txt 的 hcstat 檔案 size 是 33 MB,hcstat2 檔案 size成長 至 129 MB。
檔案最前面 8 個 bytes 新增加檔案 magic word (hcstat) 與 版號資訊(0002),如下:
00000000: 6863 7374 6174 0002 0000 0000 0000 0000 hcstat..........
產出的檔案還需要使用 lzma 執行檔壓縮,才能做為 hashcat 的 —markov-hcstat2
的參數內容。
由於 hcstat 第 2 版僅是密碼長度加長、加註版號。程式運作邏輯與資料結構與第 1 版相似,我就不再花篇幅贅述其資料結構,有興趣的讀者可翻閱前一篇 「hcstatgen 篇: per-position Markov chain attack – 深入 hashcat 系列文章。」
小結
這篇文章介紹了 hcstat2gen,教大家如何操作 hashcat 的 hcstat2gen 工具程式,產生目前最新的 hcstat 第 2 版的馬可夫鏈儲存格式。
希望對讀者有幫助,若你喜歡這篇文章,請幫我分享給你的好朋友,並且在底下留言鼓勵我。期待在下篇,再與你見面。
深入 hashcat 系列文章
- 深入 hashcat 系列:Mask Attack Mode
- 深入 hashcat 系列:Straight Attack Mode (字典攻擊模式)
- 深入 hashcat 系列:Combinator Attack Mode
- 深入 hashcat 系列:Hybrid Attack Mode (綜合攻擊模式)
- 深入 hashcat 系列:per-position Markov chain attack (上篇)
- hcstatgen 篇: per-position Markov chain attack – 深入 hashcat 系列文章
- 使用 hcstat2gen 產出 hcstat2 馬可夫鏈模型儲存格式: per-position Markov chain attack – 深入 hashcat 系列文章
- 使用 sp64 工具程式產出馬可夫鏈模型的字典清單 (Word generator)
- 使用 hashcat 產出馬可夫鏈模型的字典清單 (Word generator)