微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Apache JMeter rmi 反序列化 cve-2018-1297

漏洞描述

Severity: Important

vendor: The Apache Software Foundation

Versions Affected: JMeter 2.X,3.X

Description [0]:

When using distributed Test only (RMI based),jmeter uses an unsecured RMI
connection.
This Could allow an attacker to get Access to JMeterEngine and send
unauthorized code.
This only affect tests running in distributed mode.

Mitigation:

  • Users must use last version of Java 8 or Java 9
  • Users must upgrade to last JMeter 4.0 version and use the default /
    enabled authenticated SSL RMI connection.

Besides,we remind users that in distributed mode,JMeter makes an
Architectural assumption
that it is operating on a 'safe' network. i.e. everyone with access to the
network is considered trusted.

This typically means a dedicated VPN or similar is being used.

Example:

  • Start JMeter server using either jmeter-server or jmeter -s
  • If JMeter listens on unsecure rmi connection (ie you can connect to it
    using a JMeter client),you are vulnerable

Apache JMeter 简介

Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚本、Java 对象、数据库、FTP 服务器, 等等。JMeter 可以用于对服务器、网络或对象模拟巨大的负载,来自不同压力类别下测试它们的强度和分析整体性能

流程图

分析流程

下好源码后,习惯性的翻了下,发现里面相对有点复杂,而此时我又对 rmi 完全不熟悉,搞到无从下手

只能照着许多 JMeter rmi 复现的文章里,先将 jmeter-server 跑起来再说
在源码包 bin 目录下 jmeter-server 或 jmeter-server.bat

如上图所示,jmeter-server 已经跑起来了

但是此时还是懵逼中,其他文章里除了开启服务、打payload,就没说明其他啥了
无意中在 bin 目录下发现了 jmeter-server.log 文件,感觉里面可以查到一些信息

emmmm,先找找 RemoteJMeterEngineImpl

在其 init 函数中发现开启了 rmi

这里的 CREATE_SERVER 认为 ture 的,如果不指定 rmiPort 认值也是 1099

稍微了解过 rmi 反序列化利用的老哥应该都知道当 rmi 创建成功后,就可以搞事了吧....

反向跟踪 init 函数调用

此处的 DEFAULT_RMI_PORT 值为 1099

继续反向跟踪 startServer 的调用

在 Jmeter 里 start 函数发现了调用

可是在继续反向跟踪 start 函数的时候,却没有发现有被调用的地方 -_-
猜测可能是动态代理或者是反射请求?

搜了下路径关键字

在 NewDrever 的 main 函数

至此整个流程已经摸清楚了

测试

(用 3.3 版本的 JMeter 测试并未成功,查看了它的 colletions 版本是 3.2.2 的...)
用 ysoserial 打一梭子(ysoserial随便下的一个版本)
java -cp ysoserial-master-v0.0.5-gb617b7b-16.jar ysoserial.exploit.RMIRegistryExploit 127.0.0.1 1099 CommonsCollections5 "calc.exe"

参考资料

https://xz.aliyun.com/t/2082
http://bobao.360.cn/snapshot/index?id=287299

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