hashcat基於規則的攻擊

2021-09-24 19:59:26 字數 4415 閱讀 8654

3.總結

hashcat基於規則的攻擊,包括如何寫規則,以及幾條相關命令的使用。

前面幾篇文章中我們已經講過了hashcat的幾種攻擊模式,這些攻擊模式是我們利用hashcat破解密碼的基礎。但是在hashcat中還隱藏有一種攻擊模式,這也是hashcat中最複雜的攻擊方式,即基於規則(rule)的攻擊(-a 0 )。hashcat中的規則與字典結合就會發揮出非常驚人的作用。

什麼是規則

所謂規則是一種用來產生候選密碼的程式語言,規則由多個具有不同功能的函式組成,與正規表示式有相似之處,但是不同於正規表示式。總之,規則是一種非常靈活,方便,且操作性很強的輔助工具。

在規則語法中,不同的字元或符號代表不同的功能,在寫規則時,可以根據等待破譯的密碼的特徵,將這些功能進行組合。使用規則最大的好處是:我們可以根據已知的密碼特徵,寫出相應的規則,這些規則可以把字典內容處理成合適的形式。當然利用規則還可以擴充字典內容。

常見規則舉例

注:hashcat字典中組成單詞的字母從0開始計數,而且是十六進製制的形式。

函式功能

規則應用舉例輸入輸出

oxy將位置x處的字元替換成y

o2kdigapis

dikapis

xnm從位置n開始刪除m個字元

x23digaips

dips

inx在位置n處插入字元x

i2ldigapis

dilgapis

*xy交換xy兩處的字元

*0ailoveyou!????

?loveyou!?i??

yn重複首部n個字元

y4800820

8008800820

c首字母小寫,其餘大寫

cdigapis

digapis

c首字母大寫,其餘小寫

cdigpais

digapis

t大寫變小寫,小寫變大寫

tdigapis

digapis

r單詞倒敘

rdigapis

sipagid

d重複

ddig

digdig

f回文

fdig

diggid

迴圈右移

}digapis

sdigapi

[刪除第乙個字元

[digapis

igapis

]刪除最後乙個字元

]digapis

digapi

寫規則時,首先要用清楚自己的需求,然後根據需求撰寫規則。寫規則的時候,首先要明確自己所需要的密碼的構成和形式,總結規律。根據密碼已知的特徵撰寫規則。

hashcat中的規則函式,通常是「oxy」的形式,第一位表示函式名,第二位代表操作位置,第三表示操作。hashcat中有自帶的規則檔案,這些規則檔案,看起來是一串一串無規律的字串,但是每一段字串都會對字典中的字元進行複雜的操作。

圖:規則檔案.png

例:sa4 sb6 sc<

分解方法:sx

描述:1)用字元a代替字串中所有4。 |2)用字元b代替字串中所有6。 |3)用字元c代替字串中所有< 。

:d[

分解方法:d 和[

描述:1)將字串重複一遍。 |2)將重複之後的字串的第乙個字元刪除。

:i4 o12

分解方法:i4 和o12

描述:1)在位置4插入乙個空格。 |2)刪除從位置1開始的2個字元;

:d o05

分解方法:d 和 o05

描述:1)將字串重複一遍。 |2)把位置0處的字元替換成5

:』4p4

分解方法:』4 和p4

描述:1)在位置4之前,截斷單詞。 |2)在這個單詞後,將該單詞再重複4遍。

:$ o23

分解方法:$ 和o23

描述:1)在單詞末尾新增乙個空格。 |2)刪除從位置2開始的3個字元。

:t6t3

分解方法:t6和t3

描述:1)改變單詞中位置6處字母的大小寫; |2)改變單詞中位置3處字母的大小寫。

:i3.2-3

分解方法:i3 和.2和 -3

描述:1)在位置3插入空格; |2)用位置2+1處的字元代替位置2處的字元。 |3)將位置3處上的字元的ascii值減3

:$9$&$a

分解方法:$x

描述:1)在字串末尾新增乙個9。 |2)在字串末尾新增乙個&符號。 |3)在字串末尾新增乙個10(hashcat規則採用16進製制)

:c^!x04

分解方法:c 和 ^x 和 xyn

描述:1)首字母大寫,其餘小寫。 |2)在字串首部新增字元!。 |3)從位置0開始刪除4個字元。

