自定义 Hydra 端口号

HydraBeginner
立即练习

简介

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

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

在非标准端口上配置 FTP

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

首先,让我们编辑 FTP 配置文件。我们将使用 LabEx 虚拟机中预装的 nano 编辑器。

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 命令,你可以通过提供 HOST PORT(例如 ftp localhost 2121)来指定非标准端口。然而,Hydra 使用 -s 选项来指定端口。在准备下一步的 Hydra 攻击时,理解这种差异非常重要。

让我们尝试使用 ftp 命令的“主机加端口”格式连接到 FTP 服务器,以验证连接。将 localhost 替换为 LabEx 虚拟机的 IP 地址。如果你是在同一台虚拟机上运行此实验,则可以使用 localhost127.0.0.1

ftp localhost 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 命令可以使用 HOST PORT 来指定目标端口,而 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 服务正在按预期运行,并且我们可以使用指定的端口访问它。

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

ftp localhost 2121

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

  • 用户名:ftpuser
  • 密码:password123

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

ftp login

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

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

连接成功确认了 FTP 服务器正在自定义端口上运行,并且你可以使用 ftp localhost 2121 连接到它。这也验证了 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 命令检查监听端口,并确认 vsftpd 与端口 2121 相关联,验证了 FTP 服务器确实正在新端口上监听。