HYDRA

介绍

几乎任何的密码安全研究都显示,最大的安全漏洞之一是弱口令。

为了让研究者和安全顾问们能向人们展示从远程计算机未授权获取一个系统的访问权限是多么的容易,Hydra由此诞生。

郑重声明,这个工具只是为了合法目的!

目前已经有了很多登录破解的工具,但是没有一个能像Hydra这样支持多协议攻击,并且支持并行连接。

它已经在Linux, Windows/Cygwin, Solaris, FreeBSD/OpenBSD, QNX (Blackberry 10) 和 MacOS系统上进行了完善的编译测试。

目前这个工具支持如下的协议:

  • Asterisk
  • AFP
  • Cisco AAA
  • Cisco auth
  • Cisco enable
  • CVS
  • Firebird
  • FTP
  • HTTP-FORM-GET
  • HTTP-FORM-POST
  • HTTP-GET
  • HTTP-HEAD
  • HTTP-POST
  • HTTP-PROXY
  • HTTPS-FORM-GET
  • HTTPS-FORM-POST
  • HTTPS-GET
  • HTTPS-HEAD
  • HTTPS-POST
  • 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
  • RTSP
  • SAP/R3
  • SIP
  • SMB
  • SMTP
  • SMTP Enum
  • SNMP v1+v2+v3
  • SOCKS5
  • SSH (v1 and v2)
  • SSHKEY
  • Subversion
  • Teamspeak (TS2)
  • Telnet
  • VMware-Auth
  • VNC and XMPP

当然,这个工具的模块化引擎可以快速简单的增加对新协议的支持,所以未来很快会支持更多的协议类型。我们很期待你加入我们,为工具增加新功能,增强现有的功能,或者是修复一些BUG!! :-)

下载

你可以在网站:https://www.thc.org/thc-hydra 获取最新的发行版本。

如果你想关注此项目的开发进展,或者想贡献自己的力量。项目的GitHub主页:https://github.com/vanhauser-thc/thc-hydra

svn co https://github.com/vanhauser-thc/thc-hydra

或者

git clone https://github.com/vanhauser-thc/thc-hydra

注意,如果你使用的是开发版本,它会包含有最新的特性,但是也会有新的BUG,甚至无法运行。

安装

配置,编译,安装Hydra,使用如下命令:

./configure
make
make install

如果你想使用ssh模块,就必须在你的系统上安装配置libssh(不是libssh2!),可以从这个链接获取:http://www.libssh.org,为开启ssh v1的支持,你需要在执行cmake命令时加上-DWITH_SSH1=On选项。

如果你使用的是Ubuntu/Debian系列的系统,如下的命令可以安装几个可选模块所需的补充类库(注意命令安装的类库在你的系统上可能找不到,因为不同系统上的同一软件名称可能有些细微差别)。

apt-get install libssl-dev libssh-dev libidn11-dev libpcre3-dev \libgtk2.0-dev libmysqlclient-dev libpq-dev libsvn-dev \firebird-dev libncp-dev

这条命令会开启除Oracle,SAP R/3 and the apple filing protocol之外的所有的可选模块的特性。剩余的这几个模块需要到他们的官方网站上下载安装。

如果需要在其他的linux发行版和BSD操作系统上安装的话,使用系统的安装工具搜索跟上面名称相似的安装包进行安装。在所有其他情况下,你需要下载所有的源码包然后自己编译安装。

支持的操作系统

  • All UNIX platforms (Linux, *bsd, Solaris, etc.)
  • MacOS (basically a BSD clone)
  • Windows with Cygwin (both IPv4 and IPv6)
  • Mobile systems based on Linux, MacOS or QNX (e.g. Android, iPhone, Blackberry 10, Zaurus, iPaq)

如何使用

在命令行执行如下命令:

hydra

你将会看到一个对关键参数的简短的说明。

执行

hydra -h

查看所有的命令行选项。

注意,安装完成后工具并没有包含密码字典。需要自己生成。如果你想获取一份所有服务的默认用户密码表,可以使用 “dpl4hydra.sh” 生成一个。

对于Linux用户,使用 ./xhydra可以打开一个GTK图形界面。

对于使用命令行的用户,语法如下:

使用新的 “://” 语法格式,可以攻击一个目标或者一个网络,

hydra [some command line options] PROTOCOL://TARGET:PORT/MODULE-OPTIONS

当然也可以使用旧的语法格式,并且如果你想从文件中获取攻击目标,那就必须使用旧的语法。

hydra [some command line options] [-s PORT] TARGET PROTOCOL [MODULE-OPTIONS]

