漏洞简介
Nacos 是 SpringCloud Alibaba 微服务架构中的一个组件,主要作用是服务注册和发现以及分布式配置管理,通常情况下 Nacos 中存储着 MySQL、Redis 等数据库的账号和密码。当前使用的版本存在用户读取、添加、登陆的漏洞。
漏洞危害
通过版本漏洞,攻击者可以在不登陆系统的情况下读取已存在的用户或者添加用户,进而登陆系统,登陆系统后可获取大量配置信息以发起进一步攻击。
渗透分析过程
Nacos查看用户信息
渗透地址:http://ip:端口/nacos/v1/auth/users?pageNo=1&pageSize=100
Nacos任意用户创建/登录
渗透地址:http://ip:端口/nacos/v1/auth/users?username=test4&password=test4
创建成功,使用创建用户访问Nacos获取配置信息
解决方案
升级Nacos
建议升级至最新版本,进入每个nacos节点服务器修改conf/application.properties字段开启鉴权,重启nacos服务。
Nacos配置
nacos.core.auth.enabled=false 修改为true nacos.core.auth.enable.userAgentAuthWhite=true 修改为false nacos.core.auth.server.identity.key=自定义值 nacos.core.auth.server.identity.value=自定义值
如果是项目中嵌套注册中心项目配置:bootstrap.yml
nacos core auth server identity key 自定义值key value 自定义value system.type nacos plugin.nacos.token.secret.key 自定义值(32字符转base64)
其他服务配置,以springboot为例:
spring cloud nacos username nacos账号 password nacos密码
验证结果
获取用户信息失败
创建用户失败