Java RMI 远程代码执行漏洞
创始人
2024-03-04 00:52:20
0

0x01 漏洞描述

- Java RMI 远程代码执行漏洞 -

Java RMI服务是远程方法调用,是J2SE的一部分,能够让程序员开发出基于JAVA的分布式应用。一个RMI对象是一个远程Java对象,可以从另一个Java虚拟机上(甚至跨过网络)调用它的方法,可以像调用本地JAVA对象的方法一样调用远程对象的方法,使分布在不同的JVM中的对象的外表和行为都像本地对象一样。在RMI的通信过程中,默认使用序列化来完成所有的交互,如果该服务器Java RMI端口(默认端口1099)对公网开放,且使用了存在漏洞的Apache Commons Collections版本,就可以在该服务器上执行相关命令。

0x02 漏洞验证

使用Nmap工具对目标服务器端口扫描,探测发现Java RMI服务端口号。

# 指定默认端口探测命令
nmap -vv -sS -sV -p 1099 目标IP地址
# 全部端口探测命令
nmap -vv -sS -sV -p 1-65535 目标IP地址# 探测结果
PORT     STATE SERVICE  REASON         VERSION
1099/tcp open  java-rmi syn-ack ttl 64 Java RMI

输入目标地址端口,使用工具远程执行系统命令。

  • 工具链接: https://pan.baidu.com/s/1i4gatlzs9mAoCocyAmnHNw 提取码: 35cs

上述利用工具不支持多命令拼接执行,可以在vps上设置好监听地址后,使用如下方法反弹shell获取服务器权限。

0x03 漏洞修复

  1. 禁止在公网开放Java RMI服务的端口;
  2. 下载SerialKiller临时补丁,这个jar后放置于classpath,将应用代码中的java.io.ObjectInputStream替换为SerialKiller,之后配置让其能够允许或禁用一些存在问题的类,SerialKiller有Hot-Reload,Whitelisting,Blacklisting几个特性,控制了外部输入反序列化后的可信类型
  3. 在不影响业务的情况下,临时删除掉项目里的InvokerTransformer.class文件;
  4. 对WebLogic、Apache、JBoss等中间件进行升级。

参考分析:https://www.freebuf.com/column/200796.html

相关内容

热门资讯

【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
ChatGPT 怎么用最新详细... ChatGPT 以其强大的信息整合和对话能力惊艳了全球,在自然语言处理上面表现出了惊人...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...