通过命令行参数,你可以指定尝试哪些用户,哪些密码,是否使用SSL,使用多少并行任务进行攻击,等等。

  • PROTOCOL 使用哪种协议进行攻击,例如:ftp, smtp, http-get等其他支持的协议。
  • TARGET 攻击的目标
  • MODULE-OPTIONS 对每个协议指定的选项

第一步 - 选择目标

你有三种方式指定攻击的目标:

  1. 命令行输入单一的目标:只需输入IP或者DNS地址即可
  2. 命令行输入一个网络段:CIDR表示法 例如: “192.168.0.0/24”
  3. 文件中的主机列表:一行一个地址(见下面说明)

第二步 - 选择协议

尽量避免使用telnet协议,因为使用该协议尝试登陆探测到的结果不可靠。

使用一个端口扫描器来发现目标主机上有哪些开放的协议。

第三步 - 检查该模块是否有可选的参数

hydra -U PROTOCOL

例如:

hydra -U smtp

第四步 - 目标端口

这一步操作是可选的!如果没有指定端口,将会使用该协议默认的端口

如果你使用 “-S” 选项指定使用SSL连接,对应的会使用协议默认的SSL端口。

如果你使用 “://” 标记法,当目标地址是IPv6或者是一个CIDR (“192.168.0.0/24”) 时,地址部分必须使用 “[” “]” 括起来:

hydra [some command line options] ftp://[192.168.0.0/24]/
hydra [some command line options] -6 smtps://[2001:db8::1]/NTLM

注意,hydra默认攻击只支持IPv4!

如果你想攻击一个IPv6地址,你必须在命令行添加 “-6” 选项。此时所有的攻击变成只支持IPv6

如果你想通过文件来指定攻击目标,这时你将不能使用 “://” 格式,这时只能使用旧的格式来指定协议和其他的选项:

hydra [some command line options] -M targets.txt ftp

你也可以在文件中给每一个目标提供端口,例如:

foo.bar.com
target.com:21
unusual.port.com:2121
default.used.here.com
127.0.0.1
127.0.0.1:2121

注意,如果你想攻击IPv6目标,你必须提供 “-6” 选项,并且在文件中必须将地址使用 “[” “]”括起来:

foo.bar.com
target.com:21
[fe80::1%eth0]
[2001::1]
[2002::2]:8080
[2a01:24a:133:0:00:123:ff:1a]

登录名和密码

你有很多种方式来指定尝试的登录名和密码,使用 “-l” 选项指定单个登录名,使用 “-p” 选项指定单个密码。使用 “-L” 选项指定一个文件来指定多个登录名,使用 “-P” 选项指定一个文件来指定多个密码。例如:

hydra -l admin -p password ftp://localhost/
hydra -L default_logins.txt -p test ftp://localhost/
hydra -l admin -P common_passwords.txt ftp://localhost/
hydra -L logins.txt -P passwords.txt ftp://localhost/

此外,你可以通过指定 “-e” 选项尝试基础的密码,”-e” 选项有三个参数:

  • s - 使用登录名作为密码
  • n - 使用空密码
  • r - 将登录名倒序作为密码

如果你想使用这个选项,尝试使用组合的方式指定,比如可以使用 “-e sn” 指定使用登录名作为密码和尝试空密码。

除了使用 -p/-P 外,还有一种指定登录名密码的方式,使用 “登录名:密码” 的格式放到文件中指定,例如:

admin:password
test:test
foo:bar

这是一种公共的默认的账号列表格式,这种格式也是一开始提到的 “dpl4hydra.sh” 生成的默认账号文件的格式。

你可以使用 “-C” 选项指定该格式的文件,当使用这种账号模式时,就不能再使用 “-l/-L/-p/-P” 选项(不过可以使用 “-e nsr” 选项)。

例子:

hydra -C default_accounts.txt ftp://localhost/

最后,还有一种Brute Force模式(暴力模式),使用 “-x” 选项指定(此选项不能和 “-p/-P/-C” 选项一起使用):

-x minimum_length:maximum_length:charset

上面的 charset 位置,使用 a 表示小写字母,A 表示大写字母,1 表示数字,and for anything else you supply it is their real representation.

例子:

  • -x 1:1:a 生成一个字符的并且小写字母的密码。也就是说该参数会尝试从a到z共26个密码。
  • -x 1:3:a 生成长度为1到3个字符并且全部小写字母的密码
  • -x 2:5:/ 生成长度为2到5个字符并且只包含斜杠的密码
  • -x 5:8:A1 生成长度为5到8个字符并且有大写字母和数字的密码

例子:

hydra -l ftp -x 3:3:a ftp://localhost/

模块的特殊选项

通过第三个命令行参数(目标主机 服务名称 选项)或者使用 “-m” 选项,你可以给模块加一个选项。很多模块可以加,有一些必须加。

查看特定模块的选项,执行:

hydra -U <module>

例如:

./hydra -U http-post-form

特定的选项可以通过 “-m” 参数指定,作为第三个命令行参数或者直接写在 “service://target/option” 格式中。

例子:(这些都是等价的)

./hydra -l test -p test -m PLAIN 127.0.0.1 imap
./hydra -l test -p test 127.0.0.1 imap PLAIN
./hydra -l test -p test imap://127.0.0.1/PLAIN

恢复 中止/崩溃 的会话

当hydra终止后,可能是因为Control-C,进程被杀死,或者崩溃,它会留下一个 “hydra.restore” 文件,这个文件包含了所有的恢复会话所需的必要信息。这个会话文件每隔5分钟写一次。

注意:hydra.restore文件不能复制到不同的平台下(例如:在不同的字符编码的平台间复制,或者不同的操作系统)。

如何 扫描/破解 代理服务器

环境变量 “HYDRA_PROXY_HTTP” 定义了Web代理(这种只能用于http服务)。格式如下:

HYDRA_PROXY_HTTP="http://123.45.67.89:8080/"
HYDRA_PROXY_HTTP="http://login:password@123.45.67.89:8080/"
HYDRA_PROXY_HTTP="proxylist.txt"

最后一个示例是一个文本文件包含多达64个代理(格式定义与其他示例相同)。

对于所有其他的服务,使用 “HYDRA_PROXY” 环境变量去扫描/破解。例如:

HYDRA_PROXY=[connect|socks4|socks5]://[login:password@]proxy_addr:proxy_port

例子:

HYDRA_PROXY=connect://proxy.anonymizer.com:8000
HYDRA_PROXY=socks4://auth:pw@127.0.0.1:1080
HYDRA_PROXY=socksproxylist.txt

附加提示

  • 按可能性对密码文件内容进行排序,并且使用 “-u” 选项查找最快的密码!
  • 去除密码字典中重复的密码! 这将会节省很多时间 :-)

    cat words.txt | sort | uniq > dictionary.txt
    
  • 如果你知道目标密码的策略(只允许用户使用最少6个字符,包含至少一个字母和一个数字,等等。你可以使用hydra自带的 “pw-inspector” 工具来减少密码列表:

    cat dictionary.txt | pw-inspector -m 6 -c 2 -n > passlist.txt
    

结果输出

破解结果会和其它信息一起输出到标准输出。通过指定 “-o” 命令行参数,可以将破解结果写入一个文件。使用 “-b” 选项指定输出的格式。目前支持如下几个格式:

  • text - 普通文本。
  • jsonv1 - 1.x版本使用的JSON数据格式(见下)。
  • json - 最后一个版本使用的JSON数据格式,当前最后一个版本就是1.x。

如果使用JSON输出,当hydra启动报错时,结果文件中可能会有非JSON格式的数据,可能会导致解析报错,需要特殊处理。

JSON格式

这里有一个JSON输出的数据格式示例。注意某些字段信息的标记说明:

  • errormessages - 该字段是一个数组,包含有hydra运行结束后的错误输出。输出的内容很随意,没有任何格式。
  • success - 表明hydra是否没有出现任何错误成功执行完成。(注意 不是表示有没有发现弱口令)。根据是否完成取值true或false。
  • quantityfound - 发现的用户名密码对的数量。
  • jsonoutputversion - Schema版本, 1.00, 1.01, 1.11, 2.00, 2.03, 等等。

1.00 版本例子:

{"errormessages": ["[ERROR] Error Message of Something","[ERROR] Another Message","These are very free form"],"generator": {"built": "2018-03-01 14:44:22","commandline": "hydra -b jsonv1 -o results.json ... ...","jsonoutputversion": "1.00","server": "127.0.0.1","service": "http-post-form","software": "Hydra","version": "v8.5"},"quantityfound": 2,"results": [{"host": "127.0.0.1","login": "bill@example.com","password": "bill","port": 9999,"service": "http-post-form"},{"host": "127.0.0.1","login": "joe@example.com","password": "joe","port": 9999,"service": "http-post-form"}],"success": false
}

速度

使用并行特性,密码破解速度会非常快,但是,它取决于协议,不同协议速度不同。通常最快的是POP3和FTP。

尝试改变 “-t” 选项的参数去加快速度,参数值越大,速度越快(当然如果过快可能会使服务宕掉,或者会触发服务的登录保护机制)

hydra密码破解工具相关推荐

  1. 字典生成----在线密码破解工具hydra和medusa的使用

    大家好,我是SuieKa. 本次主要稍微详细分析一下字典的生成和在线密码破解工具hydra和medusa及使用案例,希望对大家学习上有帮助! 目录表 一.常见字典生成工具及使用方法 1.字典生成工具c ...

  2. 十大最受欢迎的密码破解工具

    1. Brutus Brutus是一个最流行的远程在线密码破解工具.它号称是最快和最灵活的密码破解工具.此工具是免费的,只可用于 Windows 系统.早在 2000 年 10 月发布了它. 它 支持 ...

  3. 十款最流行的密码破解工具

    密码破解工具是普通计算机用户恢复遗忘密码.黑客窃取信息.渗透测试工程师测试应用安全常用的工具.密码破解工具通常都是通过穷举法,有些还配合使用密码字典来暴力破解密码,但这种方法的效率与密码的强度有很大关 ...

  4. Kali Linux - 嗅探和欺骗及密码破解工具

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 Burpsuite mitmproxy Wireshark SSLSTRIP Hydra Johnny John 总结 Bu ...

  5. hydra 密码破解

    hydra 密码破解 Hydra是一个相当强大的暴力密码破解工具.该工具支持几乎所有协议的在线密码破解,如FTP.HTTP.HTTPS.MySQL.MS SQL.Oracle.Cisco.IMAP和V ...

  6. 小巧密码破解工具IE PassView使用指南

    一:软件下载与安装 载完成后将压缩包解压,双击名称为"iepv_setup.exe"的可执行文件,弹出安装界面如图: 图一 点击安装后,会出现"安装成功"的对话 ...

  7. 【EWSA无线路由密码破解工具 中文特别版下载】含教程及字典(弱口令生日特殊符号等)

    From: http://softbbs.zol.com.cn/1/32_8011.html Elcomsoft Wireless Security Auditor简称EWSA,是一款极为强悍的路由密 ...

  8. win7登录密码破解工具

    http://bbs.360.cn/4004079/252123738.html win7登录密码破解工具(开机绕过登录密码) 软件分类:系统工具 运行环境:Win2000/WinXP/Win2003 ...

  9. John the Ripper 著名密码破解工具

    著名密码破解工具 John the Ripper 发布了 1.9.0-jumbo-1 版本. John the Ripper 是一款速度很快的密码破解工具,目前可用于 Unix.macOS.Windo ...

最新文章

  1. php+防御+xss,PHP防御XSS攻击
  2. cocos2d 环绕已知点移动一圈
  3. linux重启memcache_Linux下的Memcache安装方法
  4. Android 系统(165)---在apns-conf文件中配置一个read_only字段,使APN不可被编辑
  5. WIN10安装VS2013出现兼容性问题解决
  6. Python中的变量、引用、拷贝和作用域
  7. windows redis 设置密码_Linux下设置redis访问密码
  8. Tiles的使用,遗漏和总结
  9. 模拟器安装 xposed
  10. 集线器故障诊断与排除
  11. 【open stack】openstack从入门到放弃
  12. SRS4.0源码分析-main
  13. Spring-JdbcTemplate环境搭配及基本功能
  14. 【调剂】985电子科技大学2020年信息与软件工程学院硕士研究生复试调剂办法(第二批)...
  15. 还不懂Binder的原理?你损失了一张腾讯offer
  16. python 动态导入模块和类
  17. 【leetcode刷题】70.最少操作使数组递增——Java版
  18. 零基础,如何学习CAD和3Dmax,有什么学习计划吗?
  19. web远程访问Windows桌面
  20. 树莓派PICO入门:电脑连接简易树莓派PICO单片机,烧录,使用python进行简单代码操作。

热门文章

  1. Elasticsearch原理学习
  2. 腾讯云2018年营收增速超阿里云,多个行业云市场占有率第一
  3. 玩转华为ENSP模拟器系列 | 配置LDP传输地址
  4. IOS学习——TableViewController
  5. YUM仓库及NFS共享服务理论
  6. IDesign C#编程规范
  7. c语言写一元一次函数图像,【仿真】绘制一次函数图像
  8. python练习:输入一个时间,输出该时间经过5分30秒后的时间
  9. 简单分业(带参-适合中小型)_.net
  10. 吉比特2018春招技术类笔试试卷编程题 - 题解