一、漏洞描述
RCE(Remote Code Execution,远程代码执行)漏洞是指攻击者能够在远程服务器上执行任意代码的安全漏洞。此类漏洞通常会让攻击者完全控制受影响的系统,导致严重的安全问题。
Nacos 是一个用于动态服务发现和配置以及服务管理的平台,Derby 是一个轻量级的嵌入式数据库。接口 /nacos/v1/cs/ops/derby 和 /nacos/v1/cs/ops/data/removal 在使用 Derby 数据库作为内置数据源时。用于运维人员进行数据运维和问题排查,在使用 standalone 模式启动 Nacos 时,为了避免因搭建外置数据库而占用额外的资源,会使用 Derby 数据库作为数据源。
二、POC利用
环境准备:下载nacos2.3.2或2.4.0版本,解压。
使用 startup.cmd -m standalone 启动nacos
POC是一个python项目,依赖requests和flask,请先使用requiments.txt安装依赖
1.配置config.py中的ip和端口,执行service.py,POC攻击需要启动一个jar包下载的地方,jar包里可以放任意代码,都可执行,项目里放了一个接收参数执行java命令的
2.执行exploit.py,输入地址和命令即可执行。
三、项目地址
https://github.com/ayoundzw/nacos-poc
四、影响范围
nacos 2.3.2
nacos 2.4.0
其他版本不确定,nacos 0day 需要登录到后才才能利用。
五、漏洞复现
1、首先在本地kali上拉取镜像
git clone https://github.com/nacos-group/nacos-docker.git
cd nacos-docker
docker-compose -f example/standalone-derby.yaml up
python3 service.py
4、运行exp
python3 exploit.py
// 可能有一些报错要处理,history部分命令
366 sudo apt-get install python-pip
367 sudo apt-get install python3-pip
368 pip3 install flask
369 pip install flask
370 python2 service.py
371 sudo pip2 install flask
372 python3 service.py
373 pip3 install werkzeug2.0.3
374 sudo apt remove python3-werkzeug\n
375 sudo apt remove python3-venv\n
376 sudo apt remove python3-werkzeug
377 pip3 install werkzeug2.0.3
378 python3 service.py
379 pip3 install flask\n
380 python3 service.py