密碼破解基本有三種方法:第一種是人工猜解(垃圾桶工程和被動(dòng)信息收集);
第二種是基于字典暴力破解(主流)
在kali里,是默認(rèn)自帶了字典的,分別放在下面三個(gè)文件中:/usr/share/wordlist
/usr/share/wfuzz/wordlist
/usr/share/seclists,有一個(gè)password
第三種是鍵盤空間字符爆破
全鍵盤空間字符
部分鍵盤空間字符(基于規(guī)則)
數(shù)字,小寫字母,大寫字母,符號(hào),空格,瑞典字符,高位ASCII碼.
在kali中我們用crunch來制作密碼(注意生成字典的大小,小心撐爆磁盤! 以單純的8位大小寫英文+數(shù)組組合,生成的txt大概是1787?TB?
):
可以通過圖形界面進(jìn)入crunch目錄下面或者直接cd到/pentest/passwords/crunch,然后再執(zhí)行制作字典操作。
進(jìn)入crunch的安裝目錄下面可以看到里面有一個(gè)charset.lst文件,里面定義了一些名詞?用于簡(jiǎn)寫用于制作字典的字符
如:numeric?表示0123456789?Lalpha表示26位小寫字母?Ualpha表示26為大寫字母?
所以可以在制作字典之前看一下該文件,這樣可以簡(jiǎn)寫命令?
用法:?
./crunch?6?6??0123456789?–o?num6.dic//制作6位純數(shù)字字典?
其中第一個(gè)6表示minnum密碼最小長(zhǎng)度,第二個(gè)6密碼最大長(zhǎng)度,如果兩者一樣表示指定長(zhǎng)度?
-o表示輸出。
./crunch?8?8?charset.lst?numeric?–o?num8.dic??//制作8位純數(shù)字字典?表示引用charset.lst中的名詞簡(jiǎn)寫,其中numeric表示0123456789?
./crunch?1?6?charset.lst?ualpha?–o?test.dic?????//制作1~6位純大寫字母字典
具體案例:
crunch 1 8
#生成最小1位,最大8位,由26個(gè)小寫字母為元素的所有組合
案例2:
crunch 1 6 abcdefg
#生成?最小為1,最大為6.由abcdefg為元素的所有組合
案例3:
crunch 1 6 abcdefg\
#生成?最小為1,最大為6.由abcdefg和空格為元素的所有組合(/代表空格)
案例4:
crunch 1 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:
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開始枚舉(@代表小寫字母)
案例6:
crunch 2 3 -f charset.lst ualpha -s BB
#調(diào)用密碼庫(kù)charset.lst,生成2位和3位密碼;其中元素為密碼庫(kù)charset.lst中ualpha的項(xiàng);并且以BB開頭
案例7:
crunch 4 5 -p abc
#crunch將會(huì)生成abc, acb, bac, bca, cab, cba,雖然數(shù)字4和5這里沒用,但必須有
案例8:
crunch 4 5 -p dog cat bird
#crunch將生成以“dog”“cat”“bird”為元素的所有密碼組合:birdcatdog,birddogcat,catbirddog,catdogbird,??dogbirdcat, dogcatbird
案例9:
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
? ? ? ?real ? ?0m2.729s
? ? ? ?user ? ?0m2.216s
? ? ? ?sys ? ? 0m0.360s
?? ? ?# time ./crunch 1 4 -o START -c 6000 -z bzip2
? ? ? ?real ? ?0m3.414s
? ? ? ?user ? ?0m2.620s
? ? ? ?sys ? ? 0m0.580s
??# time ./crunch 1 4 -o START -c 6000 -z lzma
? ? ? ?real ? ?0m43.060s
? ? ? ?user ? ?0m9.965s
? ? ? ?sys ? ? 0m32.634s
?size ?filename
? ? ? ?30K ? aaaa-aiwt.txt
? ? ? ?12K ? aaaa-aiwt.txt.gz
? ? ? ?3.8K ?aaaa-aiwt.txt.bz2
? ? ? ?1.1K ?aaaa-aiwt.txt.lzma
案例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:
crunch 4 4 ?+ + 123 + -t %%@^
#生成4位密碼,其中格式為“兩個(gè)數(shù)字”+“一個(gè)小寫字母”+“常見符號(hào)”(其中數(shù)字這里被指定只能為123組成的所有2位數(shù)字組合)。比如12f# ? ? ?32j^ ? ?13t$ ? ?......
案例12:
crunch 3 3 abc + 123 @#! -t @%^
#生成3位密碼,其中第一位由“a,b,c”中的一個(gè);第二位為“1,2,3”中的一個(gè);第三位為“!,@,#”中的一個(gè)。比如1a! ? 2a# ? ? ?3b@ ? ......
案例13:
crunch 3 3 abc + 123 @#! -t ^%@
#生成3位密碼,其中格式為“字符+數(shù)字+字母”,這里字符范圍為!@# ,數(shù)字范圍為 1 2 3 , 字母范圍為a b c
比如!1c ? ?@3b ? ? ? @2a ? ? ? ......
案例14
crunch 5 5 -t ddd@@ ?-p dog cat bird
#生成5個(gè)元素組成的密碼,其中前三個(gè)為 dog cat bird任意組合,后兩個(gè)為兩個(gè)小寫字母的任意組合。比如birddogcatuz ? ? ? ? catdogbirdab ? ? ? ? birdcatdogff ? ? ? ? ? ......
案例15:
crunch 7 7 -t p@ss,%^ -l a@aaaaa
#生成7位密碼,格式為“字符p@ss”+大寫字母+數(shù)字+符號(hào) ? ? 比如p@ssZ9> ?......
案例16:
crunch 5 5 -s @4#S2 -t @%^,% -e @8 Q2 -l @dddd -b 10KB -o START
#生成5位密碼,格式為小寫字母+數(shù)字+符號(hào)+大寫字母+數(shù)字,并以?@4#S2開始,分割為10k大小。。。
案例17:
crunch 5 5 -d 2@ -t @@@%%
#生成5位密碼,格式為三個(gè)字母+兩個(gè)數(shù)字,并限制每個(gè)密碼最少出現(xiàn)2種字母
案例18:
crunch 10 10 -t @@@^%%%%^^ -d 2@ -d 3% -b 20mb -o START
#生成10位密碼,格式為三個(gè)小寫字母+一個(gè)符號(hào)+四個(gè)數(shù)字+兩個(gè)符號(hào),限制每個(gè)密碼至少2種字母和至少3種數(shù)字
案例19:
crunch 8 8 -d 2@
#生成8位密碼,每個(gè)密碼至少出現(xiàn)兩種字母
案例20:
crunch 4 4 -f unicode_test.lst?the-greeks?-t @@%% -l @xdd
#調(diào)用密碼庫(kù)?unicode_test.lst中的?the-greeks項(xiàng)目字符,生成4位密碼,其中格式為兩小寫字母+兩數(shù)字,同樣kali_linux中?unicode_test.lst?在/usr/share/crunch目錄
案例21:
字符集 crunch 4 4 -f /usr/share/crunch/charset.lst lalpha-sv?-o 1.txt
案例22:
無重復(fù)字符:
crunch 1 1 -p 1234567890 | more?? (10位數(shù)字顛倒位置,1 1 無效但必須存在)
必須是最后一個(gè)參數(shù);
案例23
crunch 5 5 abc DEF + \!@# -t ,@^%,???? (特殊符號(hào)只從!@#這三個(gè)選擇,加右斜線可以\\)
案例24?
crunch 5 5 -d 2@ -t @@@%%
看了這么多案例再來看命令參數(shù)是不是有種豁然開朗的感覺!
命令參數(shù):
-b ? ? ? ? ? ? ?#按大小分割字典文件,比如后跟20mib
-c ? ? ? ? ? ? ?#密碼個(gè)數(shù)(行數(shù)),比如8000
-d ? ? ? ? ? ? ?#限制出現(xiàn)相同元素的個(gè)數(shù)(至少出現(xiàn)元素個(gè)數(shù)),-d 3就不會(huì)出現(xiàn)zzfffffgggg之類的
-e ? ? ? ? ? ? ?#定義停止生成密碼 ,比如-e 222222:到222222停止生成密碼
-f ? ? ? ? ? ? ? #調(diào)用密碼庫(kù)文件,比如/usr/share/crunch/charset.lst?
-i ? ? ? ? ? ? ? ?#改變輸出格式
-l ? ? ? ? ? ? ? ?#與-t搭配使用
-m ? ? ? ? ? ? ?#與-p搭配使用
-o ? ? ? ? ? ? ? #保存為
-p ? ? ? ? ? ? ? #定義密碼元素(最大最小長(zhǎng)度失效,所有組合嘗試一遍,字符串加空格以字符串為單位)
-q ? ? ? ? ? ? ? #讀取字典(指定文本文件,最大最小長(zhǎng)度失效,每行之間相互排序)
-r ? ? ? ? ? ? ? ?#定義從某一個(gè)地方重新開始
-s ? ? ? ? ? ? ? ?#第一個(gè)密碼,從xxx開始
-t ? ? ? ? ? ? ? ?#定義輸出格式
? ? ? ? @代表小寫字母 lalpha
? ? ? ? ,代表大寫字母 ?? ualpha
? ? ? ? ? ?%代表數(shù)字? numeric
^代表符號(hào)? symbols
+ 占位符
\ 轉(zhuǎn)義符(空格,負(fù)號(hào))
-z?#打包壓縮,格式支持 gzip, bzip2, lzma, 7z(壓縮率最大)
組合應(yīng)用(不用把龐大的字典保存在硬盤上,生成一個(gè)密碼用一個(gè),不過消耗的時(shí)間多,比較占用cpu)
crunch 2 4 0123456789 | aircrack -ng a,cap -e MyESSID -w -
crunch 10 1012345 --stodout | airolib -ng testdlb -import passwd -??? (最后面的-表示引用crunch生成的密碼)