變異字典檔
變異字典檔
讀取 rockyou.txt 密碼字典檔前 10 筆
head /usr/share/wordlists/rockyou.txt
可以看到都是小寫英文或是數字,不符合密碼複雜性原則的密碼
可以使用規則函數來改變單詞字典檔以適應密碼策略
先建立一個 passwordattacks 資料匣,進入資料匣
head /usr/share/wordlists/rockyou.txt > demo.txt
將剛剛 rockyou.txt 字典檔的前 10 筆寫入到 demo.txt
使用 sed 指令帶參數 -i 執行 '/^1/d',cat 檔案後發現都變異了且剩下五筆
所有純數字序列已被刪除(不符合密碼策略),是因為 sed 和 ^1 引用以 "1" 開頭的所有行
再使用 d 刪除它們,所以異動與抓取都包含在兩個單引號之間
sed -i '/^1/d' demo.txt
sed 指令最主要的功能為自動化的修改文字檔
$ echo 'This is a book' | sed 's/is/IS/g' --> 將字串〝is〞改為〝IS〞(單字前沒加空隔)
ThIS IS a book
$ echo 'This is a book' | sed 's/ is/ IS/g' --> 樣板和取代前加一空格
This IS a book
$ echo 'This is a book' | sed 's/\<is\>/IS/g' --> 用正規化表示法的單字配匹
This IS a book
$ sed 's/\<is\>/IS/g' file1 --> 檔案〝file1〞把〝is〞改為〝IS〞
$ sed 's/\<is\>/IS/g' file1 file2 file3 --> 也可以一次輸入好幾個檔案
sed 處理完需要透過輸出,若是要就地編輯修改某檔案就是使用 -i 參數
以 a 為開頭進行刪除 └─$ sed -i '/^a/d' demo.txt
建立一個 demo.rule 的檔案,內容寫入 "$1"
透過 hashcat 指令將原有檔案透過 rule 來進行合併
指令 hashcat -r demo.rule --stdout demo.txt
可以看到在每個密碼後面都加上數字 1 了,但原有檔案 demo.txt 是不會被改變的喔
再學習另外一個,規則檔案為 demo1.rule 內容為 $1 c ,c 表示第一個英文字母改大寫
└─$ hashcat -r demo1.rule --stdout demo.txt
再學習另外一個,規則檔案為 demo2.rule 內容為 $1 c(但有斷行) ,c 表示第一個英文字母改大寫
└─$ hashcat -r demo2.rule --stdout demo.txt
斷行表示各別處理,所以總計會輸出 10 行
每個密分別先處理再最後面加上數字 1 輸出,再處理第一個字母改成大寫後輸出
接著來看連續三個指令但排列不同的輸出結果
- demo3.rule : $1 c $! --> 先加上數字 1、第一個字母改大寫、再加上一個 ! 符號
- demo4.rule : $! $1 c --> 先加上符號 !、再加上數字 1、最後將第一個字母改成大寫
這也表明了規則是由左至右依序套用的
另外透過 hashcat 破解 HASH 時第一步要先確認要破解的 HASH 是哪一種格式 mode
可以參考此網站 https://hashcat.net/wiki/doku.php?id=example_hashes
預設的 MD5 就是 mode 0
現今很多密碼都要求複雜性密碼,要有數字、特殊符號與大寫字母,經研究如下
- 對於數字絕大機率使用 1 or 2 or 123
- 對於特殊符號使用鍵盤上對應數字 1 的 !
- 要求的大寫字母,幾乎都第一個英文字母
基於上述的統計學,我們可以創建一個 demo5.rule 如下的三條規則
- 密碼第一個字改大寫,後面接上 1!
- 密碼第一個字改大寫,後面接上 2!
- 密碼第一個字改大寫,後面接上 123!
接著讓我們來破解這一串 HASH "f621b6c9eab51a3e2f4e167fee4c6860"
指令可以使用下列兩種方式
└─$ hashcat -m 0 f621b6c9eab51a3e2f4e167fee4c6860 /usr/share/wordlists/rockyou.txt -r demo5.rule
正常輸出原始如下
hashcat (v6.2.5) starting
...
Dictionary cache hit:
* Filename..: /usr/share/wordlists/rockyou.txt
* Passwords.: 14344385
* Bytes.....: 139921507
* Keyspace..: 43033155
f621b6c9eab51a3e2f4e167fee4c6860:Computer123!
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 0 (MD5)
Hash.Target......: f621b6c9eab51a3e2f4e167fee4c6860
Time.Started.....: Tue May 24 14:34:54 2022, (0 secs)
Time.Estimated...: Tue May 24 14:34:54 2022, (0 secs)
Kernel.Feature...: Pure Kernel
Guess.Base.......: File (/usr/share/wordlists/rockyou.txt)
Guess.Mod........: Rules (demo3.rule)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........: 3144.1 kH/s (0.28ms) @ Accel:256 Loops:3 Thr:1 Vec:8
Recovered........: 1/1 (100.00%) Digests
...
hashcat 預設就有許多自己的 rule 可以套用路徑 /usr/share/hashcat/rules/
好用的變異字典檔 rockyou-30000.rule、best64.rule
留言
張貼留言