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...