简介
在本实验中,你将学习如何安装和验证 Hydra。Hydra 是一款功能灵活的密码破解工具,可针对多种协议对网络登录进行暴力破解。实验内容涵盖软件包安装、版本验证和基础命令测试,帮助你确认工具能够正常运行。
你将练习 Hydra 的基本操作,包括查看版本、定位可执行文件以及探索命令选项。这些实践步骤不仅能帮助你确认安装成功,也能让你熟悉这款重要的安全工具。
在系统上安装 Hydra
在本步骤中,你将安装 Hydra,这是一款用于测试网络安全的强大密码破解工具。Hydra 可对登录系统执行暴力破解,支持包括 HTTP、FTP 和 SSH 在内的 30 多种协议。我们将在 LabEx 虚拟机上安装它,这里提供了安全的学习环境。
注意:免费用户无法连接互联网,因此实验环境中已经预装 Hydra。你可以直接跳到列表中的第 4 项(检查 Hydra 是否已安装)。升级为专业版后,你可以自行练习安装 Hydra。
- 首先更新软件包列表,确保安装 Hydra 及其依赖项的最新可用版本:
sudo apt update
sudo 命令用于获得管理员权限,而 apt update 会刷新系统中的可用软件包列表。
- 使用
apt软件包管理器安装 Hydra。-y参数会在安装过程中自动确认所有提示:
sudo apt install -y hydra
安装过程会自动处理所有必需的依赖项。这些依赖项是 Hydra 正常运行所需的其他软件组件。等待安装完成,结束时你会看到相应提示。
安装完成后,验证 Hydra 是否已正确安装并可访问。
which命令会显示系统找到 Hydra 可执行文件的位置:
which hydra

预期输出:
/usr/bin/hydra
该输出表明 Hydra 已正确安装。/usr/bin/ 路径表示此工具对整个系统可用,因此你可以在终端的任意目录中运行它。接下来,我们将探索 Hydra 的强大功能。
验证已安装的 Hydra 版本
在本步骤中,你将确认 Hydra 能否正常启动,并查看已安装的版本。Hydra 没有专门用于仅显示版本的选项,但它的帮助信息开头会显示包含版本号的标题行。
运行 Hydra 的帮助命令,并只保留第一行:
hydra -h 2>&1 | head -n 1
你应该会看到类似以下的输出:
Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak ...
具体版本和版权年份可能有所不同。只要看到 Hydra v... 标题,就说明 Shell 能够找到并启动已安装的可执行文件。
不要使用 hydra -v 或 hydra -V 来检查版本。在 Hydra 中,-v 用于启用详细模式,-V 用于显示每一次尝试的登录名和密码。这两个选项都应与实际目标一起使用;单独运行时虽然会显示标题,但随后会因为未提供目标而失败。
查找 Hydra 的可执行文件路径
在本步骤中,你将学习如何查找 Hydra 在系统中的安装位置。安装 Hydra 这类软件时,系统会将其可执行文件放置在特定目录中。了解该路径非常重要,原因如下:
- 可以帮助你确认安装是否成功
- 创建脚本或别名时需要使用该路径
- 系统管理员在进行安全审计时通常需要检查可执行文件的位置
首先使用基本命令查找 Hydra:
- 使用
which命令定位 Hydra 的可执行文件。该命令会在系统的PATH环境变量所包含的目录中搜索 Hydra:
which hydra
- 输出会显示 Hydra 主可执行文件的完整路径。在典型的 Linux 系统中,你可能会看到:
/usr/bin/hydra
- 现在查看该可执行文件的更多信息。下面的命令将
ls -l(显示文件详细信息)与which hydra(获取文件路径)结合起来:
ls -l $(which hydra)
- 该命令会提供以下重要信息:
- 文件权限(谁可以读取、写入或执行该文件)
- 文件所有者(系统安装的软件通常由 root 所有)
- 文件大小和修改日期
- 文件的实际路径
示例输出:
-rwxr-xr-x 1 root root 123456 Jan 1 00:00 /usr/bin/hydra
- 如果想进一步了解,还可以检查 Hydra 可执行文件的类型。当你需要确认它是真正的二进制文件,而不是脚本或符号链接时,这项检查尤其有用:
file $(which hydra)
- 输出会说明这是一个已编译的二进制文件(而非脚本),并显示其架构和链接方式等技术细节:
/usr/bin/hydra: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=abcdef1234567890, for GNU/Linux 3.2.0, stripped
这些命令可以完整呈现 Hydra 的安装位置及其可执行文件类型。掌握这些内容,是使用任何命令行工具的基础。
使用帮助命令运行 Hydra
在本步骤中,你将学习如何访问 Hydra 内置的帮助文档,以了解其基本用法和命令语法。使用 Hydra 时,帮助系统是最重要的参考资料之一,因为它会详细说明所有可用的命令和选项。
- 要显示包含常见选项和基本命令结构的帮助菜单,请在终端中运行:
hydra -h
- 输出会先显示 Hydra 的版本信息,然后显示基本命令语法,其中包括:
- 必需参数的格式
- 常用选项
- 基本用法示例
你通常会看到类似以下内容:
Hydra v9.2 (c) 2022 by van Hauser/THC & David Maciejak
Syntax: 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]]
Options:
-l LOGIN or -L FILE login with LOGIN name, or load several logins from FILE
-p PASS or -P FILE try password PASS, or load several passwords from FILE
...
- 如果要查看特定协议的帮助信息,了解某项服务(例如 HTTP 或 FTP)的高级选项,可以使用以下格式:
hydra -U SERVICE
将 SERVICE 替换为你要使用的实际协议名称,例如 http、ftp 或 ssh。命令会显示该服务的专用选项。
- 要查看 Hydra 支持的所有服务模块,可以执行以下命令(注意,
foo和bar这里只是占位符):
hydra -l foo -p bar -U
- 详细的帮助信息包含以下重要内容:
- 每个模块的必需参数和可选参数
- 实际使用示例
- 支持的协议完整列表
- 用于调整测试性能的相关设置
请记住,Hydra 的帮助系统具有上下文相关性:使用 -h 或 -U 参数时,具体组合的选项不同,显示的信息也会不同。
使用模拟命令测试 Hydra
在本步骤中,你将使用 Hydra 运行一条安全的测试命令,在不攻击真实系统的情况下验证其基本功能。在实际场景中使用 Hydra 之前,这是了解其工作方式的重要准备步骤。
- 首先创建一个测试密码列表。该文件包含 Hydra 在测试过程中尝试使用的示例密码:
echo -e "password\n123456\nqwerty" > ~/project/test_passwords.txt
- 创建一个测试用户名列表。同样,该文件包含 Hydra 将尝试使用的示例用户名:
echo -e "admin\ntest\nroot" > ~/project/test_usernames.txt
- 现在让 Hydra 以测试模式针对本地主机(也就是你自己的机器)运行。由于目标是本机,并且使用的是不会真正成功的测试凭据,因此这是完全安全的:
hydra -L ~/project/test_usernames.txt -P ~/project/test_passwords.txt 127.0.0.1 ssh -t 1 -vV
- 你应该会看到显示测试尝试过程的输出。这些信息展示了 Hydra 如何遍历密码组合,但实际上不会成功登录:
[DATA] attacking ssh://127.0.0.1:22/
[VERBOSE] Resolving addresses ... [VERBOSE] resolving done
[INFO] Testing if password authentication is supported by ssh://127.0.0.1:22
[22][ssh] host: 127.0.0.1 login: admin password: password
[22][ssh] host: 127.0.0.1 login: admin password: 123456
[22][ssh] host: 127.0.0.1 login: admin password: qwerty
...
[STATUS] attack finished for 127.0.0.1 (waiting for children to complete tests)
- 该命令使用了以下安全参数,理解它们非常重要:
-L:指定刚刚创建的用户名列表文件路径-P:指定刚刚创建的密码列表文件路径-t 1:将 Hydra 限制为 1 个并行连接(测试速度更慢,但更安全)-vV:启用详细输出,以便查看 Hydra 的运行过程ssh:指定针对 SSH 协议进行测试(但该测试不会成功)
该测试展示了 Hydra 的基本工作方式,不会带来实际风险。你可以看到它如何系统地尝试不同的用户名和密码组合,但这些尝试都不会在本地机器上成功。
总结
在本实验中,你学习了如何在 LabEx 虚拟机系统上安装和验证 Hydra 密码破解工具。整个过程包括更新软件包、通过 apt 安装 Hydra,以及确认其安装路径为 /usr/bin/hydra。你还通过 hydra -v 和 hydra -V 命令检查了 Hydra 的版本,从而验证安装结果。
此外,你还使用 which hydra 定位了 Hydra 的可执行文件,并通过 hydra -h 等命令探索了它的基本功能。这些步骤确保 Hydra 已正确安装,并已准备好用于安全测试场景。


