您好,登錄后才能下訂單哦!
本篇文章為大家展示了Hashcat中基于規(guī)則的攻擊是怎樣的,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
在hashcat中還隱藏有一種攻擊模式,這也是hashcat中最復雜的攻擊方式,即基于規(guī)則(rule)的攻擊(-a 0 )。hashcat中的規(guī)則與字典結(jié)合就會發(fā)揮出非常驚人的作用。
什么是規(guī)則
所謂規(guī)則是一種用來產(chǎn)生候選密碼的編程語言,規(guī)則由多個具有不同功能的函數(shù)組成,與正則表達式有相似之處,但是不同于正則表達式??傊?guī)則是一種非常靈活,方便,且操作性很強的輔助工具。
在規(guī)則語法中,不同的字符或符號代表不同的功能,在寫規(guī)則時,可以根據(jù)等待破譯的密碼的特征,將這些功能進行組合。使用規(guī)則最大的好處是:我們可以根據(jù)已知的密碼特征,寫出相應的規(guī)則,這些規(guī)則可以把字典內(nèi)容處理成合適的形式。當然利用規(guī)則還可以擴充字典內(nèi)容。
常見規(guī)則舉例
注:hashcat字典中組成單詞的字母從0開始計數(shù),而且是十六進制的形式。
以下是部分常見hashcat規(guī)則函數(shù)舉例。想了解更多hashcat的規(guī)則函數(shù),請點這里。
函數(shù) | 功能 | 規(guī)則應用舉例 | 輸入 | 輸出 |
---|---|---|---|---|
oXY | 將位置X處的字符替換成Y | o2K | digapis | diKapis |
xNM | 從位置N開始刪除M個字符 | x23 | DigAips | Dips |
iNX | 在位置N處插入字符X | i2L | dIGAPIS | dILGAPIS |
*XY | 交換XY兩處的字符 | *0A | Iloveyou!???? | ?loveyou!?I?? |
yN | 重復首部N個字符 | y4 | 800820 | 8008800820 |
C | 首字母小寫,其余大寫 | C | Digapis | dIGAPIS |
c | 首字母大寫,其余小寫 | c | DIGPAIS | Digapis |
t | 大寫變小寫,小寫變大寫 | t | DigApis | dIGaPIS |
r | 單詞倒敘 | r | DigApis | sipAgiD |
d | 重復 | d | Dig | DigDig |
f | 回文 | f | Dig | DiggiD |
{ | 循環(huán)左移 | { | DigApis | igApisD |
} | 循環(huán)右移 | } | DigApis | sDigApi |
[ | 刪除第一個字符 | [ | DigApis | igApis |
] | 刪除最后一個字符 | ] | DigApis | DigApi |
寫規(guī)則時,首先要用清楚自己的需求,然后根據(jù)需求撰寫規(guī)則。寫規(guī)則的時候,首先要明確自己所需要的密碼的構(gòu)成和形式,總結(jié)規(guī)律。根據(jù)密碼已知的特征撰寫規(guī)則。
Hashcat中的規(guī)則函數(shù),通常是“oXY”的形式,第一位表示函數(shù)名,第二位代表操作位置,第三表示操作。Hashcat中有自帶的規(guī)則文件,這些規(guī)則文件,看起來是一串一串無規(guī)律的字符串,但是每一段字符串都會對字典中的字符進行復雜的操作。
下面是幾條簡單的規(guī)則,希望通過分析這幾條規(guī)則,大家可以了解如何寫出自己的規(guī)則。首先要明確,規(guī)則中的函數(shù)會按順序執(zhí)行,每個函數(shù)的作用域就是字典中的每一條字符串,函數(shù)與函數(shù)之間沒有關(guān)系,都是各自執(zhí)行自己的功能。當然,不同函數(shù)的功能可以疊加。
例: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規(guī)則采用16進制)
例:c^!x04
分解方法:c 和 ^X 和 xYN
描述:1)首字母大寫,其余小寫。 |2)在字符串首部添加字符!。 |3)從位置0開始刪除4個字符。
例:@)sf*40R9
分解方法:@)和 sf 和 *40 和 R9
描述:1)清除所有“)”符號。 |2)用空格代替f 。 |3)交換位置4處與位置0處的字符。 |4)對位置9處的字符進行按位循環(huán)右移。
Hashcat中的“-r/--rules-file”命令可以調(diào)用規(guī)則,hashcat自帶的規(guī)則文件在rules文件下。在直接攻擊模式(-a 0)下,我們可以調(diào)用規(guī)則,結(jié)合字典,進行密碼爆破。這樣就擴大了字典的范圍,在一定程度上提高了密碼破譯的成功率。
新版的hashcat可以同時調(diào)用多個規(guī)則文件進行攻擊,這些規(guī)則文件中的規(guī)則彼此組合,形成新的規(guī)則。假設,一個規(guī)則文件有100條規(guī)則,兩個同等規(guī)模的規(guī)則文件組合就會產(chǎn)生100*100=10000條新的規(guī)則。這些規(guī)則可以極大的擴大字典的范圍。
通常是不同文件中的規(guī)則,按順序彼此結(jié)合形成新規(guī)則,并作用于字典文件。
分析:
1.rule中的規(guī)則是“c”;2.rule中的規(guī)則是"T3"和"t"。執(zhí)行多個規(guī)則文件時,不同文件中的規(guī)則互相組合。
組合出的第一條規(guī)則:c T3。1)字典中的內(nèi)容首字母大寫,其余小寫; |2)在改變位置3處的字母的大小寫。
組合出的第二條規(guī)則:c t。1) 字典中的內(nèi)容首字母大寫,其余小寫; |2)改變單詞中所有字母的大小寫。
Hashcat可以自行生成規(guī)則進行密碼爆破,當我們用自己寫的規(guī)則和hashcat自帶的規(guī)則文件還沒有爆破出密碼是,可以嘗試生成隨機規(guī)則進行密碼爆破。hashcat可以利用我們設定的參數(shù)生成隨機規(guī)則。由于是隨機規(guī)則而且可以大規(guī)模生成,所以可能產(chǎn)生意想不到的結(jié)果。
Hashcat中生成隨機規(guī)則有 3條參數(shù):
-g/--generate-rules=X:生成X條規(guī)則。
--generate-rules-func-min=X:每條規(guī)則最少有X個函數(shù)
--generate-rules-func-max=X:每條規(guī)則中最多有X個函數(shù)
例如,不適用規(guī)則文件,而是使用隨機生成的規(guī)則處理字典。
除了指定規(guī)則的數(shù)量,這一指定每條規(guī)則中的函數(shù)數(shù)量,下面這條命令指定,每條規(guī)則中最多具有6個函數(shù)。
在實際使用中,我們使用的規(guī)則文件通常會根據(jù)人類自己設定密碼的習慣做設置。符合人類設置密碼習慣的排在前面,不符合的排在后面。所以在實際應用中,如果一個規(guī)則和字典運行幾個小時還沒有結(jié)果時,大家可以終端運行,換一個字典和規(guī)則繼續(xù)運行。密碼是人類生成的,所以規(guī)則一定要符合人類的習慣。
當我們生成的隨機規(guī)則恰好產(chǎn)生作用時,可以把這些規(guī)則導出成一個規(guī)則文件,這樣下次進行密碼爆破可以繼續(xù)使用這些規(guī)則。
--debug-mode:定義調(diào)試模式(僅用于規(guī)則)
--debug-file:將調(diào)試的規(guī)則輸出到文件
利用debug命令可以在自動生成的規(guī)則中,將有效的規(guī)則提取出來,組成一個規(guī)則文件,以便下次進行爆破時使用。
由于debug只會提取有效的規(guī)則,所以生成的規(guī)則文件中可能會有重復的規(guī)則。
hashcat規(guī)則攻擊比較復雜,所以單獨算作一篇文章,其實hashcat基于規(guī)則的攻擊應該是字節(jié)攻擊模式(-a 0)的一部分。規(guī)則只有跟字典結(jié)合才能發(fā)揮作用,對字典的選擇和對規(guī)則的選擇一樣重要。
上述內(nèi)容就是Hashcat中基于規(guī)則的攻擊是怎樣的,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。