介绍
在线凭据测试向运行中的服务发送登录尝试,因此范围、候选数量、并发度与停止条件必须明确。若凭据也能在实际目标上完成身份验证,报告的成功结果就更有说服力。
本实验提供专用本地 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 账户及自定义端口,限制并发,并在首次成功时停止。你保存了结果,确认报告的凭据确实能以指定账户在服务上完成身份验证。


