CVE-2016-1240分析
针对Apache Tomcat 8/7/6 (Debian-Based Distros) - Privilege Escalation进行漏洞复现并分析。
漏洞简述
Debian系统的Linux上,使用apt-get安装Tomcat时,deb包安装的Tomcat程序会自动为管理员安装一个启动脚本:/etc/init.d/tomcat* 利用该脚本,可导致攻击者通过低权限的Tomcat用户获得系统root权限。只需要将Tomcat的日志文件catalina.out软链接到系统文件,重新打开catalina.out就可获取root权限。
漏洞分析
复现过程
获取POC脚本,运行POC脚本。
1 | ./tomcat-rootprivesc-deb.sh /var/log/tomcat7/catalina.out |
运行之后/var/log/catalina.out的链接已经指向/etc/ld.so.preload。
重启Tomcat服务。
1 | serverce tomcat7 restart |
POC分析
POC脚本85行判断用户是否为tomcat用户。
93行判断指定的tomcat日志文件是否存在。
158行删除日志文件并软链接到/etc/ld.so.preload。
168行判断/etc/ld.so.preload文件是否存在。
188行通过判断/tmp/tomcatrootsh文件是否具有rws 权限 root 匹配到返回0。
199行删除/etc/ld.so.preload和/tmp/privesclib.so。
跟踪$BACKDOORPATH变量,在148行$BACKDOORPATH是从$BACKDOORSH复制而来,根据开头变量的定义发现$BACKDOORSH为/bin/bash。
修复建议
升级Tomcat。