Skip to content
KitploitKITPLOIT
工具博客
Log in
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Cluster-Chaos-Exploiting-CVE-2025-59359-for-Kubernetes-Takeover — 关于CVE-2025-59359(Chaos-Mesh中一个严重的OS命令注入漏洞)的实战取证演练。了解攻击者如何通过GraphQL突变劫持Kubernetes集群,以及如何使用ELK检测、分析和报告该入侵。 | Kitploit
工具/GitHubGitHub/mrk336/cluster-chaos-exploiting-cve-2025-59359-for-kubernetes-takeover
权限提升容器安全漏洞分析漏洞利用横向移动取证分析云安全命令与控制学习与教育

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
事件响应
日志分析
GitHubmrk336/cluster-chaos-exploiting-cve-2025-59359-for-kubernetes-takeover

Cluster-Chaos-Exploiting-CVE-2025-59359-for-Kubernetes-Takeover

关于CVE-2025-59359(Chaos-Mesh中一个严重的OS命令注入漏洞)的实战取证演练。了解攻击者如何通过GraphQL突变劫持Kubernetes集群,以及如何使用ELK检测、分析和报告该入侵。

查看仓库
131年前尚未审核

Cluster-Chaos-Exploiting-CVE-2025-59359-for-Kubernetes-Takeover

一份关于 CVE-2025-59359(Chaos-Mesh 中的一个关键 OS 命令注入漏洞)的实操取证演练。了解攻击者如何通过 GraphQL 变异劫持 Kubernetes 集群,以及如何使用 ELK 检测、分析和报告此类入侵。

作者:Mark Mallia


执行摘要

CVE-2025-59359 暴露了 Chaos-Mesh 的 Controller Manager 中存在的一个关键 OS 命令注入缺陷。该漏洞允许攻击者在 Kubernetes Pod 上执行任意 shell 命令,可能导致整个集群沦陷。本文模拟了该漏洞的利用过程,映射其取证痕迹,并概述了与技术人员和高管利益相关者相关的检测与缓解策略。


为什么这个 CVE 如此突出

在 Kubernetes 安全不断发展的世界中,CVE-2025-59359 突出地提醒了我们,一个被忽视的输入点如何能够瓦解整个集群。这个关键漏洞(CVSS 9.8)影响 Chaos-Mesh 的 Controller Manager,其中用户提供的参数被不加检查、不加清理地直接拼接到 shell 命令中。结果如何?集群内未经身份验证的攻击者可以在 Pod 上执行任意命令,从而轻松获得完全控制权。这是一个通过命令注入进行权限提升的教科书式案例,也是云原生环境中安全编码准则重要性的有力证明。


技术细节

该缺陷存在于 cleanTcs 这个变异中。该变异在混沌实验后清理 Linux 流量控制(TC)设置,并接受来自实验规格的用户提供参数。
当攻击者为这些参数提供精心构造的值时,生成的 shell 命令通过字符串拼接构建。在此命令以 Controller Manager 权限执行之前,未进行任何防御性检查——这意味着未经身份验证的用户可以向集群控制的任何 Pod 或命名空间注入任意命令。

以下摘自该变异的源代码(在 Go 实现的上下文中展示)。

// cleanTcsMutation.go
func executeCleanTcs(ctx context.Context, payload Payload) error {
    // Build command string using user input directly
    cmd := fmt.Sprintf(
        "tc qdisc add dev %s root handle 1: htb rate %s ceil %s",
        payload.Device,
        payload.Rate,
        payload.Ceil,
    )
    log.Debugf("Running command: %s", cmd)
    if err := ctx.RunCommand(cmd); err != nil {
        return fmt.Errorf("tc clean mutation failed: %w", err)
    }
    return nil
}
  • 该变异接受三个参数——Device、Rate 和 Ceil。
  • 这些参数被拼接进命令字符串,没有任何清理步骤。
  • 生成的 shell 调用以 Chaos Controller Manager 的权限执行,该 Manager 通常有权访问所有命名空间中的所有 Pod。

攻击者如何利用它

假设一个运行 Chaos-Mesh 的 Kubernetes 集群,攻击者构造了一个看似无害的实验规格。但他们没有调整流量控制,而是在 Device、Rate 或 Ceil 等字段中注入类似 ; rm -rf /tmp 的有效载荷。一旦通过 UI 或 API 提交,该变异会盲目地构建并执行该命令——没有清理,没有防护。而且由于它以 controller-manager 权限运行,注入的代码会像野火一样在 Pod 间蔓延。更糟糕的是,如果攻击者还利用 CVE-2025-59358 以未经身份验证的方式访问 GraphQL 端点,他们甚至不需要凭证。

如果在生产环境中被利用,CVE-2025-59359 可能允许攻击者中断服务、访问敏感工作负载并在命名空间之间横向移动,对业务连续性和监管合规构成实质性风险。使用 Chaos-Mesh 的组织应优先考虑修补、RBAC 强制实施和 GraphQL 端点审计。


MITRE ATT&CK 映射

战术技术
执行T1059 – 命令和脚本解释器
权限提升T1068 – 利用漏洞进行权限提升
横向移动T1021 – 远程服务
影响T1499 – 端点拒绝服务

检测策略

  • 立即行动: 审查 cleanTcs 变异中用户输入处理的策略。
  • 缓解建议: 在构建 shell 命令字符串之前添加清理步骤,或改用参数化查询以避免拼接。
  • 长期计划: 考虑对 Chaos Controller Manager 实施基于角色的访问控制,以便只有授权用户才能提交实验规格。

Logstash 管道配置

在 Logstash 配置目录中创建一个文件 logstash-tcs.conf。


input {
  beats {
    port => 5044
    codec => "json"
  }
}

filter {
  # The Python script will be referenced here.
  python {
    code => "/opt/elk/python/process_tcs.py"
    add_field => { "[tcs]" => "%{[message][device]}-%{[message][rate]}-%{[message][ceil]}" }
  }
}

output {
  elasticsearch {
    hosts => ["http://localhost:9200"]
    index => "chaos-tcs"
    document_type => "experiment"
    codec => "json"
  }
}

Python 过滤器脚本 – process_tcs.py

#!/usr/bin/python3

def process(event):
    """
    Transforms the raw event from Logstash into a JSON document suitable for Elasticsearch.
    Expected input format (example):

      {
        "message": {
          "device": "eth0",
          "rate":   "100mbit/s",
          "ceil":   "200mbit/s",
          "timestamp": "2025‑09‑18T14:33:00Z"
        }
      }

    The script extracts the three key values, normalises them and returns a dictionary.
    """
    # 1. Grab nested fields
    device = event.get("message", {}).get("device", "")
    rate   = event.get("message", {}).get("rate", "")
    ceil   = event.get("message", {}).get("ceil", "")

    # 2. Normalise numeric values – remove unit suffixes and cast to float.
    def strip_unit(val, unit):
        return float(val.replace(unit, "").strip())

    rate_val = strip_unit(rate, "mbit/s")
    ceil_val = strip_unit(ceil, "mbit/s")

    # 3. Build output dict
    result = {
        "device": device,
        "rate_mbit_s": rate_val,
        "ceil_mbit_s": ceil_val,
        "ts": event.get("message", {}).get("timestamp", ""),
        "tcs_id": f"{device}-{rate_val}-{ceil_val}"
    }

    # 4. Return the dict
    return result

Elasticsearch 索引映射

创建映射文件 chaos-tcs-mapping.json:

{
  "mappings": {
    "_doc": {
      "properties": {
        "device":      { "type": "keyword" },
        "rate_mbit_s":{ "type":"float"   },
        "ceil_mbit_s":{ "type":"float"   },
        "ts":          { "type":"date",  "format":"yyyy-MM-dd'T'HH:mm:ssZ"},
        "tcs_id":      { "type":"keyword" }
      }
    }
  }
}

Kibana 仪表板 – “Command Injection Overview”

为了实时可视化 CVE-2025-59359 的影响,该仪表板提供了三个关键面板,将原始混沌实验数据转化为可操作的见解。时间序列折线图按命名空间聚合跟踪每个 Pod 的 rate_mbit_s,帮助团队发现集群中流量整形的异常情况。直方图显示每小时实验数量,并在速率超过平均值 1.5 倍时触发警报,从而发现潜在滥用或自动化攻击模式。最后,过滤器列表列出每个 tcs_id 及其执行状态和成功标志,使调查人员能够快速隔离失败或可疑的运行。这些面板共同为命令注入如何在 Kubernetes 环境中展开提供了取证视角。

添加一条简单的告警规则:

PUT /chaos-tcs/_settings
{
  "number_of_shards": 2,
  "number_of_replicas": 1
}

创建一个使用上述 Python 脚本的摄取管道,然后配置一个 Kibana 告警,当 rate_mbit_s 偏离其 24 小时移动平均值的幅度超过 15% 时触发。


部署检查清单

项目操作
Logstash 服务确保 beats 输入在端口 5044 上监听。
Python 脚本权限/opt/elk/python/process_tcs.py 必须可执行(chmod +x)。
Elasticsearch 索引使用映射文件执行 PUT /chaos‑tcs/_mapping。
Kibana 仪表板导入 JSON 定义并保存为 Command‑Injection Overview。
安全组允许来自 Kubernetes 节点的端口 5044 流量。
监控添加一个 cron 任务,每 5 分钟运行 curl -s http://localhost:9200/_cat/indices?v 以确认索引健康。

结论

CVE-2025-59359 不仅仅是漏洞数据库中的又一行记录;它是一个生动的例子,展示了被忽视的输入清理如何可能瓦解整个 Kubernetes 集群的安全性。通过演练此漏洞,我们看到 Chaos-Mesh 中的一个变异如何成为远程代码执行、权限提升和完全 Pod 入侵的入口。但更重要的是,我们展示了可观测性、取证工具和精心设计的检测逻辑如何将混沌转化为清晰。

本项目严格用于教育和道德目的。所有演示、模拟和取证演练旨在提高对现实世界漏洞的认识,并促进安全编码、负责任披露和主动防御策略。在任何情况下,都不应使用此处介绍的技术或见解在未经明确授权的情况下危害、中断或利用实时系统。

下载工具