游乐游手机版
首页/网络安全/文章详情

Hydra 如何使用额外密码进行账号密码检查

时间:2026-08-18 14:54
{ "position ":0, "title ": "介绍 ", "layout ": "doc-fullscreen ", "text ": " 介绍nn在这个实验中,你将学习如何在 Hydra(一个强大的网络登录密码破解工具)中使用额外的密码检查。具体来说,你将在 LabEx 虚拟机上设置一个 Telnet 服务,
{"position":0,"title":"介绍","layout":"doc-fullscreen","text":"## 介绍nn在这个实验中,你将学习如何在 Hydra(一个强大的网络登录密码破解工具)中使用额外的密码检查。具体来说,你将在 LabEx 虚拟机上设置一个 Telnet 服务,然后使用 Hydra 的 `-e nsr` 选项进行密码破解尝试。该选项允许 Hydra 自动尝试空密码、用户名本身作为密码以及用户名反转后的字符串作为密码。这是一种在渗透测试中快速识别弱密码或默认凭据的常用技术。nn该实验将指导你完成在 LabEx 虚拟机上安装和配置 Telnet 服务的过程。然后,你将使用 Hydra 的 `-e nsr` 标志来演示如何使用这些额外的检查来查找简单的密码。最后,你将比较使用仅 `-e ns` 选项的结果,以了解包含用户名反转检查的影响。n","need_verify":false,"has_solution":false},{"position":1,"title":"设置 Telnet 服务","layout":"doc-workbench-split","text":"## 设置 Telnet 服务nn本步骤中,我们将配置 LabEx 虚拟机上的 Telnet 服务。Telnet 是一种网络协议,它提供了一个命令行界面来访问远程服务器。虽然 Telnet 通常被认为在生产环境中是不安全的,因为它以明文传输数据,但在受控的实验环境中演示密码破解技术是合适的。nn首先,我们需要创建一个具有空密码的测试用户帐户:nn```bashnsudo useradd -m testusernsudo passwd -d testusern```nn`passwd -d` 命令删除用户的密码,从而有效地创建了一个空密码。nn我们需要编辑 Telnet 配置文件,该文件位于 `/etc/inetd.conf`。使用 `nano` 编辑器打开该文件:nn```bashnsudo nano /etc/inetd.confn```nn在 `nano` 编辑器中,找到以 `telnet` 开头的行。它应该类似于这样:nn```ntelnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/telnetdn```nn通过在该行开头添加 `#` 来注释掉该行:nn```n#telnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/telnetdn```nn现在,在已注释掉的行的下方添加以下行。新行配置 Telnet 使用 `-i` 选项,该选项禁用身份验证。nn```ntelnet stream tcp nowait telnetd /usr/sbin/in.telnetd -in```nn![Telnet 配置文件](https://file.labex.io/namespace/93459dab-5a0f-4725-a867-c2ce335286d8/hydra/lab-use-additional-hydra-password-checks/zh/../assets/20250529-09-52-04-qDLYnBWv.png)nn现在,你的 `/etc/inetd.conf` 文件的相关部分应该如下所示:nn```n#telnet stream tcp nowait telnetd /usr/sbin/tcpd /usr/sbin/telnetdntelnet stream tcp nowait telnetd /usr/sbin/in.telnetd -in```nn按 `Ctrl+X` 退出 `nano`。系统提示保存时,按 `Y`,然后按 `Enter` 保存更改到 `/etc/inetd.conf`。nn此外,我们需要验证 PAM 是否配置为允许 Telnet 的空密码。检查 PAM 配置:nn```bashncat /etc/pam.d/common-auth | grep pam_unix.son```nn你应该看到类似于这样的行:nn```nauth [success=1 default=ignore] pam_unix.so nullokn```nn如果该行不包含 `nullok`,则需要添加它。编辑文件:nn```bashnsudo nano /etc/pam.d/common-authn```nn找到包含 `pam_unix.so` 的行,并在末尾添加 `nullok`(如果它不存在)。保存并退出文件,如果你进行了任何更改。nn最后,我们需要重启 `inetd` 服务,使更改生效。由于我们处于 Docker 容器环境中,我们将使用 `/etc/init.d` 脚本重启服务:nn```bashnsudo /etc/init.d/openbsd-inetd restartn```nn你应该看到指示服务正在重启的输出:nn```plaintextn * Restarting internet superserver inetdn```nn现在,Telnet 服务已设置并配置为允许在该实验中进行无密码登录。n","need_verify":true,"has_solution":false},{"position":2,"title":"使用 Hydra -e nsr 检查","layout":"doc-workbench-split","text":"## 使用 Hydra -e nsr 检查nn本步骤中,我们将使用 Hydra 对 接下来,我们将使用Hydra对Telnet服务进行暴力破解攻击。其中,`-e nsr`选项用于指示Hydra尝试空密码、用户名本身以及用户名反转后的字符串作为潜在密码。 具体操作如下:在`~/project`目录中打开终端,并执行以下命令: ```bash hydra -l testuser -P ~/project/unix_passwords.txt -vV -e nsr telnet://localhost ``` 下面我们来详细解读一下这个命令: - `hydra`:这是运行Hydra工具的命令。 - `-l testuser`:指定攻击使用的用户名,这里我们针对的是创建的具有空密码的测试用户。 - `-P ~/project/unix_passwords.txt`:指定一个密码列表文件,用于除了`-e`指定的检查之外的额外检查。该文件包含了在设置步骤中下载的常见Unix密码列表。 - `-vV`:启用详细输出,显示每次登录尝试及其结果。 - `-e nsr`:这是本步骤的关键选项,它告诉Hydra执行额外的检查: - `n`:尝试空密码(空字符串)。 - `s`:尝试用户名(`testuser`)作为密码。 - `r`:尝试用户名反转(`resutest`)作为密码。 - `telnet://localhost`:指定目标服务和地址,`telnet`指示Telnet协议,`localhost`指的是本地机器(LabEx虚拟机本身)。 执行该命令后,Hydra将开始尝试使用指定的用户名和密码列表、空密码、用户名以及用户名反转后的字符串,登录目标主机23端口(默认Telnet端口)上的Telnet服务。 你将会看到类似于以下的输出,因为Hydra正在进行尝试: ```plaintext Hydr ```a vX.Y (c) 2020 by van Hauser/THC - use allowed only for legal purposes.nnHydra is starting...nn[DATA] 1 task, 1 server, XXXX service(s)n[DATA] attacking service telnet on port 23n[DATA] attacking target localhostn[ATTEMPT] target localhost - login: 'testuser' - pass: ''n[23][telnet] host: localhost login: testuser password:n[ATTEMPT] target localhost - login: 'testuser' - pass: 'testuser'n[ATTEMPT] target localhost - login: 'testuser' - pass: 'resutest'n...n```nn由于我们配置了测试用户具有空密码,Hydra 应该会快速找到使用空密码的成功登录(第一个使用空密码的尝试)。n","need_verify":true,"has_solution":false},{"position":3,"title":"检查输出以确认成功","layout":"doc-workbench-split","text":"## 检查输出以确认成功nn本步骤中,我们将检查你刚刚运行的 Hydra 命令的输出,以识别成功的登录尝试。nn请在你的终端输出中向上滚动,查找指示成功登录的行。这些行通常以端口号和服务为标志,后跟主机、用户名和密码。nn由于我们配置的 Telnet 服务允许无密码登录,你应该在输出中看到类似于此的行:nn```plaintextn[23][telnet] host: localhost login: testuser password:n```nn此行确认 Hydra 使用用户名 `testuser` 和空密码(密码后为空格表示)成功登录了 `localhost` 上的 Telnet 服务。nn如果 `~/project/unix_passwords.txt` 文件中的任何密码与 `testuser` 用户的实际密码匹配,你可能还会看到其他成功的登录(尽管在本实验设置中,空密码是预期的成功检查)。nn`-vV` 选项为每次尝试提供详细输出,这对于理解 Hydra 的进展情况以及它正在尝试哪些密码很有用。成功的登录行清楚地显示了有效的凭据。nn本步骤演示了 `-e nsr` 选项如何帮助快速识别常见的弱密码场景,例如空密码,这些场景在标准密码列表中经常被忽略。n","need_verify":true,"has_solution":false},{"position":4,"title":"与 -e ns 检查结果对比","layout":"doc-workbench-split","text":"## 与 -e ns 检查结果对比nn本步骤中,我们将再次运行 Hydra,但这次我们将使用 `-e ns` 选项而不是 `-e nsr`。这将告诉 Hydra 尝试空密码和用户名作为密码,但它不会尝试用户名反转后的字符串。通过比较此命令的输出与之前的输出,你可以看到执行的检查差异。nn在 `~/project` 目录中打开你的终端并执行以下命令:nn```bashnhydra -l testuser -P ~/project/unix_passwords.txt -vV -e ns telnet://localhostn```nn此命令与之前的命令几乎相同,唯一的区别是 `-e ns` 选项。nn- `-e ns`: 此选项告诉 Hydra 执行以下额外检查:n - `n`: 尝试空密码。n - `s`: 尝试用户名 (`testuser`) 作为密码。nn执行该命令。Hydra 将再次尝试登录 Telnet 服务,尝试密码列表中的密码、空密码和用户名作为密码。nn观察输出。你将看到类似于之前运行的空密码和用户名作为密码的尝试。但是,你不会看到用户名反转 (`resutest`) 的尝试。nn```plaintextnHydra vX.Y (c) 2020 by van Hauser/THC - use allowed only for legal purposes.nnHydra is starting...nn[DATA] 1 task, 1 server, XXXX service(s)n[DATA] attacking service telnet on port 23n[DATA] attacking target localhostn[ATTEMPT] target localhost - login: 'testuser' - pass: ''n[23][telnet] host: localhost login: testuser password:n[ATTEMPT] target localhost - login: 'testuser' - pass: 'testuser'n...n```nn通过比较此命令的输出与步骤 2 的输出,你可以清楚地看到 `-e nsr` 选项包含用户名反转检查,而 `-e ns` 选项则不包含。这突出了 Hydra 中不同的选项如何允许你自定义密码破解过程,并包含特定类型的检查,这些检查在某些场景中可能相关。n","need_verify":true,"has_solution":f咱们来总结一下啊。在这次实验里,你得知道怎么在LabEx虚拟机上把Telnet服务给设置好,然后利用`-e nsr`选项,在Hydra里进行额外的密码检查。你得先装上`telnetd`包,接着创建个空密码的测试用户,再修改下`/etc/inetd.conf`文件,还要配置PAM让空密码能通过,这样Telnet服务就允许空密码了,方便演示。 然后呢,你得用带`-e nsr`选项的Hydra去尝试破解密码,这其中包括试试空密码、把用户名当密码,还有用户名反转后的字符串当密码。观察输出结果,找出用空密码成功登录的情况。最后,把这个结果和用`-e ns`选项的结果比一比,了解下执行的检查有啥不同。这次实验展示了怎么通过Hydra的额外密码检查,快速找出常见的弱凭据。
来源:https://labex.io/zh/tutorials/hydra-use-additional-hydra-password-checks-550776
上一篇忽略Hydra恢复文件的方法与处理建议 下一篇如何用Nmap检测并利用Metasploitable2的Samba漏洞
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
DDoS攻击的三大主要形式:原理、特征与防御重点
网络安全 · 2026-08-31

DDoS攻击的三大主要形式:原理、特征与防御重点

DDoS攻击主要分为基于流量(Volume)、基于应用层(Application)和基于协议(Protocol)三种形式。流量型攻击通过海量数据淹没带宽;应用层攻击利用Web漏洞耗尽服务器资源;协议层攻击则利用TCP握手缺陷导致系统挂起。了解这些原理是制定针对性防御策略的基础。

如何有效预防和缓解DDoS攻击:5大核心策略详解
网络安全 · 2026-08-31

如何有效预防和缓解DDoS攻击:5大核心策略详解

面对DDoS攻击,单纯增加带宽已非长久之计。本文详解5大核心防护策略:优化网络硬件配置、建立DNS冗余机制、部署透明缓解技术、引入负载平衡器及专用Anti-DDoS模块。通过合理组合这些技术手段,可有效抵御SYN泛洪、Slowloris等常见攻击,保障业务连续性与网站可用性。

DDoS防护四大误区:CDN、防火墙与黑名单的局限性解析
网络安全 · 2026-08-31

DDoS防护四大误区:CDN、防火墙与黑名单的局限性解析

许多企业误以为CDN、防火墙或黑名单能完全抵御DDoS攻击。本文深入解析四大常见误区:CDN仅提供部分缓解、静态黑名单易失效、防火墙算力有限且可能成为目标、阈值警报仅具滞后性。了解这些局限性,有助于构建更立体的防御体系,避免在攻击发生时措手不及。

常见DDoS攻击类型详解:原理、特征与防御策略
网络安全 · 2026-08-31

常见DDoS攻击类型详解:原理、特征与防御策略

本文详细解析四种常见DDoS攻击类型:SYN Flood利用TCP三次握手缺陷耗尽资源;UDP Flood通过海量数据包造成带宽拥塞;ICMP Flood利用Ping请求消耗系统算力;应用层Flood针对Web脚本进行高频请求。了解其原理是制定有效防御策略的基础。

如何有效抵御DDOS攻击:4种核心防护方案解析
网络安全 · 2026-08-31

如何有效抵御DDOS攻击:4种核心防护方案解析

面对DDOS攻击,企业需构建多层防护体系。本文详解四大核心策略:利用反向路由器查询进行流量清洗,通过GCDN智能分配节点隐藏源站IP,部署负载均衡硬件分担压力,以及接入高防机房抵御数百G恶意流量。掌握这些技术,可最大程度保障业务连续性。