是否可以利用这个 Zookeeper 实例?

信息安全 爪哇 分布式计算
2021-09-10 04:34:22

当我在 xx.xxxx:2181 上遇到Zookeeper安装时,我正在为客户端执行安全测试。尝试 NetCat 后发现我可以使用以下所有命令:

dump:列出未完成的会话和临时节点。这仅适用于领导者。

envi:打印有关服务环境的详细信息

kill : 关闭服务器。这必须从运行 ZooKeeper 服务器的机器发出。(这个没试过)

reqs:列出未完成的请求

ruok:测试服务器是否在非错误状态下运行。如果服务器正在运行,服务器将使用 imok 进行响应。否则它根本不会响应。

srst:重置 stat 命令返回的统计信息。

stat:列出有关性能和已连接客户端的统计信息。

我不熟悉 Zookeeper,所以如果这听起来像一个愚蠢的问题,请原谅我,但 Zookeeper 是否应该无需身份验证即可访问?以及公开此应用程序的含义是什么?

非常感谢任何帮助,谢谢

2个回答

首先,我对 Zookeeper 也完全不熟悉,但我可以从安全的角度给你一些一般性的建议。

您列出的Zookeeper 命令听起来像管理功能,这意味着它们可能只能在身份验证后访问,或者应该只能在专用网络内部访问或只能从某些 IP 地址访问。

如果您正在测试受控的测试环境,我建议您联系管理员并计划一段时间来测试该kill命令,这将验证它是否真的会以这种方式工作。如果是这样,我可以想象将所有 Zookeeper 服务器定位在一个集群中并kill全部定位,从而导致服务关闭。安全专家可能会称之为可用性风险。道德黑客和脚本小子可能会称之为污损。

同样,我对 Zookeeper 没有任何了解,但我可以想象以下理论上的风险。

  1. dump显示会话,根据公开的确切会话信息,您可能会在尝试欺骗此类会话时混淆系统。可能影响完整性。
  2. envi 根据显示的信息,您可以使用它来更好地了解您的目标,如果该信息发现其他相关系统,则可能会扩大范围。
  3. kill 如前所述,可用性风险可能是此命令列表的最大风险。
  4. reqs 信息披露以及根据信息通过欺骗来混淆流程的可能性。
  5. ruok简单的信息泄露,我无法想象任何风险,除非有一些已知的 Zookeeper 特定漏洞,这些漏洞只有在它在非错误状态下运行时才会起作用。同样,错误状态/非错误状态有 50% 的机会使“特定于状态”的漏洞起作用。当版本和一切都匹配时,了解实际状态理论上会增加到 100%。
  6. srst根据它准确重置的统计数据,您可能能够在黑客尝试后清除痕迹。抹去你的足迹。
  7. stat信息披露。在系统和可能的基础设施中提供不必要的见解,并有可能用于扩大范围。

我的一般建议是。阻止这个系统接受任何人的那种命令。可能添加一个身份验证层,如 VPN 和/或 IP 限制,或在 Zookeeper 中启用身份验证功能(如果存在)。这将确保信息不会被不必要地披露,并减轻由kill命令引起的可能的可用性风险

虽然kill它本身不是漏洞,但它是一种风险。使用CVSS评分系统,如果kill确实有效,并且取决于您的确切攻击背景和因素,我会估计 CVSS 的可用性风险类似于 7.1(高),(AV:N/AC:M/Au:N/C :N/I:N/A:C)

另外,你可能想看看这个:

ZooKeeper 是一个集群管理工具。我首先会看看您是否可以将客户端节点连接到它,因为您似乎已经穿透了内部网络(大多数集群工具在网络级别受到保护)。如果您可以连接客户端节点,那么您可以从字面上理解getData简而言之,是的,这可能是一个漏洞。

要连接客户端节点,请打开您自己的服务器并安装客户端 ZooKeeper 依赖项并按照安装指南进行操作。您将看到可以使用一次(如果)您的节点连接的命令列表。

如果您的客户端节点没有直接连接,请不要担心,有希望...看看您是否可以连接到主节点并更改一些设置,特别是skipACL命令。另请注意,您可以随时尝试一些缓冲区溢出攻击(不仅在主节点上,在客户端节点上也是如此)。

您可以使用几种语言(Java/C)向主服务器提交工作/命令,所以我建议首先在您自己的实例上测试所有这些,因为管理集群的人将会看到一些增加的使用量。

此外,大多数大数据集群使用某种 NFS 或 Lustre 等分布式 FS。Lustre 本质上也是不安全的(在防火墙/网络级别受到保护),因此您也可以随意尝试利用它。

可能与 Zookeeper 主节点在同一节点上运行的其他一些软件有:Spark、Hadoop、Mesos、Ganglia、Pig、Hue、Hive 和许多其他大数据分析软件,所以我也会为这些软件编写一些发现漏洞利用程序...

您列出的命令被记录为“四个字母的单词”并且本质上并不危险(尽管该英特尔可能导致其他攻击)但是它们可能表明上面列出的配置漏洞。