安全矩阵

 找回密码
 立即注册
搜索
查看: 844|回复: 0

实战|一次从jmx到rce的渗透实战

[复制链接]

189

主题

191

帖子

903

积分

高级会员

Rank: 4

积分
903
发表于 2022-11-5 20:27:59 | 显示全部楼层 |阅读模式
实战|一次从jmx到rce的渗透实战 (qq.com)


​渗透过程
发现了一个集成的环境,开了jmx服务
编辑
service:jmx:rmi:///jndi/rmi://1.1.1.157:9003/jmxrmi jconsole连上去之后发现一些敏感的账号密码
编辑
在http://localhost:8983/solr 发现了solr,但是历史洞都打不了,log4j是高版本的jdk,并且不出网,所以整个思路就围绕在jmx的利用上。
jmx已知的利用方式有javax.management.loading.MLet加载远程类rce,但是目标不出网必须用其他方式了。
考虑到tomcat,想起来陈师傅写过的《几个Jolokia RCE 的“新”利用方式》
通过tomcat的createStandardHost配合AccessLogValue进行rce。
利用如下
先创建Host为test.com Catalina:type=Host,host=test.com
编辑
然后tomcat的valve中就有了test.com的部署之后的结果
编辑
修改host为test.com之后就可以访问根目录下的任意文件
编辑
那么只需要写入一个jsp文件就可以getshell了。写入文件需要用AccessLogValue
编辑
修改AccessLogValue的属性


  1. suffix .jsp
  2. prefix aa
  3. fileDateFormat .yyyy-MM-dd
  4. pattern %h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"
  5. directory /tmp/
复制代码


最终文件路径为/tmp/aa.2022-09-20.jsp
pattern会进行格式化,%{User-Agent}i表示引用请求头中User-Agent字段
然后发包写入日志文件
编辑
然后访问shell即可
编辑
如果访问shell不存在可以执行一下AccessLogValve#rotate()重新格式化日志文件名,确保日志文件名修改为我们想要的值。
编辑
打完记得把配置属性改回去,不然日志文件会越来越大,访问shell比较卡。
参考看起来简单,但是实际上涉及的知识点很多。比如陈师傅的文章中是在Jolokia中利用,jmx和Jolokia大同小异。另外陈师傅提到的jfr和vmLog写文件在实际环境中不存在,所以用到了spring4shell中的一环即AccessLogValue。
具体不详细写了,直接看参考链接吧。
文笔垃圾,措辞轻浮,内容浅显,操作生疏。不足之处欢迎大师傅们指点和纠正,感激不尽。
作者:y4er
来源:https://y4er.com/posts/from-jmx-to-rce/

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 06:42 , Processed in 0.014087 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表