自定义 Hydra 端口号

HydraBeginner
立即练习

介绍

在本次实验中,你将学习如何在目标系统上自定义 FTP 端口号,然后使用 Hydra 对该自定义端口上的 FTP 服务进行暴力攻击。对于需要评估配置了非标准 FTP 端口的系统安全性的渗透测试人员和安全专业人员来说,这是一项非常有用的技能。

本实验包括通过修改 vsftpd.conf 文件并重启 FTP 服务,将 LabEx 虚拟机上的 FTP 服务器配置为监听非标准端口。然后,你将使用 netstat 命令验证 FTP 服务器是否正在新端口上监听。最后,你将使用 Hydra 并结合 -s 选项指定自定义端口,执行 FTP 攻击,验证 Hydra 是否能够成功连接到配置端口上的 FTP 服务。

这是一个实验(Guided Lab),提供逐步指导来帮助你学习和实践。请仔细按照说明完成每个步骤,获得实际操作经验。根据历史数据,这是一个 初级 级别的实验,完成率为 97%。获得了学习者 95% 的好评率。

在非标准端口上配置 FTP

在这一步中,我们将把 LabEx 虚拟机上的 FTP 服务器配置为监听非标准端口。默认情况下,FTP 使用 21 端口。更改 FTP 端口有助于降低针对默认端口的自动化攻击风险。

首先,让我们编辑 FTP 配置文件。我们将使用 nano 编辑器,它已预先安装在 LabEx 虚拟机上。

sudo nano /etc/vsftpd.conf

此命令会在 nano 编辑器中打开 vsftpd.conf 文件。

在文件中添加以下行:

listen_port=2121
add listen_port

如果 listen_port 行不存在,请将其添加到文件中。将其添加到文件顶部附近是个不错的做法。

进行更改后,按 Ctrl+X 保存文件,然后按 Y 确认,再按 Enter 以相同的文件名保存。

接下来,我们需要重启 FTP 服务以使更改生效。

sudo service vsftpd restart

此命令会重启 FTP 服务。你应该会看到一条输出信息,表明服务已重启。

最后,让我们验证 FTP 服务器现在是否正在新端口上监听。我们可以使用 netstat 命令来检查监听端口。

sudo netstat -tulnp | grep vsftpd

此命令会显示所有 TCP、UDP、监听和进程信息,然后过滤输出,只显示包含 "vsftpd" 的行。你应该会看到一行信息,表明 vsftpd 正在端口 2121(或你选择的端口)上监听。

示例输出:

tcp6       0      0 :::2121                 :::*                    LISTEN      1027/vsftpd
check FTP port

如果你在输出中看到新的端口号,这意味着 FTP 服务器现在正在新端口上监听。

使用 -s 选项指定端口

在这一步中,你将学习在使用 ftp 命令时如何指定非标准端口。这一点至关重要,因为在上一步中,我们已将 FTP 服务器的监听端口从默认的 21 端口更改为自定义端口(例如 2121)。现在,当连接到服务器时,你需要告知 ftp 客户端使用哪个端口。

ftp 命令提供了 -p 选项来指定端口号。然而,Hydra 使用 -s 选项来指定端口。在为下一步的 Hydra 攻击做准备时,理解这一差异非常重要。

让我们尝试使用带有 -p 选项的 ftp 命令连接到 FTP 服务器,以验证连接是否正常。将 localhost 替换为 LabEx 虚拟机的 IP 地址。如果你在同一台虚拟机上进行此实验,可以使用 localhost127.0.0.1

ftp localhost -p 2121

系统会提示你输入用户名和密码。按 Ctrl+C 退出。

现在,让我们模拟 Hydra 如何指定端口。虽然我们还不会实际使用 Hydra,但这一步对于理解语法很重要。Hydra 使用 -s 选项来指定端口。

Hydra 指定端口的语法与标准的 ftp 命令不同。Hydra 使用 -s 后跟端口号。例如,如果我们使用 Hydra 攻击 2121 端口上的 FTP 服务,我们会在 Hydra 命令中包含 -s 2121

为了演示这一点,让我们创建一个虚拟的 Hydra 命令。我们不会执行它,但它将展示正确的语法。

hydra -l ftpuser -P ~/project/password.txt localhost ftp -s 2121
hydra syntax

这里的关键是 -s 2121 部分。这告诉 Hydra 连接到 2121 端口上的 FTP 服务。

总之,标准的 ftp 命令使用 -p 来指定端口,而 Hydra 使用 -s。理解这一差异对于下一步使用 Hydra 执行 FTP 攻击至关重要。

在自定义端口上执行 FTP 攻击

在这一步中,我们将使用 Hydra 对在第一步中配置的非标准端口上运行的 FTP 服务进行暴力攻击。我们将使用在设置阶段创建的密码列表。

现在,你可以启动 Hydra 攻击了。将 localhost 替换为 LabEx 虚拟机的 IP 地址。如果你在同一台虚拟机上进行此实验,可以使用 localhost127.0.0.1

hydra -l ftpuser -P ~/project/password.txt localhost ftp -s 2121 -vV

让我们来拆解一下这个命令:

  • hydra:用于执行 Hydra 工具的命令。
  • -l ftpuser:指定要攻击的用户名。
  • -P ~/project/password.txt:指定在设置阶段创建的密码列表文件的路径。
  • localhost:指定目标 IP 地址。请将 localhost 替换为实际的 IP 地址。
  • ftp:指定要攻击的服务(在这种情况下是 FTP)。
  • -s 2121:指定端口号。这一点至关重要,因为我们在第一步中将 FTP 端口更改为了 2121。
  • -vV:启用详细模式,该模式会实时显示登录尝试信息。

执行该命令后,Hydra 将开始从 ~/project/password.txt 文件中尝试不同的密码,对指定端口上的 FTP 服务进行攻击。

如果 Hydra 找到了正确的密码,它将显示成功登录的信息。例如:

[ATTACKER] attacking ftp://localhost:2121/
[2121][ftp] host: localhost   login: ftpuser   password: password123

如果 Hydra 没有找到正确的密码,它将尝试列表中的所有密码,然后在不显示成功登录信息的情况下退出。

重要安全提示:本实验仅用于教育目的。未经明确许可,请勿使用 Hydra 攻击系统。未经授权访问计算机系统是违法且不道德的行为。

验证连接到正确的端口

在这最后一步中,你将验证在尝试使用 Hydra 攻击后,是否仍能连接到自定义端口上的 FTP 服务器。这将确认 FTP 服务是否按预期运行,以及你是否可以使用指定的端口访问它。

使用带有 -p 选项的 ftp 命令连接到自定义端口上的 FTP 服务器。将 localhost 替换为 LabEx 虚拟机的 IP 地址。如果你在同一台虚拟机上进行此实验,可以使用 localhost127.0.0.1

ftp -p 2121 localhost

系统会提示你输入用户名和密码。使用在设置阶段创建的凭据:

  • 用户名:ftpuser
  • 密码:password123

如果连接成功,你将登录到 FTP 服务器。

ftp login

如果你无法连接,请仔细检查以下内容:

  • 确保 FTP 服务仍在运行。你可以使用 netstat -tulnp | grep vsftpd 命令进行检查,就像我们在第一步中所做的那样。
  • 验证 /etc/vsftpd.conf 文件中的 FTP 端口是否仍设置为 2121(或你选择的端口)。
  • 确保没有防火墙规则阻止连接到自定义端口。(注意:LabEx 虚拟机环境通常默认不启用防火墙,但在实际场景中,记住这一点很重要。)
  • 确认你使用的是正确的用户名和密码。

成功连接则确认 FTP 服务器正在自定义端口上运行,并且你可以使用带有 -p 选项的 ftp 命令连接到它。这也验证了即使 Hydra 攻击未成功,也不会中断 FTP 服务。

至此,本实验结束。你已成功在非标准端口上配置了 FTP,学习了如何使用 Hydra 的 -s 选项指定端口,执行了基本的 Hydra 攻击,并验证了是否能连接到正确的端口。

总结

在本实验中,你将 LabEx 虚拟机上的 FTP 服务器配置为监听非标准端口,具体是端口 2121,而非默认的端口 21。这需要使用 nano 编辑 /etc/vsftpd.conf 文件,以修改或添加 listen_port 指令,然后使用 sudo service vsftpd restart 重启 FTP 服务。

最后,你使用 netstat -tulnp | grep vsftpd 命令检查监听端口,验证 FTP 服务器确实在新端口上监听,并确认 vsftpd 与端口 2121 关联。