MCPcopy Index your code
hub / github.com/c0olw/NacosRce

github.com/c0olw/NacosRce @v0.5

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.5 ↗ · + Follow
163 symbols 295 edges 10 files 63 documented · 39%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Nacos Hessian 反序列化漏洞利用工具 v0.5


  _   _                     ____          
 | \ | | __ _  ___ ___  ___|  _ \ ___ ___ 
 |  \| |/ _` |/ __/ _ \/ __| |_) / __/ _ \
 | |\  | (_| | (_| (_) \__ \  _ < (_|  __/
 |_| \_|\__,_|\___\___/|___/_| \_\___\___|

Author: 刨洞安全 && 凉风

注意:工具仅供学习使用,请勿滥用,否则后果自负!

**食用方式 **

  1. 自动注入内存马并执行命令 java -jar NacosRce.jar Url Jraft端口 "Command"

shell java -jar NacosRce.jar http://192.168.90.1:8848/nacos 7848 "whoami" 2. 只注入内存马 shell java -jar NacosRce.jar http://192.168.90.1:8848/nacos 7848 memshell

内存马说明:

一、冰蝎内存马:

1、需要设置请求头x-client-data:rebeyond

2、设置Referer:https://www.google.com/

3、路径随意

4、密码rebeyond img.png

二、哥斯拉内存马:

1、需要设置请求头x-client-data:godzilla

2、设置Referer:https://www.google.com/

3、路径随意

4、密码是pass 和 key

img_1.png

三、CMD内存马:

1、需要设置请求头x-client-data:cmd

2、设置Referer:https://www.google.com/

3、请求头cmd:要执行的命令

img_2.png v0.5版本实现了:

1、不出网漏洞利用

2、可多次发起漏洞利用

3、同时注入冰蝎/哥斯拉/CMD内存马

4、内存马对nacos多版本进行了兼容

tips:

1、请用jdk1.8

2、适用于 Nacos 2.x <= 2.2.2

3、非集群的也能打哦

4、此内存马重启nacos依然存活

关于Windows

如用下面的方式执行,注入内存马时会生成临时文件 C:\Windows\Temp\nacos_data_temp 和 C:\Windows\Temp\nacos_data_temp.class 文件

java -jar NacosRce.jar http://192.168.90.1:8848  7848 "whoami" windows

如果没有在最后加 windows,临时文件会在 /tmp/nacos_data_temp /tmp/nacos_data_temp.class,所以权限足够的话,不指定windows也能打成功

windows 没打成功也许是因为没权限操作C盘或其他原因

关于编译

遇到依赖冲突无法编译的可以用以下方式

img_4.png

img_3.png

项目地址:https://github.com/c0olw/NacosRce 推荐哥斯拉Nacos后渗透插件:https://github.com/pap1rman/postnacos

参考文章

https://gv7.me/articles/2020/semi-automatic-mining-request-implements-multiple-middleware-echo/

https://exp.ci/2023/06/14/Nacos-JRaft-Hessian-反序列化分析/

https://github.com/Y4er/ysoserial

Extension points exported contracts — how you extend this code

WriteRequestOrBuilder (Interface)
(no doc) [3 implementers]
src/main/java/com/alibaba/nacos/consistency/entity/WriteRequestOrBuilder.java

Core symbols most depended-on inside this repo

setAccessible
called by 20
src/main/java/com/alibaba/nacos/consistency/entity/Reflections.java
internalGetExtendInfo
called by 13
src/main/java/com/alibaba/nacos/consistency/entity/WriteRequest.java
internalGetMutableExtendInfo
called by 9
src/main/java/com/alibaba/nacos/consistency/entity/WriteRequest.java
getDefaultInstance
called by 9
src/main/java/com/alibaba/nacos/consistency/entity/WriteRequest.java
newInstance
called by 8
src/main/java/com/alibaba/nacos/consistency/entity/WriteRequest.java
equals
called by 8
src/main/java/com/alibaba/nacos/consistency/entity/WriteRequest.java
internalGetExtendInfo
called by 7
src/main/java/com/alibaba/nacos/consistency/entity/WriteRequest.java
getUnknownFields
called by 6
src/main/java/com/alibaba/nacos/consistency/entity/WriteRequest.java

Shape

Method 151
Class 11
Interface 1

Languages

Java100%

Modules by API surface

src/main/java/com/alibaba/nacos/consistency/entity/WriteRequest.java97 symbols
src/main/java/com/alibaba/nacos/consistency/entity/WriteRequestOrBuilder.java16 symbols
src/main/java/com/alibaba/nacos/naming/core/v2/metadata/MetadataOperation.java12 symbols
src/main/java/com/alibaba/nacos/consistency/entity/NacosFilterShellPlus.java9 symbols
src/main/java/com/alibaba/nacos/consistency/entity/MyX509TrustManager.java6 symbols
src/main/java/com/nacostools/rce/NacosRce.java5 symbols
src/main/java/com/alibaba/nacos/consistency/entity/HessianPayload.java5 symbols
src/main/java/com/alibaba/nacos/consistency/entity/ConnectShell.java5 symbols
src/main/java/com/alibaba/nacos/consistency/entity/Reflections.java4 symbols
src/main/java/com/alibaba/nacos/consistency/entity/Consistency.java4 symbols

For agents

$ claude mcp add NacosRce \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact