工具:Kali
版本:Kali 内置工具 Hydra
概要:介绍Hydra相关参数以及暴力破解相服务
Hydra:暴力破解利器,可以对多种协议进行暴力破解。有SSH、FTP、HTTPS、POP3、IMAP、Http-Proxy、Telnet、Smb、Cisco、TeamSpeak等等各种服务。
通用格式: hydra [[[-l LOGIN | -L FILE] [-p PASS | -P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-x MIN:MAX:CHARSET] [-c TIME] [-ISOuvVd46] [service://server[:PORT][/OPT]]
Hydra帮助文档:
hydra -h 显示帮助文档,罗列出可用的参数及参数的解释;支持的服务协议,如图一所示:
图一 hydra参数及支持的服务
Hydra常用参数及释义:
-s PORT 如果服务不是默认的端口,在这里可以重新定义端口
-l NAME or -L FILE -l表示指定一个用户名,-L则表示指定一个包含所有用户名的字典文件(路径)
-p PASS or -P FILE -p表示指定一个密码,-P则表示指定一个包含所有密码的字典文件 (路径)
-C FILE 这是-L和-P参数的替代者,-C表示一个行格式如name:pass的用户名和密码组合的字典文件(路径),name和pass使用冒号“:”分割开来
-M FILE -M表示需要爆破的服务列表字典,使用冒号“:”与PORT(端口)分割,每行一条数据
-o FILE -o(小写)表示将发现的用户名和密码对写入到一个文件(路径)中
-b FORMAT 如果需要指定输入的用户名和密码对文件的格式,可以使用-b参数,一般与-o参数一起使用。默认输出格式是‘text’,可指定格式‘json’、‘jsonv1’
-f / -F 这是一个终止爆破过程的指令。当发现了一个可用的用户名和密码对时,即终止爆破,通常与-M参数一起使用。-f表示每个主机均发现可用用户名和密码对时终止,-F则表示任意主机发现了可用的用户名和密码对时终止
-t TASKS 可以理解为线程数,每次启用指定数量个线程对单个主机进行爆破,默认值为16个,通常主机会限制同时连接的线程数量
-T TASKS 通常与-M参数一起使用,表示总共启用指定个数量对多个主机进行爆破,默认值为64个
-c TIME 为每次登陆请求指定一个时间长度的间隔,这样子会强制线程数为1(即:-t 1)
-e nsr n 表示没有密码,s 表示使用 pass 和 / 登陆,r表示反向登陆
-4 / -6 默认使用IPv4,也可以指定为IPv6,
-v / -V / -d 分别是详细模式、展示每次登陆的用户名和密码对、debug模式
-O 使用旧的SSL v2和v3
-S 使用SSL的连接
-U 查询组件的详细使用,例如 hydra -U http-get查询web的get请求的使用方式,hydra -U http-proxy查询http-proxy的使用方式
Hydra密码生成器介绍:
-x MIN:MAX:CHARSET MIN表示生成密码的最短长度;MAX表示生成密码的最长长度;CHARSET表示使用指定的字符生成密码,'a'表示所有的小写字母,'A'表示所有的大写字母,'1'表示所有的数字,对于其他的所有字符,只需要添加在后面即可。
-y 使用这个参数即表示charset的字符是实际的字符,而不是仅仅一种占位的正则式子
图二 密码生成器的帮助文档
Hydra密码生成器举例介绍:
-x 3:5:a 生成的密码字典长度为3到5位,由所有的小写字母组成
-x 5:8:A1 生成的密码字典长度为5到8位,有所有的大写字母和数字组成
-x 5:5/%,.- 生成的密码字典长度为5位,只由'/ % , . -'这5种字符构成
-x 3:5:aA1 -y 生成的密码字典长度为3到5位,且只由'a A 1'这三种字符组成
示例如此:
hydra -l root -x 3:3:aA1 -V -t 4 -o /tmp/result.json -b json -O -e nsr -s 21 ssh://192.168.223.10
效果如下图所示:
图三 hydra的密码生成器