自定义 Hydra 端口号

HydraHydraBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

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

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


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hydra(("Hydra")) -.-> hydra/HydraGroup(["Hydra"]) hydra/HydraGroup -.-> hydra/ssh_attack("SSH Brute Force") hydra/HydraGroup -.-> hydra/verbose_mode("Verbose Mode Usage") hydra/HydraGroup -.-> hydra/custom_port("Custom Port Attack") subgraph Lab Skills hydra/ssh_attack -.-> lab-550765{{"自定义 Hydra 端口号"}} hydra/verbose_mode -.-> lab-550765{{"自定义 Hydra 端口号"}} hydra/custom_port -.-> lab-550765{{"自定义 Hydra 端口号"}} end

在非标准端口上配置 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 -p 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 命令使用 -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 关联。