设置多用户凭证的 FTP 服务器
本步骤中,我们将设置一个 FTP 服务器并配置多个用户凭证。这将使我们能够测试 Hydra 同时破解多个帐户的能力。我们将使用 vsftpd
(Very Secure FTP Daemon) 作为我们的 FTP 服务器。
首先,让我们安装 vsftpd
。打开你的终端并执行以下命令:
sudo apt update
sudo apt install vsftpd -y
接下来,我们需要配置 vsftpd
。我们将首先备份原始配置文件。在更改任何系统配置文件之前,这是一个良好的实践。
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
现在,让我们使用 nano
编辑配置文件 /etc/vsftpd.conf
。此文件控制 FTP 服务器的行为。
sudo nano /etc/vsftpd.conf
在 nano
编辑器中,添加或修改以下行。这些设置将禁用匿名访问,启用本地用户登录,允许写入访问,并强制本地用户登录到其主目录以提高安全性。
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
listen=YES
listen_ipv6=NO
要在 nano
中保存文件:
- 按
Ctrl + X
退出。
- 按
Y
确认保存。
- 按
Enter
确认文件名。
保存文件后,使用以下命令检查配置文件,确保更改已正确应用:
sudo cat /etc/vsftpd.conf | grep -E "^(anonymous_enable|local_enable|write_enable|chroot_local_user|listen)"
确保输出显示与我们添加的配置相同的配置。
现在,让我们创建多个用户帐户。我们将创建两个用户:testuser1
和 testuser2
,并为它们设置密码。Hydra 将使用这些用户尝试登录。
创建 testuser1
并指定其主目录:
sudo useradd -m testuser1
使用非交互式命令设置 testuser1
的密码:
echo 'testuser1:password123' | sudo chpasswd
创建 testuser2
并指定其主目录:
sudo useradd -m testuser2
使用非交互式命令设置 testuser2
的密码:
echo 'testuser2:password456' | sudo chpasswd
这些命令是非交互式的,将直接创建用户,无需提示输入,使其在自动化环境中更可靠。
现在,我们需要修复 chroot 配置的主目录权限。启用 chroot_local_user=YES
后,出于安全原因,用户的 home 目录必须不可由用户写入:
sudo chmod 755 /home/testuser1
sudo chmod 755 /home/testuser2
为每个用户创建可写入的子目录,以便他们可以上传文件:
sudo mkdir /home/testuser1/files
sudo mkdir /home/testuser2/files
sudo chown testuser1:testuser1 /home/testuser1/files
sudo chown testuser2:testuser2 /home/testuser2/files
接下来,重启 vsftpd
服务,以应用我们对配置文件所做的更改并识别新用户。
sudo service vsftpd restart
现在,让我们测试 FTP 服务器以确保它运行正常,并且我们的新用户可以登录。你可以使用 ftp
命令行客户端连接到服务器。由于我们是在本地运行服务器,我们可以连接到 localhost
。
ftp localhost
系统将提示你输入用户名。输入 testuser1
,然后输入密码 password123
。如果一切配置正确,你应该会看到一条登录成功的消息。
Connected to localhost.
220 (vsFTPd 3.0.3)
Name (localhost:labex): testuser1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>
你可以键入 bye
退出 FTP 客户端。
ftp> bye
221 Goodbye.
现在,让我们准备 Hydra 将用于攻击的文件。导航到你的 ~/project
目录,这是你的默认工作目录。
cd ~/project
在 ~/project
目录中创建一个名为 users.txt
的文件。此文件将包含 Hydra 将尝试使用的用户名。
nano users.txt
将以下用户名添加到 users.txt
:
testuser1
testuser2
保存文件并退出 nano
。
接下来,在 ~/project
目录中创建一个名为 passwords.txt
的文件。此文件将包含密码列表,包括我们测试用户的正确密码以及一些常见的错误密码。
nano passwords.txt
将以下密码添加到 passwords.txt
:
password123
password456
password
123456
qwerty
保存文件并退出 nano
。
现在,我们已设置了一个具有多个用户帐户的 FTP 服务器,以及 Hydra 可用于尝试破解帐户的用户和密码列表。