:@)sf*40r9

分解方法:@)和 sf 和 *40 和 r9

描述:1)清除所有「)」符號。 |2)用空格代替f 。 |3)交換位置4處與位置0處的字元。 |4)對位置9處的字元進行按位迴圈右移。

hashcat中的「-r/–rules-file」命令可以呼叫規則,hashcat自帶的規則檔案在rules檔案下。在直接攻擊模式(-a 0)下,我們可以呼叫規則,結合字典,進行密碼爆破。這樣就擴大了字典的範圍,在一定程度上提高了密碼破譯的成功率。

圖:基於規則1.png

圖:基於規則2.png

通常是不同檔案中的規則,按順序彼此結合形成新規則,並作用於字典檔案。

圖:基於規則3.png

分析:1.rule中的規則是「c」;2.rule中的規則是」t3″和」t」。執行多個規則檔案時,不同檔案中的規則互相組合。

組合出的第一條規則:c t3。1)字典中的內容首字母大寫,其餘小寫; |2)在改變位置3處的字母的大小寫。

組合出的第二條規則:c t。1) 字典中的內容首字母大寫,其餘小寫; |2)改變單詞中所有字母的大小寫。

hashcat可以自行生成規則進行密碼爆破,當我們用自己寫的規則和hashcat自帶的規則檔案還沒有爆破出密碼是,可以嘗試生成隨機規則進行密碼爆破。hashcat可以利用我們設定的引數生成隨機規則。由於是隨機規則而且可以大規模生成,所以可能產生意想不到的結果。

hashcat中生成隨機規則有 3條引數:

-g/–generate-rules=x:生成x條規則。

–generate-rules-func-min=x:每條規則最少有x個函式

–generate-rules-func-max=x:每條規則中最多有x個函式

例如,不適用規則檔案,而是使用隨機生成的規則處理字典。

圖:隨機1.png

除了指定規則的數量,這一指定每條規則中的函式數量,下面這條命令指定,每條規則中最多具有6個函式。

圖:隨機2.png

在實際使用中,我們使用的規則檔案通常會根據人類自己設定密碼的習慣做設定。符合人類設定密碼習慣的排在前面,不符合的排在後面。所以在實際應用中,如果乙個規則和字典執行幾個小時還沒有結果時,大家可以終端執行,換乙個字典和規則繼續執行。密碼是人類生成的,所以規則一定要符合人類的習慣。

當我們生成的隨機規則恰好產生作用時,可以把這些規則匯出成乙個規則檔案,這樣下次進行密碼爆破可以繼續使用這些規則。

–debug-mode:定義除錯模式(僅用於規則)

–debug-file:將除錯的規則輸出到檔案

利用debug命令可以在自動生成的規則中,將有效的規則提取出來,組成乙個規則檔案,以便下次進行爆破時使用。

圖:匯出1.png

由於debug只會提取有效的規則,所以生成的規則檔案中可能會有重複的規則。

圖:匯出2.png

hashcat規則攻擊比較複雜,所以單獨算作一篇文章,其實hashcat基於規則的攻擊應該是位元組攻擊模式(-a 0)的一部分。規則只有跟字典結合才能發揮作用,對字典的選擇和對規則的選擇一樣重要。

hashcat字典攻擊

2.輸出命令 3.總結 hashcat最常用的攻擊方式 直接攻擊模式就是直接利用字典進行密碼爆破,它可以使用單一字典檔案,或多個字典檔案進行解密。還可以通過將字典與規則檔案結合,讓密碼爆破效率更高。hashcat a 0 m 0 mima.txt o outfile dic.txt 圖 4.png ...

hashcat的前世今生

hashcat 號稱世界上最快的密碼破譯軟體,真的沒人好奇hashcat的發展歷程嗎?hashcat 如何進行密碼破譯的呢?簡單的命令也會有不俗的效果。hashcat是一款基於gpu進行快速密碼破譯的開源軟體。目前官網更新的最新版本是hashcat 4.1.0。我們可以在官網上找到3.00及之後的版...

基於規則的分類

if 條件 then 結論 例子 r if age youth and student yes then buys computer yes 或 r age youth student yes buys computer yes 規則前件 也稱為前提,是由乙個或多個用邏輯連線詞連線的屬性測試組成,r...