crunch--字典生成工具


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

 

Crunch其實最厲害的是知道密碼的一部分細節后,可以針對性的生成字典,這在滲透中就特別有用,比如知道用戶密碼的習慣是taobao2013(taobao+數字年),這可以通過Crunch生成taobao+所有的年份字典,用來進行暴力破解攻擊其效果尤佳!

其最新版本為3.6,現已支持:

 

  • Crunch可以以組合和排列的方式生成字典
  • 它可以通過行數或文件大小中止輸出
  • 現在支持恢復
  • 現在支持數字和符號模式
  • 現在分別支持大小寫字符模式
  • 在生成多個文件時添加狀態報告
  • 新的-l選項支持@,%^
  • 新的-d選項可以限制重復的字符,可以通過man文件查看詳細信息
  • 現在支持unicode

 

安裝

$ 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  


特殊字符

%      代表數字
^      代表特殊符號
@      代表小寫字母
,      代表大寫字符


使用案例

1.生成一個字典庫 (5位的6個小寫字母的隨機排列組合,可以生成67 MB這么大的字典文件)

$ crunch 5 5 -b 20mib -o START


2.生成一個字典文件,用自己指定的字符(默認為26個小寫字母為元素的所有組合)

$ crunch 1 3 abc

 

3.通過-l參數來使@,%^等特殊字符輸出

$ crunch 7 7 -t p@ss,%^ -l a@aaaaa


4.-o參數也可使用>>來簡化

$ crunch 4 4 -d 2@ -t @@@% >> test.txt


5.生成10位密碼,並指定格式

$ 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 @,%^,指定模式,@,%^分別代表意義如下:

@ 插入小寫字母
, 插入大寫字母
% 插入數字
^ 插入特殊符號


密碼庫

/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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM