简介
在本次实验中,你将学习如何在中断后恢复之前的 Hydra 会话。这可以通过使用一个简单的密码列表,模拟对 localhost
上的 ssh
服务进行中断的 Hydra 攻击来实现。然后,你将使用 -R
选项恢复会话,并验证攻击是否从中断点继续进行。
本次实验包括创建一个密码列表、构建一个 Hydra 命令来攻击 ssh
服务、使用 Ctrl+C
中断攻击,以及随后使用 -R
选项恢复会话。最后,你将探索如何使用新选项修改已恢复的会话。
在本次实验中,你将学习如何在中断后恢复之前的 Hydra 会话。这可以通过使用一个简单的密码列表,模拟对 localhost
上的 ssh
服务进行中断的 Hydra 攻击来实现。然后,你将使用 -R
选项恢复会话,并验证攻击是否从中断点继续进行。
本次实验包括创建一个密码列表、构建一个 Hydra 命令来攻击 ssh
服务、使用 Ctrl+C
中断攻击,以及随后使用 -R
选项恢复会话。最后,你将探索如何使用新选项修改已恢复的会话。
在这一步中,你将模拟一次中断的 Hydra 攻击。这是理解如何使用 -R
选项恢复会话的关键步骤。你将启动一次 Hydra 攻击,然后手动中断它,模拟在现实场景中,攻击可能因网络问题或其他不可预见的情况而停止。
首先,让我们预览一个简单的密码列表。这个列表将包含几个常见的密码,Hydra 会尝试使用这些密码。
cd ~/project
head -n 5 passwords.txt
将以下密码添加到文件中:
password
123456
qwerty
admin
1234567890
接下来,你需要一个攻击目标。为了便于演示,你将使用 localhost
上的 ssh
服务。确保 ssh
在你的 LabEx 虚拟机上正在运行。如果它没有运行,通常可以使用 sudo service ssh start
来启动它。不过,由于这是一个 Docker 容器,你可能无法使用 systemctl
或 service
。在这种情况下,你可以跳过实际的攻击,只专注于创建命令并中断它。为了完成这个练习,我们假设 ssh
正在运行。
sudo service ssh start
sudo service ssh status
现在,让我们构建 Hydra 命令。你将使用 ssh
模块,指定用户名 labex
,使用 passwords.txt
文件,并将目标设置为 localhost
。你还将添加 -t 1
选项,将并发任务的数量限制为 1,这样更容易观察中断情况。
hydra -l labex -P ~/project/passwords.txt -t 1 -vV ssh://localhost
这个命令将启动一次针对 localhost
上 ssh
服务的 Hydra 攻击,尝试使用 ~/project/passwords.txt
中的密码以用户 labex
的身份登录。
让攻击运行几秒钟(例如 5 - 10 秒)。在攻击运行时,按下 Ctrl+C
中断攻击。
你应该会看到类似于以下的输出(确切的输出会根据你的系统速度和 Hydra 尝试的密码数量而有所不同):
Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-04-02 13:56:44
[DATA] max 1 task per 1 server, overall 1 task, 55 login tries (l:1/p:55), ~55 tries per task
[DATA] attacking ssh://localhost:22/
[VERBOSE] Resolving addresses ... [VERBOSE] resolving done
[INFO] Testing if password authentication is supported by ssh://[email protected]:22
[INFO] Successful, password authentication is supported by ssh://127.0.0.1:22
[ATTEMPT] target localhost - login "labex" - pass "password" - 1 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "123456" - 2 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "qwerty" - 3 of 55 [child 0] (0/0)
^C[ERROR] Received signal 2, going down ...
The session file ./hydra.restore was written. Type "hydra -R" to resume session.
^C
表示你按下了 Ctrl+C
来中断进程。Hydra 将停止尝试密码。
这次中断模拟了攻击意外停止的场景。在下一个步骤中,你将学习如何使用 -R
选项恢复这个中断的会话。
在上一步中,你模拟了一次中断的 Hydra 攻击。现在,你将使用 -R
选项从中断点恢复会话。Hydra 会自动将其进度保存到当前目录下的一个 .restore
文件中。-R
选项告诉 Hydra 读取这个文件并继续攻击。
要恢复会话,只需运行与之前相同的 Hydra 命令,但添加 -R
选项:
hydra -R -l labex -P ~/project/passwords.txt -t 1 -vV ssh://localhost
Hydra 现在将读取 hydra.restore
文件(该文件是自动创建的),并从中断前到达的最后一点继续攻击。你应该会看到 Hydra 继续尝试 ~/project/passwords.txt
文件中的密码。
Hydra v9.2 (c) 2021 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
[INFORMATION] reading restore file ./hydra.restore
[WARNING] options after -R are now honored (since v8.6)
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-04-02 13:57:58
[DATA] max 1 task per 1 server, overall 1 task, 55 login tries (l:1/p:55), ~55 tries per task
[DATA] attacking ssh://localhost:22/
[VERBOSE] Resolving addresses ... [VERBOSE] resolving done
[INFO] Testing if password authentication is supported by ssh://[email protected]:22
[INFO] Successful, password authentication is supported by ssh://127.0.0.1:22
[RE-ATTEMPT] target localhost - login "labex" - pass "qwerty" - 3 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "admin" - 4 of 55 [child 0] (0/0)
[ATTEMPT] target localhost - login "labex" - pass "1234567890" - 5 of 55 [child 0] (0/0)
^C[ERROR] Received signal 2, going down ...
The session file ./hydra.restore was written. Type "hydra -R" to resume session.
让攻击再运行几秒钟。你可能会看到 Hydra 跳过了它在上一步中已经尝试过的密码。
-R
选项在你有一个大的密码列表或网络连接较慢的情况下非常有用。它允许你从中断点继续攻击,而不必从头开始,从而节省你的时间和资源。
需要注意的是,hydra.restore
文件会随着 Hydra 的进度自动更新。如果你再次中断攻击,可以使用相同的 -R
命令从新的中断点继续。
在本次实验中,你模拟了一次针对本地主机 SSH 服务的中断 Hydra 攻击,以了解如何恢复会话。你创建了一个密码列表,并发起了一次针对 labex
用户的 Hydra 攻击,然后使用 Ctrl+C
手动中断了该过程。
这次中断让你为后续步骤做好准备,在后续步骤中,你将学习如何使用 -R
选项恢复中断的会话,并从中断点继续攻击,以及如何使用新选项修改恢复后的会话。