在 Kali 中使用 Hydra 进行密码测试

HydraBeginner
立即练习

介绍

在线凭据测试向运行中的服务发送登录尝试,因此范围、候选数量、并发度与停止条件必须明确。若凭据也能在实际目标上完成身份验证,报告的成功结果就更有说服力。

本实验提供专用本地 SSH 服务和一个弱训练账户。你将运行范围有限的 Hydra 检查,保存结果,并用一条远程身份命令确认恢复的登录凭据。

执行小规模授权 SSH 凭据检查

本步骤中,你将使用 Hydra 检查专用本地训练服务上的一个指定账户。

进入 Kali 并选择共享工作区:

kali
cd /home/labex/project

与 John 的离线哈希比较不同,Hydra 向实时服务发送身份验证尝试。每次尝试都可能影响服务日志、负载或账户策略。本练习仅授权使用提供的小型列表,测试 127.0.0.1:12222 上的 training-login 账户。宿主机 SSH 服务和其他账户不在范围内。

测试前读取候选列表:

cat candidates.txt

其中有三个训练候选项,每行一个。无需更大的字典或密码生成。

Hydra 的 -l 选择一个登录名;-P 从文件读取候选密码;-s 选择非默认服务端口;-t 1 将并发度限制为一个任务;-f 在找到第一组成功凭据后停止;-o 保存成功结果。ssh:// 目标选择 SSH 协议模块:

hydra -l training-login -P candidates.txt -s 12222 -t 1 -f -o hydra-results.txt ssh://127.0.0.1

等待有限测试结束。成功结果应标明端口 12222、SSH 服务、指定登录名和一个候选密码。版本横幅、耗时与尝试顺序细节可能不同。

读取保存的结果:

cat hydra-results.txt

找到 training-login 的成功凭据。连接错误、不支持的协议或候选列表耗尽,与有效身份验证结果不同;不要将每次完成的 Hydra 运行都视为成功。

使用 SSH 确认恢复的账户

本步骤中,你将验证报告的凭据能否在指定服务上实际完成身份验证,并保存远程身份结果。

保存的 Hydra 结果应显示 training-login 的训练密码为 pebble7。这是有意设置的弱测试凭据,不应在其他地方复用。

SSH 客户端可以远程运行一条命令后断开。小写 -p 选择非默认 SSH 端口;user@address 选择账户与端点。末尾的 whoami 以经过身份验证的远程账户运行。将该命令输出重定向到本地结果文件:

ssh -p 12222 training-login@127.0.0.1 whoami > authenticated-user.txt

首次连接时,SSH 会询问是否信任该训练服务的主机密钥。你连接的是为本练习准备的专用本地端点;输入 yes 并按 Enter。出现密码提示时,输入恢复的密码 pebble7 并按 Enter。密码字符不会回显。这不会创建交互式远程 shell:远程命令完成后,你会返回 Kali 提示符。

读取保存的身份:

cat authenticated-user.txt

预期输出:

training-login

这会针对实际服务检查凭据,而非仅依赖工具结果行。该登录仅限于隔离的训练 SSH 服务;宿主机学习者账户与 SSH 配置保持不变。

总结

你区分了在线登录尝试与离线恢复,选择单个 SSH 账户及自定义端口,限制并发,并在首次成功时停止。你保存了结果,确认报告的凭据确实能以指定账户在服务上完成身份验证。