CVE-2016-1240分析

针对Apache Tomcat 8/7/6 (Debian-Based Distros) - Privilege Escalation进行漏洞复现并分析。
success.png

漏洞简述

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

run poc.png
运行之后/var/log/catalina.out的链接已经指向/etc/ld.so.preload。
run end.png
重启Tomcat服务。

1
serverce tomcat7 restart

POC分析

POC脚本85行判断用户是否为tomcat用户。
1.png
93行判断指定的tomcat日志文件是否存在。
2.png
158行删除日志文件并软链接到/etc/ld.so.preload。
3.png
168行判断/etc/ld.so.preload文件是否存在。
4.png
188行通过判断/tmp/tomcatrootsh文件是否具有rws 权限 root 匹配到返回0。
5.png
199行删除/etc/ld.so.preload和/tmp/privesclib.so。
6.png
跟踪$BACKDOORPATH变量,在148行$BACKDOORPATH是从$BACKDOORSH复制而来,根据开头变量的定义发现$BACKDOORSH为/bin/bash。
7.png

修复建议

升级Tomcat。