Crunch是一種建立密碼字典工具,按照指定的規則生成密碼字典,能夠靈活的制定本身的字典文件。使用Crunch工具生成的密碼能夠輸出到屏幕,保存到文件、或另外一個程序。crunch程序在2004年及之前由email爲 mimayin@aciiid.ath.cx 的做者編寫,後續版本由 bofh28@gmail.com 負責維護,所以在github上有兩個版本:
https://github.com/crunchsec/crunch
https://github.com/jaalto/external-sf--crunch-wordlisthtml
Crunch其實最厲害的是知道密碼的一部分細節後,能夠針對性的生成字典,這在滲透中就特別有用,好比知道用戶密碼的習慣是taobao2013(taobao+數字年),這能夠經過Crunch生成taobao+全部的年份字典,用來進行暴力破解攻擊其效果尤佳!
其最新版本爲3.6,現已支持:git
$ sudo apt-get install crunch -y
$ crunch --help Usage: crunch <min> <max> [options] where min and max are numbers
min 設定最小字符串長度(必選)
max 設定最大字符串長度(必選)
options
-b 指定文件輸出的大小,避免字典文件過大
-c 指定文件輸出的行數,即包含密碼的個數
-d 限制相同元素出現的次數
-e 定義中止字符,即到該字符串就中止生成
-f 調用庫文件(/etc/share/crunch/charset.lst)
-i 改變輸出格式,即aaa,aab -> aaa,baa
-I 一般與-t聯合使用,代表該字符爲實義字符
-m 一般與-p搭配
-o 將密碼保存到指定文件
-p 指定元素以組合的方式進行
-q 讀取密碼文件,即讀取pass.txt
-r 定義重某一字符串從新開始
-s 指定一個開始的字符,即從本身定義的密碼xxxx開始
-t 指定密碼輸出的格式
-u 禁止打印百分比(必須爲最後一個選項)
-z 壓縮生成的字典文件,支持gzip,bzip2,lzma,7z github
% 表明數字
^ 表明特殊符號
@ 表明小寫字母
, 表明大寫字符 工具
1.生成一個字典庫 (5位的6個小寫字母的隨機排列組合,能夠生成67 MB這麼大的字典文件)
spa
$ crunch 5 5 -b 20mib -o START
2.生成一個字典文件,用本身指定的字符(默認爲26個小寫字母爲元素的全部組合)
code
$ crunch 1 3 abc
3.經過-l參數來使@,%^等特殊字符輸出
htm
$ crunch 7 7 -t p@ss,%^ -l a@aaaaa
4.-o參數也可以使用>>來簡化
blog
$ crunch 4 4 -d 2@ -t @@@% >> test.txt
5.生成10位密碼,並指定格式
ip
$ crunch 10 10 -t @@@^%%%%^^ -d 2@ -d 3% -b 20mb -o START
格式爲三個小寫字母+一個符號+四個數字+兩個符號,限制每一個密碼至少2種字母和至少3種數字,文件大小爲20MB。「-d 2@」表示字母重複最多2次。
-d 數字符號,限制出現相同元素的個數(至少出現元素個數),「-d 2@」限制小寫字母輸出像aab和aac,aaa不會產生,由於這是連續3個字母,格式是數字+符號,數字是連續字母出現的次數,符號是限制字符串的字符,例如@,%^(「@」表明小寫字母,「,」表明大寫字符,「%」表明數字,「^」表明特殊字符)
-t @,%^,指定模式,@,%^分別表明意義以下:
@ 插入小寫字母
, 插入大寫字母
% 插入數字
^ 插入特殊符號ci
/usr/share/crunch/charset.lst
numeric 表示0123456789
Lalpha 表示26位小寫字母
Ualpha 表示26位大寫字母
$ crunch 1 1 -f /usr/share/crunch/charset.lst mixalpha-numeric-all-space -o START -c 60
-c 數字 指定寫入輸出文件的行數,也即包含密碼的個數,例如使用字符規則mixalpha-numeric-all-space,生成最小和最大字符串爲1的且每個文件保存60個字符串的密碼字典
-f /path/to/charset.lst charset-name,從charset.lst指定字符集,也即調用密碼庫文件,好比kali中的charset.lst 在/usr/share/crunch/charset.lst,則參數爲「-f /usr/share/crunch/charset.lst」
1.生成pass01-pass99全部數字組合
$ 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位數字字典
$ crunch 8 8 charset.lst numeric -o num8.dic
6.製做6位數字字典
$ crunch 6 6 0123456789 –o num6.dic
7.製做139開頭的手機密碼字典
$ crunch 11 11 +0123456789 -t 139%%%%%%%% -b 20mib -o START
8.在線使用生成的密碼
$ crunch 2 4 0123456789 | aircrack-ng a,cap -e [ESSID] -w - $ crunch 10 1012345 --stodout | airolib-ng testdlb -import passwd – $ crunch 1 6 0123456789 | john pwd.txt --stdin -
這個依賴 aircrack-ng ,沒裝的裝一下
$ sudo apt-get install aircrack-ng -y
不用把龐大的字典保存在硬盤上,生成一個密碼用一個,不過消耗的時間多,比較佔用cpu,參數最後面的-表示引用crunch生成的密碼,例如無線密碼在線破解。
1) https://www.freebuf.com/sectool/170817.html
2) http://netsecurity.51cto.com/art/201706/541638.htm