跳转至

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。

image-20200824012638276

双击进行连接,可以进行管理和操作

取得flag

查看vulfocus默认flag地址:/tmp,取得flag。

修复

修复方法

  • 修改tomcat管理后台的用户名和密码
  • 修改用户权限
    • 修改conf/tomcat-users.xml文件中配置用户的权限,在<user username="tomcat" password="tomcat" roles="manager-gui"/>中去掉roles属性里的manager,然后重启tomcat,重新加载配置文件

影响范围

全版本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/