CVE-tomcat-pass-getshell
前置知识
Apache Tomcat的默认端口是8080,管理后台是tomcat manager,后台的路径是 /manager/html
tomcat manager后台的弱口令账户密码是tomcat/tomcat
利用过程
信息搜集
虽然我们知道我们自己开了什么环境、对应什么漏洞,但还是尽量模拟一下真实的渗透步骤。
首先用nmap进行端口信息搜集,也可以是查询shodan等进行一下被动信息搜集。
$ nmap -sV xxx.xxx.xxx.xxx -p 1-65535
发现有Tomcat服务开放,以及对应的端口:xxx.xxx.xxx.xxx:40077
尝试后台登入
访问tomcat后台管理地址:xxx.xxx.xxx.xxx/manager/html
尝试使用tomcat管理后台弱口令登入:tomcat/tomcat
,登入成功。
可以看到,后台面板支持本地或者文件上传的形式执行WAR包(补1)。因此我们的思路可以是上传一个.war格式的后门,然后通过访问该文件路径使得tomcat执行,从而解压生成一个JSP的WebShell,随tomcat启动,便可进行控制。
上传War包后门
因此,尝试直接上传一个shell,然后压缩,后缀改成.war进行上传。这里使用一下Behinder(冰蝎)进行。
执行后门
上传成功后,我们访问该后门的地址,使其解压。如此构造:地址/war包的文件名/后门的文件名
,例如我的war包为shell.war
,其中被压缩的后门名字为shell.jsp
,则应该访问xxx.xxx.xxx/shell/shell
,访问后后门执行,即可通过客户端连接。
客户端连接
使用Behinder客户端进行连接,默认密码是rebeyond。
双击进行连接,可以进行管理和操作
取得flag
查看vulfocus默认flag地址:/tmp
,取得flag。
修复
修复方法
- 修改tomcat管理后台的用户名和密码
- 修改用户权限
- 修改conf/tomcat-users.xml文件中配置用户的权限,在
<user username="tomcat" password="tomcat" roles="manager-gui"/>
中去掉roles属性里的manager,然后重启tomcat,重新加载配置文件
- 修改conf/tomcat-users.xml文件中配置用户的权限,在
影响范围
全版本tomcat
漏洞成因
该漏洞主要是Tomcat的后台Tomcat manager 登录界面存在弱口令漏洞(tomcat/tomcat),并且登录成功后有上传点。 直接访问上传的war包的文件路径后,即会解压该war包,此时直接访问其中的shell文件即可上线。
该功能主要是未来开发、测试人员的快速部署,但由于弱口令的存在且用户权限配置不佳,使得该操作成功。
总结
这是一个简单的tomcat弱口令文件上传RCE,总体的思路是:
- 利用弱口令登入Tomcat管理后台tomcat-manager
- 将JSP大马压缩为.war文件上传
- 访问上传目录+文件名使得代码执行
- 客户端进行连接
利用的shell是Behinder(冰蝎),这个马的绕过能力还是相当强的,并且作者也很肝,更新频率挺高。
补充
1.WAR包
WAR文件(Web应用程序归档,英語:Web application ARchive)是一种JAR文件,其中包含用来分发的JSP、Java Servlet、Java类、XML文件、标签库、静态网页(HTML和相关文件),以及构成Web应用程序的其他资源。
Wikipedia
War包可以放在Tomcat下的webapps或word目录,当Tomcat服务器启动时,War包即会随之解压源代码来进行自动部署。[1]
2.大马和小马
小马一般体积小,功能少,主要是上传后为大马(体积更大)做准备,比如是有限地探测主机信息,开启端口等。而大马则具有提权等功能。但这并不固定,主要还是看测试要求和目的。
参考
- https://cloud.tencent.com/developer/article/1622124
- https://www.anquanke.com/post/id/175738
References
[1] Apache - Tomcat 漏洞集合,Beret-81, https://blog.csdn.net/weixin_42918771/article/details/104844367
[2] 利用Tomcat Manager的多种方法,Wh0ale,https://wh0ale.github.io/2018/12/23/2018-12-23-%E5%88%A9%E7%94%A8Tomcat%20Manager%E7%9A%84%E5%A4%9A%E7%A7%8D%E6%96%B9%E6%B3%95/