使用 hcstat2gen 產出 hashcat 馬可夫鏈模型儲存格式: per-position Markov chain attack – 深入 hashcat 系列文章

by iok
發佈日期: 更新日期: 532 人次瀏覽
hashcat-hcstat2gen

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 工具程式使用方式

  1. 先準備一個文字檔,比方說是 hello.txt,內容如下:
$ cat hello.txt
hello
world
  1. 使用 hcstat2gen 產生馬可夫鏈的機率模型檔案 (hello.hcstatraw2),指令如下:
$ hcstat2bin hello.hcstatraw2 < hello.txt

hello.hcstatraw2 檔名是自己取的,讀者可以自行更換檔名。

  1. 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 版的馬可夫鏈儲存格式。

希望對讀者有幫助,若你喜歡這篇文章,請幫我分享給你的好朋友,並且在底下留言鼓勵我。期待在下篇,再與你見面。

相關文章

留言