simeon
crunch是一款linux下的壓縮后僅僅38k的小程序撞鹉,crunch程序在2004年及以前由email為的作者編寫mimayin@aciiid.ath.cx挚币,后續(xù)版本由bofh28@gmail.com負(fù)責(zé)維護(hù)共屈,因此在gtihub上有兩個(gè)版本:
https://github.com/crunchsec/crunch
https://github.com/jaalto/external-sf--crunch-wordlist
crunch默認(rèn)安裝在kali環(huán)境中(05-Password
Attacks),Crunch可以按照指定的規(guī)則生成密碼字典,生成的字典字符序列可以輸出到屏幕录煤、文件或重定向到另一個(gè)程序中,Crunch可以參數(shù)可能的組合和排列荞胡,其最新版本為3.6妈踊。并具備如下特征:
lCrunch可以以組合和排列的方式生成字典
l它可以通過行數(shù)或文件大小中止輸出
l現(xiàn)在支持恢復(fù)
l現(xiàn)在支持?jǐn)?shù)字和符號(hào)模式
l現(xiàn)在分別支持大小寫字符模式
l在生成多個(gè)文件時(shí)添加狀態(tài)報(bào)告
l新的-l選項(xiàng)支持@,%^
l新的-d選項(xiàng)可以限制重復(fù)的字符泪漂,可以通過man文件查看詳細(xì)信息
l現(xiàn)在支持unicode
Crunch其實(shí)最厲害的是知道密碼的一部分細(xì)節(jié)后廊营,可以針對(duì)性的生成字典,這在滲透中就特別有用萝勤,比如知道用戶密碼的習(xí)慣是taobao2013(taobao+數(shù)字年)露筒,這可以通過Crunch生成taobao+所有的年份字典,用來進(jìn)行暴力破解攻擊其效果尤佳敌卓!
1.1crunch下載及編譯
可以手動(dòng)下載最新3.6版本:https://sourceforge.net/projects/crunch-wordlist/
也可以自行以下命令進(jìn)行下載慎式、解壓和編譯
wget https://sourceforge.net/projects/crunch-wordlist/files/crunch-wordlist/crunch-3.6.tgz
tar -zxvf
crunch-3.6.tgz
cd crunch-3.6/
make
手動(dòng)編譯會(huì)比kali自動(dòng)安裝的程序多一個(gè)unicode_test.lst,可以將手動(dòng)編譯中的該文件復(fù)制到kali中的/usr/share/crunch/文件夾下趟径。
cp
unicode_test.lst /usr/share/crunch/
1.2crunch命令格式
crunch [][options]
參數(shù):
min-lencrunch要開始的最小長(zhǎng)度字符串瘪吏。即使不使用參數(shù)的值,也需要此選項(xiàng)
max-lencrunch要開始的最大長(zhǎng)度字符串蜗巧。即使不使用參數(shù)的值掌眠,也需要此選項(xiàng)
charset string在命令行使用crunch你可能必須指定字符集設(shè)置,否則將使用缺省的字符集設(shè)置惧蛹。缺省的設(shè)置為小寫字符集扇救,大寫字符集,數(shù)字和特殊字符(符號(hào))香嗓,如果不按照這個(gè)順序迅腔,你將得到自己指定結(jié)果。必須指定字符類型或加號(hào)的值靠娱。注意:如果你想在你的字符集中包含空格特征沧烈,你必須使用“\”字符或用引號(hào)括起來你的字符集,例如"abc "像云。見示例3锌雀,11蚂夕,12,和13腋逆。如果有“+”指定婿牍,則后續(xù)格式中出現(xiàn)的類型從其中取值!
選項(xiàng)
(1)-b數(shù)字[類型]指定輸出文件的大小惩歉,僅僅使用“-o”選項(xiàng)時(shí)生效等脂;例如60mb,例如格式:“./crunch45 -b 20mib -o START”或者“crunch45 -b20mib -o START”會(huì)生成4個(gè)文件:aaaa-gvfed.txt撑蚌,gvfee-ombqy.txt上遥,ombqz-wcydt.txt,wcydu-zzzzz.txt争涌,其中每一個(gè)文件的開始和最后字符串將作為文件的文件命名粉楚;類型有效值為KB、MB亮垫、GB模软、KIB,MIB饮潦,和GIB撵摆。前三種類型是基于1000,而最后三種類型是基于1024害晦,注意數(shù)字與類型之間沒有空格。例如“500mb”正確暑中,而“500 MB”則不正確壹瘟,執(zhí)行命令后如圖1所示。aaaa-gvfed.txt鳄逾,gvfee-ombqy.txt稻轨,ombqz-wcydt.txt大小將是20M,以1024為基數(shù)雕凹,也即20480kb殴俱,一般以MIB為參數(shù)。
“crunch45 -b20MB -o START”和“crunch45 -b 20MIB -o START”命令生成文件僅僅是以文件大小有區(qū)別枚抵,查看其生成的文件大小:
-rw-r--r--1 root root 20000000 Jun3 03:19aaaa-glzql.txt//20MB
-rw-r--r--1 root root 20971520 Jun3 03:26aaaa-gvfed.txt //20MIB
-rw-r--r--1 root root 19999998 Jun3 03:19glzqm-ntqpo.txt //20MB
-rw-r--r--1 root root 20971518 Jun3 03:26gvfee-ombqy.txt //20MIB
-rw-r--r--1 root root 19999998 Jun3 03:19ntqpp-vbhor.txt //20MB
-rw-r--r--1 root root 20971518 Jun3 03:26ombqz-wcydt.txt //20MIB
-rw-r--r--1 root root 13573140 Jun3 03:19vbhos-zzzzz.txt //20MIB
-rw-r--r--1 root root 10658580 Jun3 03:26wcydu-zzzzz.txt //20MB
(2)-c數(shù)字指定寫入輸出文件的行數(shù)线欲,也即包含密碼的個(gè)數(shù),例如使用字符規(guī)則mixalpha-numeric-all-space汽摹,生成最小和最大字符串為1的且每一個(gè)文件保存60個(gè)字符串的密碼字典:
crunch 1 1 -f/usr/share/crunch/charset.lstmixalpha-numeric-all-space -oSTART-c60
(3)-d數(shù)字符號(hào)李丰,限制出現(xiàn)相同元素的個(gè)數(shù)(至少出現(xiàn)元素個(gè)數(shù)),“-d 2@”限制小寫字母輸出像aab和aac逼泣,aaa不會(huì)產(chǎn)生趴泌,因?yàn)檫@是連續(xù)3個(gè)字母舟舒,格式是數(shù)字+符號(hào),數(shù)字是連續(xù)字母出現(xiàn)的次數(shù)嗜憔,符號(hào)是限制字符串的字符秃励,例如@,%^(“@”代表小寫字母,“,”代表大寫字符吉捶,“%”代表數(shù)字夺鲜,“^”代表特殊字符)
(4)-e字符串,定義停止生成密碼帚稠,比如-e 222222:到222222停止生成密碼
(5)-f /path/to/charset.lstcharset-name谣旁,從charset.lst指定字符集,也即調(diào)用密碼庫(kù)文件滋早,比如kali中的charset.lst在/usr/share/crunch/charset.lst榄审,則參數(shù)為“-f
/usr/share/crunch/charset.lst”
(6)-i改變出格式。例如將格式aaa,aab,aac,aad,更換為格式aaa,baa,caa,daa,aba,bba等
(7)- l跟t搭配使用杆麸,告訴crunch那些符號(hào)被當(dāng)成文字這將允許使用占位符作為模式中的字母搁进,l選項(xiàng)應(yīng)與t選項(xiàng)的長(zhǎng)度相同,參見例子15昔头。
(8)-m饼问,m跟p選項(xiàng)合并使用,請(qǐng)用“-p”代替揭斧。
(9)-o wordlist.txt莱革,指定輸出文件的名稱,例如wordlist.txt
(10)-p字符串或者-p單詞1單詞2 ...以排列組合的方式來生成字典讹开。
(11)-q filename.txt盅视,讀取filename.txt
(11)-r告訴crunch繼續(xù)從它離開的地方恢復(fù)生產(chǎn)密碼字典。如果你使用“-o”選項(xiàng)旦万,“-r”選項(xiàng)僅僅工作闹击。你必須使用跟原命令一樣的命令來恢復(fù),唯一的例外是“-s”選項(xiàng)成艘。如果在原始命令使用了該選項(xiàng)赏半,則必須在恢復(fù)會(huì)話之前刪除它,只需添加R到原始命令結(jié)束淆两。
(12)-s startblock断箫,指定一個(gè)開始的字符。
(13)-t @,%^琼腔,指定模式瑰枫,@,%^分別代表意義如下:
@插入小寫字母
,插入大寫字母
%插入數(shù)字
^插入特殊符號(hào)
(14)-u,必須是最后一個(gè)選項(xiàng),禁止打印百分比
(15)-z gzip, bzip2, lzma, and 7z光坝,從-o選項(xiàng)壓縮輸出結(jié)果尸诽,支持gzip,
bzip2, lzma, and 7z格式,gzip是最快壓縮率最低盯另,bzip2是稍微慢于gzip性含,但比其壓縮率搞,7z最慢鸳惯,但壓縮率最高商蕴。
1.3crunch使用實(shí)例
1.案例1生成字母組合
runch 1 8
生成最小1位,最大8位芝发,由26個(gè)小寫字母為元素的所有組合
2.案例2生成指定字符組合
crunch 1 6 abcdefg
生成最小為1,最大為6绪商,由字符串a(chǎn)bcdefg開頭,以字符串gggggg為結(jié)束的所有字符組合
3.案例3指定字符串加特殊字符的組合
crunch 1 6 abcdefg\
生成最小為1,最大為6辅鲸,由abcdefg和空格為元素的所有組合(/代表空格)
4.案例4
crunch1 8 -f charset.lst mixalpha-numeric-all-space -o wordlist.txt
調(diào)用密碼庫(kù)charset.lst格郁,生成最小為1,最大為8,元素為密碼庫(kù)charset.lst中mixalpha-numeric-all-space的項(xiàng)目独悴,并保存為wordlist.txt例书;其中charset.lst在kali_linux的目錄為/usr/share/crunch/charset.lst,charset.lst中mixalpha-numeric-all-space項(xiàng)目包含最常見的元素組合(即大小寫字母+數(shù)字+常見符號(hào))刻炒;使用cat /usr/share/crunch/charset.lst查看所有密碼庫(kù)
5.案例5生成兩位小寫字母+dog+三位小寫字母
crunch 8 8 -f charset.lst
mixalpha-numeric-all-space -o wordlist.txt -t @@dog@@@ -s cbdogaaa
調(diào)用密碼庫(kù)charset.lst决采,生成8位密碼;其中元素為密碼庫(kù)charset.lst中mixalpha-numeric-all-space的項(xiàng)坟奥;格式為“兩個(gè)小寫字母+dog+三個(gè)小寫字母”树瞭,并以cbdogaaa字符串開始字典生成。mixalpha-numeric-all-space的值為:
[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/
]
@取值為mixalpha-numeric-all-space中的值爱谁。
6.案例6生成以BB開頭的2位和3位大寫字符串
crunch 2 3 -f charset.lst ualpha -s BB
調(diào)用密碼庫(kù)charset.lst移迫,生成2位和3位密碼;其中元素為密碼庫(kù)charset.lst中ualpha的項(xiàng)管行;并且以BB開頭,其中ualpha =
[ABCDEFGHIJKLMNOPQRSTUVWXYZ]邪媳,表示全部大寫捐顷。注意charset.lst必須在當(dāng)前運(yùn)行程序目錄,否則必須指定完整的路徑地址雨效。
7.案例7—生成某個(gè)字符串的所有數(shù)學(xué)組合
crunch 4 5 -p abc
crunch將會(huì)生成abc的所有位置變換迅涮,例如abc, acb, bac, bca, cab, cba,雖然數(shù)字4和5可以是其它值徽龟,但必須是后者大于前者叮姑,也可以是1 2,其本質(zhì)意義是某一個(gè)單詞的所有組合,流入crunch 1 1 –p password传透,將生成password中所有的排列組合耘沼。8*7*6*5*4*3*2*1=40320個(gè)單詞。
8.案例8—生成單詞的所有組合
crunch 4 5 -p dog cat bird
crunch將生成以“dog”“cat”“bird”為元素的所有密碼組合:birdcatdog朱盐,birddogcat群嗤,catbirddog, catdogbird, dogbirdcat, dogcatbird,其大小有字母的排列數(shù)決定兵琳,在本例中為3×2×1=6個(gè)密碼狂秘。
9.案例9生成6000個(gè)密碼且生成文件壓縮為bzip2格式
crunch 1 5 -o START -c 6000 -z bzip2
生成最小為1位,最大為5位元素為所有小寫字母的密碼字典躯肌,其中每一個(gè)字典文件包含6000個(gè)密碼者春,并將密碼文件保存為bz2文件,文件名將以"第一個(gè)密碼" +
" - " + "最后一個(gè)密碼" + " .txt.bz2 "保存(比如000-999.txt.bz2)清女;下面是生成幾種格式的壓縮文件所用的時(shí)間和體積大小對(duì)比:
# time ./crunch 1 4 -o START -c 6000 -z gzip
real0m2.729s
user0m2.216s
sys0m0.360s
# time ./crunch 1 4 -o START -c 6000 -z bzip2
real0m3.414s
user0m2.620s
sys0m0.580s
# time ./crunch 1 4 -o START -c 6000 -z lzma
real0m43.060s
user0m9.965s
sys0m32.634s
sizefilename
30Kaaaa-aiwt.txt
12Kaaaa-aiwt.txt.gz
3.8Kaaaa-aiwt.txt.bz2
1.1Kaaaa-aiwt.txt.lzma
10.案例10
crunch 4 5 -b 20mib -o START
生成最小為4位钱烟,最大為5位元素為所有小寫字母的密碼字典,并以20M進(jìn)行分割校仑;這時(shí)會(huì)生成4個(gè)文件:aaaa-gvfed.txt,gvfee-ombqy.txt,ombqz-wcydt.txt,wcydu-zzzzz.txt:其中前三個(gè)大概每個(gè)20M忠售,最后一個(gè)10M左右(因?yàn)榭偣?0M)
11.案例11
crunch 4 4+ + 123 + -t%%@^
生成4位密碼,其中格式為“兩個(gè)數(shù)字”+“一個(gè)小寫字母”+“常見符號(hào)”(其中數(shù)字這里被指定只能為123組成的所有2位數(shù)字組合)迄沫。比如12f#稻扬,32j^,13t$......羊瘩,換句話說-t選項(xiàng)后面出現(xiàn)的%只能從123中取值泰佳。
12.案例12
crunch 3 3 abc + 123 !@#-t^%@
生成3位密碼,其中第一位由“a尘吗,b逝她,c”中的一個(gè);第二位為“1,2,3”中的一個(gè)睬捶;第三位為“黔宛!,@擒贸,#”中的一個(gè)臀晃。比如1a!介劫、2a#徽惋、3b@......(此命令在實(shí)際測(cè)試中存在問題,!在linux為特殊命令).
13.案例13
crunch 4 4+ + 123 + -t %%@^
生成4位密碼座韵,其中格式為“兩個(gè)數(shù)字”+“一個(gè)小寫字母”+“常見符號(hào)”(其中數(shù)字這里被指定只能為123組成的所有2位數(shù)字組合)险绘。比如12f#,32j^,13t$......
加號(hào)(+)是一個(gè)占位符宦棺,以便為字符類型指定一個(gè)字符集瓣距。crunch將使用默認(rèn)字符集的字符類型,當(dāng)crunch遇到一個(gè)+(加號(hào))的命令行渺氧。您必須為每個(gè)字符類型指定值或使用加號(hào)旨涝。也就是說,如果你有兩個(gè)字符類型侣背,你要么為每個(gè)類型指定值白华,要么使用加號(hào)》纺停“-t %%@^”指定第一和第二位插入數(shù)字弧腥,第三位插入小寫字符,最后一位插入特殊字符潮太,所以在這個(gè)例子中設(shè)置為:
abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
123
!@#$%^&*()-_+=~`[]{}|\:;"'<>,.?/
生成的結(jié)果將會(huì)是以11a!開頭管搪,以"33z "結(jié)束的字典。
14.案例14
crunch 5 5 -t ddd@@ -o j -p dog cat bird
生成5個(gè)元素組成的密碼铡买,其中前三個(gè)為dog更鲁,cat,bird任意組合奇钞,后兩個(gè)為兩個(gè)小寫字母的任意組合澡为。比如birddogcatuz,catdogbirdab景埃,birdcatdogff媒至,......
15.案例15
crunch 7 7 -t p@ss,%^-l a@aaaaa
加-l選項(xiàng)是將字符串中的@作為文字字符集,而不是做為小寫字母進(jìn)行替換谷徙。生成7位密碼拒啰,格式為“字符p@ss”+大寫字母+數(shù)字+符號(hào),比如p@ssZ9>......
16.案例16
crunch 5 5 -s @4#S2 -t @%^,2 -e @8*Q2 -l @dddd -b 10KB -o START
生成5位密碼完慧,以@4#S2開始谋旦,結(jié)束于@8*Q2.,并分割為10k大小屈尼,格式為小寫字母+數(shù)字+符號(hào)+大寫字母+數(shù)字蛤织。
17.案例17
crunch 5 5 -d 2@ -t @@@%%
crunch will generate 5 character strings staring with aab00 and endingat zzy99.Notice that aaa and zzz arenot present.
生成5位密碼,格式為三個(gè)小寫字母+兩個(gè)數(shù)字鸿染,并限制每個(gè)密碼最少出現(xiàn)2種字母,以aab00開頭乞巧,以zzy99結(jié)束涨椒。“-d 2@”表示字母重復(fù)最多2次。
18.案例18
crunch 10 10 -t @@@^%%%%^^ -d 2@ -d 3% -b 20mb -o START
crunch will generate 10 character strings starting with aab!0001!! andending at zzy 9998The output will bewritten to 20mb files.
生成10位密碼蚕冬,格式為三個(gè)小寫字母+一個(gè)符號(hào)+四個(gè)數(shù)字+兩個(gè)符號(hào)免猾,限制每個(gè)密碼至少2種字母和至少3種數(shù)字,文件大小為20MB囤热。
19.案例19
crunch 8 8 -d 2@
生成8位密碼猎提,每個(gè)密碼至少出現(xiàn)兩種字母
20.案例20
crunch 4 4 -f unicode_test.lst japanese -t @@%% -l @xdd
crunch will load some Japanese characters from the unicode_testcharacter set file.The output willstart at @日00 and end at @語(yǔ)99.
調(diào)用密碼庫(kù)unicode_test.lst中的japanese項(xiàng)目字符,生成4位密碼旁蔼,其中格式為兩小寫字母+兩數(shù)字锨苏。
1.4比較有用的命令
(1)生成pass01-pass99所有數(shù)字組合
crunch 6 6 -t pass%%>>newpwd.txt
(2)生成六位小寫字母密碼,其中前四位為pass
crunch 6 6 -t pass@@>>newpwd.txt
(3)生成六位密碼棺聊,其中前四位為pass伞租,后二位為大寫
crunch 6 6 -t pass,,>>newpwd.txt
(4)生成六位密碼,其中前四位為pass限佩,后二位為特殊字符
crunch 6 6 -t pass^^>>newpwd.txt
(5)制作8為數(shù)字字典
crunch 8 8 charset.lst numeric -o num8.dic
(6)制作6為數(shù)字字典
crunch 6 60123456789 –o num6.dic
(7)制作139開頭的手機(jī)密碼字典
crunch 11 11+0123456789 -t 139%%%%%%%% -o num13.dic
文件大小為1144 MB葵诈,還可以每次生成文件大小為20M,自動(dòng)生成文件:
crunch 11 11+0123456789 -t 139%%%%%%%% -b 20mib -o START
(8)在線使用生成的密碼
不用把龐大的字典保存在硬盤上祟同,生成一個(gè)密碼用一個(gè)作喘,不過消耗的時(shí)間多,比較占用cpu晕城,參數(shù)最后面的-表示引用crunch生成的密碼泞坦,例如無線密碼在線破解:
crunch 2 4 0123456789 | aircrack -ng a,cap
-e MyESSID -w -
crunch 10 1012345 --stodout | airolib -ng
testdlb -import passwd –
crunch1 6 0123456789 | john pwd.txt --stdin -