【漏洞复现】Jmeter RMI反序列化命令执行

影响范围

Apache Jmeter 2.x

Apache Jmeter 3.x

漏洞介绍

Apache JMeter是美国阿帕奇(Apache)软件基金会的一套使用Java语言编写的用于压力测试和性能测试的开源软件,其2.x版本和3.x版本中存在反序列化漏洞,攻击者可以利用该漏洞在目标服务器上执行任意命令

环境搭建

在这里我们使用Vulhub来构建环境:

docker-compose up -d

漏洞复现
端口扫描

首先使用Nmap进行端口扫描探测发现目标主机在1099端口开启了JAVA RMI服务

nmap -sT -A 192.168.204.137

漏洞利用

使用ysoserial即可进行利用,这里用的是BeanShell1这条gadget

### JMeter 分布式部署 Java 环境配置 #### 配置环境变量 为了使JMeter能够在分布式模式下正常运行,首先需要正确设置系统的环境变量。这包括定义`JMETER_HOME`以及更新`CLASSPATH`和`PATH`。 - **JMETER_HOME**: 新建系统变量名为`JMETER_HOME`,其值应指向JMeter的安装路径,例如 `D:\MyDownloads\apache-jmeter-5.2.1`[^3]。 - **CLASSPATH**: 编辑现有的`CLASSPATH`变量,在其中加入必要的JMeter库文件路径,如 `%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;%JMETER_HOME%\lib/logkit-2.0.jar;`。 - **PATH**: 同样地,修改`PATH`变量来包含JMeter二进制文件的位置,即 `D:\MyDownloads\apache-jmeter-5.2.1\bin`。 这些操作确保了命令行工具可以识别并执行JMeter的相关指令,并且能够找到所需的类库和支持文件。 #### 设置远程服务器节点 为了让多个物理机上的JMeter实例协同工作,每台作为客户端或服务端参与测试过程的计算机都需要按照上述方法完成基本配置外,还需特别注意启动参数: ```bash nohup jmeter-server -Djava.rmi.server.hostname=127.0.0.1 & ``` 此命令用于后台启动JMeter的服务进程,并指定RMI注册表绑定至本地回环地址(适用于防火墙严格控制的情况),从而允许其他主机连接上来发起性能测试请求[^1]。 另外,考虑到大规模并发场景下的资源占用情况,建议合理规划各节点硬件规格,因为即使是简单的GUI应用程序也可能因大量虚拟用户的模拟而导致严重的CPU与内存压力,进而影响整体稳定性[^4]。 #### 安装与初始化 对于Linux平台而言,通常会先将下载好的压缩包放置于特定目录内再解压展开。比如通过SSH登录目标机器后切换到 `/usr/local` 文件夹下执行如下命令序列即可快速完成软件部署: ```bash cd /usr/local/ unzip apache-jmeter-5.5.zip ``` 该步骤创建了一个新的子目录存放所有组件及其依赖项,便于后续管理和维护[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FLy_鹏程万里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值