Skip to content

h0ny/NacosExploit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

NacosExploit

一款 Nacos 综合漏洞利用工具

Java GitHub Release GitHub Issues or Pull Requests GitHub forks GitHub Repo stars GitHub watchers

本项目由 hony(h0ny)wh!te?be6ar 共同开发。如果觉得这个项目对你有帮助,请别忘了点个 🌟Star 支持一下,谢谢。


说明 / Disclaimer
本项目仅供安全研究与学使用。请勿将本工具用于生产环境或非法用途。因使用本项目内容造成的任何直接或间接损失,由使用者自行承担全部责任。

最新 Releases 下载地址:https://github.com/h0ny/NacosExploit/releases

支持漏洞

PoC Exploit 漏洞名称 漏洞编号
Nacos 默认关闭认证 /
Nacos 默认密码 (nacos/nacos) AVD-2021-896025
Nacos 默认 server.identity /
Nacos 默认 token.secret.key AVD-2023-1655789
Nacos 默认 User-Agent AVD-2021-29441
Nacos Derby SQL Injection AVD-2021-897468
/ Nacos JRaft Hessian 反序列化 AVD-2023-1700159
/ Nacos JRaft Services 文件操作漏洞 AVD-2024-1743586

使用说明

  1. 下载最新 jar 文件。

  2. 启动方式(推荐使用 JDK 8):

    java -jar nacos-exploit-3.0.5-jar-with-dependencies.jar
  3. 在对内存马或命令执行的利用项进行测试时,请确保目标为已授权的测试环境。

漏洞检测

认证绕过

Derby SQL 注入

Jraft 反序例化

RCE:

文件读取:

加解密支持

批量任务

程序设置

详细说明 / 功能细节

认证绕过

  • 自动根据对当前目标所检测出的漏洞利用。
  • “导出所有配置” 功能,会遍历所有命名空间,将其导出为压缩包。
  • “添加权限” 功能,会创建一个角色,将指定用户名添加入创建的角色,并遍历所有命名空间,为该角色添加读写权限。

Derby SQL 注入

  • 支持两种内存马注入方式:
    1. 通过 Derby SQL 语句直接创建 classloader 注入内存马(无 Jar 落地,服务重启后失效)。
    2. 通过 Derby SQL 语句上传 Jar 文件并落地,加载该 Jar 并创建命令执行函数(持久化,服务重启后仍有效)。
  • 若尝试多次仍未成功,可能为网络或环境限制,建议换用体积更小的 cmd 内存马再试。

JRaft Hessian 反序列化

  • 利用链基于 Jackson + JDK8 的原生链,对该漏洞进行利用必须在 JDK8 环境下运行。
  • 不明原因,漏洞利用成功率一般,建议优先尝试 cmd 内存马,便于通过访问 url 路径验证是否注入成功。
  • Raft Group 说明:
    • naming_persistent_service_v2 / naming_persistent_service:通常只能注入一次,且进行漏洞利用后会产生异常信息。
    • naming_service_metadata / naming_instance_metadata:可以多次注入。
  • 自定义内存马须继承类:com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet

JRaft Services 文件操作

  • 文件读取:可多次使用(对 naming_persistent_service_v2 使用会产生异常信息)。
  • 文件写入/删除:会导致受攻击节点异常,当前出于稳定性考虑暂不对外开放写/删功能。

程序设置

  • 代理功能:仅代理 HTTP 流量。针对非 HTTP(如 JRaft 端口)请使用专用代理工具(例如 proxifier)。
  • 扫描设置:可在 UI 中选择需检测的漏洞,未勾选的漏洞将不会被扫描。
  • 允许自定义设置 HTTP 请求头。

批量任务

  • 选择 “批量导出配置文件” 后,会根据认证绕过检测结果自动导出相关配置文件。

Star History Chart