
Практическая лаборатория, воспроизводящая CVE-2019-11043 (RCE в PHP-FPM за nginx), демонстрирующая закрепление через обратный туннель, форензику памяти и анализ сетевого трафика.
В октябре 2019 года исследователи Debian Security Advisory Эмиль Лернер и Эндрю Данау опубликовали уведомление, предупреждающее сообщество Debian о критической уязвимости в PHP-FPM. Из‑за недостаточной проверки в коде обработки пути PHP-FPM злоумышленники могли манипулировать специально созданными запросами для достижения удалённого произвольного выполнения кода при определённых конфигурациях NGINX + PHP-FPM.
Эта лабораторная работа демонстрирует эксплуатацию:
Уязвимость, затрагивающая PHP-FPM, работающий за NGINX, которая при срабатывании может позволить злоумышленникам выполнять произвольный код и закрепляться в системе через обратный туннель.
Проект воссоздаёт уязвимую среду, выполняет цепочку эксплойта и оценивает, как злоумышленники достигают закрепления с помощью техник туннелирования в реальных сценариях.
Эта цепочка атак напрямую соответствует нескольким высокоэффективным техникам MITRE ATT&CK:
| MITRE ID | Название техники |
|---|---|
| T1071 | Туннелирование на прикладном уровне |
| T1572 | Туннелирование протокола |
| T1090 | Прокси / обратный прокси |
| T1505 | Серверные компоненты (PHP-FPM) |
| T1574 | Перехват потока выполнения |
Обратное туннелирование для закрепления — это часто используемая TTP (Tactic, Technique, Procedure — тактика, техника, процедура), применяемая APT-группами, ботнетами и операторами программ-вымогателей. PHP-FPM остаётся широко развёрнутым в производственных средах, а неправильные конфигурации, эксплуатируемые CVE-2019-11043, до сих пор встречаются в реальных условиях.
Это не теоретические абстракции — они отражают точное поведение, задокументированное в активных кампаниях по эксплуатации уязвимостей с участием государственных субъектов и группировок программ-вымогателей.
Несмотря на то что CVE-2019-11043 уже несколько лет, уязвимость продолжает сохранять актуальность из-за следующих современных реалий безопасности:
Устаревшие PHP-приложения всё ещё повсюду. Многие организации продолжают использовать устаревшие стеки PHP 5.x/7.x из-за долгосрочных зависимостей веб-приложений, технического долга или страха сломать производственные системы. Такие среды часто остаются без обновлений и уязвимы.
NGINX + PHP-FPM — одна из самых распространённых хостинговых архитектур в мире. Это делает уязвимости PHP-FPM чрезвычайно привлекательными для злоумышленников, которые ищут большие и долговечные поверхности атаки.
Обратное туннелирование — ключевая техника закрепления в современных угрозах. Такие группы, как Lazarus, APT29, FIN11, и многочисленные операторы программ-вымогателей используют обратные SSH-туннели, WebSocket-туннели и даже PHP-реверс-шеллы для поддержания долгосрочного доступа, не полагаясь на открытые входящие порты.
Неправильные конфигурации остаются причиной №1 взломов. Даже при наличии патчей неправильно настроенные блоки NGINX «location» и плохо проверяемые переменные PATH_INFO продолжают подвергать среды эксплуатации.
Наборы автоматизации эксплойтов по-прежнему нацелены на эту CVE. Такие инструменты, как автоматические сканеры, ботнеты и IoT-вредоносы, регулярно проверяют уязвимые конфигурации PHP-FPM, поскольку эксплойт приводит к надёжному выполнению кода.
Облачные среды расширяют поверхность атаки. Плохо защищённые контейнеры, конфигурации общего хостинга и устаревшие базовые Docker-образы часто содержат незапатченные версии PHP-FPM, что ведёт к быстрому горизонтальному перемещению внутри облачных сетей.
Злоумышленники любят «лёгкую добычу». Уязвимость, обеспечивающая удалённое выполнение кода + закрепление на основе туннеля и требующая минимальных навыков, всегда останется целью высокого приоритета.
В сегодняшнем ландшафте угроз, где доминируют постоянный доступ, скрытое туннелирование и слабости цепочки поставок, понимание и демонстрация того, как эксплуатируется CVE-2019-11043, даёт критически важное понимание современных моделей атак и пробелов в защите.
Цель этой лабораторной работы — смоделировать реальную эксплуатацию CVE-2019-11043, критической уязвимости удалённого выполнения кода, затрагивающей PHP-FPM за nginx при определённых конфигурациях. Задача состояла в том, чтобы проанализировать уязвимость, воспроизвести эксплойт в контролируемой виртуальной среде и продемонстрировать риски, связанные с неправильно настроенной веб-инфраструктурой.
Были использованы две виртуальные машины: обе с именем пользователя username и паролем password.
| Роль | Машина | IP-адрес | Назначение |
|---|---|---|---|
| Цель / жертва | Ubuntu Server | 192.168.56.102 | Уязвимый PHP-FPM сервер с CVE-2019-11043 |
| Атакующий | Ubuntu Server | 192.168.56.103 | Выполняет эксплойт, reverse shell и закрепление |
Обновление apt
sudo apt update && sudo apt -y upgrade
Создание контейнера для эксплойта уязвимости.
sudo apt install -y docker.io docker-compose git
git clone https://github.com/vulhub/vulhub.git
cd vulhub/php/CVE-2019-11043
sudo docker-compose up -d
Обновление Apt, установка базовых php, python и дополнительных пакетов
sudo apt update
sudo apt install nmap curl wget git python3 python3-pip \
netcat-traditional net-tools build-essential \
php ruby ruby-full
pip3 install requests
sudo apt install golang-go
Загружает инструмент для эксплуатации данной CVE и перемещает терминал для сборки эксплойта.