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

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

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

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

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

Категории

Все категории
Loading categories
PHP-8.1.0-dev-Backdoor — Бэкдор User-Agentt в PHP 8.1.0-dev: удаленное выполнение кода (RCE) | Kitploit
Инструменты/GitHubGitHub/k3ystr0k3r/php-8.1.0-dev-backdoor
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьБезопасность Цепочки ПоставокРазработка Полезной Нагрузки
GitHubk3ystr0k3r/php-8.1.0-dev-backdoor

PHP-8.1.0-dev-Backdoor

Бэкдор User-Agentt в PHP 8.1.0-dev: удаленное выполнение кода (RCE)

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

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться

PHP 8.1.0-dev User-Agentt: бэкдор удаленного выполнения кода (RCE)

Критичность: критическая (эквивалент CVSS: 10.0)

Тип уязвимости: бэкдор в цепочке поставок / удаленное выполнение кода (RCE)

Затронутое ПО: PHP 8.1.0-dev (только dev-сборка)

Вектор атаки: удаленный (без аутентификации)

Требуется аутентификация: нет

Взаимодействие с пользователем: не требуется

Воздействие: полная компрометация системы


Обзор

Бэкдор PHP 8.1.0-dev User-Agentt — одна из самых громких компрометаций цепочки поставок в истории open-source ПО. В отличие от традиционных уязвимостей, возникающих из-за ошибок программирования, эта проблема стала результатом намеренного внедрения вредоносного кода в официальный репозиторий исходного кода PHP.

Бэкдор появился в dev-сборках PHP 8.1.0-dev в марте 2021 года после того, как злоумышленники успешно скомпрометировали Git-инфраструктуру PHP. Вредоносные коммиты выдавались за действия доверенных мейнтейнеров PHP и внедряли скрытый механизм, способный выполнять произвольный PHP-код при получении специально сформированного HTTP-заголовка.

Хотя бэкдор просуществовал недолго, прежде чем был обнаружен и удален, любой сервер, развернувший одну из скомпрометированных dev-сборок, мгновенно становился уязвимым к неаутентифицированному удаленному выполнению кода (RCE).

Этот инцидент коренным образом изменил процесс разработки PHP и в конечном итоге привел к переносу репозитория исходного кода PHP с собственной Git-инфраструктуры. :contentReference[oaicite:0]{index=0}


Почему эта уязвимость уникальна

Большинство уязвимостей удаленного выполнения кода возникают из-за:

  • переполнения буфера
  • ошибок проверки входных данных
  • повреждения памяти
  • логических ошибок

Эта уязвимость была другой.

Это был не баг в коде.

Это был преднамеренно внедренный бэкдор, скрытый внутри легитимного исходного кода PHP.

Вместо эксплуатации существующей слабости злоумышленники изменили сам PHP, чтобы он выполнял произвольный PHP-код, переданный любым человеком, отправляющим HTTP-запрос.

Это делает данный инцидент одним из самых известных примеров атаки на цепочку поставок ПО.


Предыстория

28 марта 2021 года в Git-репозитории PHP появились два подозрительных коммита.

Оба коммита выглядели так, будто были сделаны известными мейнтейнерами PHP.

Изначально они выглядели безобидно.

Сообщения коммитов напоминали обычные исправления опечаток.

Однако исследователи быстро заметили подозрительный код, добавленный в интерпретатор PHP.

Вставленный код искал во входящих HTTP-запросах кастомный заголовок:

root@kitploit:~
User-Agentt

Обратите внимание на лишнюю «t».

Это едва заметное отличие в написании помогало скрывать бэкдор при поверхностном ревью.

Если заголовок начинался со строки-триггера:

root@kitploit:~
zerodium

PHP немедленно выполнял все, что следует за ней, с помощью:

root@kitploit:~
zend_eval_string()

Это фактически позволяло любому удаленно выполнять произвольный PHP-код.

Вредоносные коммиты были удалены в течение нескольких часов после обнаружения. Последующее расследование показало, что злоумышленники скомпрометировали Git-инфраструктуру PHP, а не законно получили ключи подписи мейнтейнеров. :contentReference[oaicite:1]{index=1}


Первопричина

Вставленный код выполнял примерно следующую логику:

root@kitploit:~
Incoming HTTP Request
          │
          ▼
Read User-Agentt Header
          │
          ▼
Does header start with "zerodium"?
          │
      Yes ▼
Execute remaining text as PHP
          │
          ▼
Attacker gains Remote Code Execution

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


Технический разбор

Обычно HTTP-запрос содержит заголовки, подобные следующим:

root@kitploit:~
GET / HTTP/1.1

Host: example.com

User-Agent: Mozilla Firefox

Скомпрометированная версия PHP дополнительно обрабатывала:

root@kitploit:~
User-Agentt:

Если его значение начиналось с:

root@kitploit:~
zerodium

PHP вызывал:

root@kitploit:~
zend_eval_string()

Оставшееся содержимое становилось исполняемым PHP-кодом.

Схематично:

root@kitploit:~
User-Agentt:

zerodium
        │
        ▼
zend_eval_string(payload)
        │
        ▼
Remote Code Execution

Схема атаки

root@kitploit:~
Attacker
    │
    │ HTTP Request
    ▼

GET /

User-Agentt: zerodiumsystem("id");

    │
    ▼

PHP 8.1.0-dev

    │
    ▼

Backdoor Triggered

    │
    ▼

system("id")

    │
    ▼

Command Executed

    │
    ▼

Output Returned

Без аутентификации.

Без сессии.

Без учетных данных.

Достаточно было одного HTTP-запроса.


Почему «User-Agentt»?

Злоумышленники намеренно выбрали

root@kitploit:~
User-Agentt

вместо

root@kitploit:~
User-Agent

потому что:

  • оно выглядит почти идентично
  • позволяет обойти поверхностное ревью
  • большинство разработчиков игнорируют неизвестные HTTP-заголовки
  • существующие приложения продолжают работать в обычном режиме

Эта крошечная опечатка скрывала полноценный бэкдор удаленного выполнения кода.


Затронутые версии

Только:

root@kitploit:~
PHP 8.1.0-dev

А именно скомпрометированные dev-сборки, опубликованные в период инцидента в марте 2021 года.

Стабильные релизы, такие как:

  • PHP 7.x
  • PHP 8.0
  • PHP 8.1 Stable

никогда не были затронуты.


Требования к атаке

Злоумышленнику требовалось только:

  • доступ к сети
  • возможность отправлять HTTP-запросы
  • уязвимый сервер с PHP 8.1.0-dev

Без аутентификации.

Без брутфорса.

Без входа в систему.

Без предварительного доступа.


Воздействие

Успешная эксплуатация позволяет злоумышленникам:

  • выполнять произвольные команды операционной системы
  • выполнять произвольный PHP-код
  • читать конфиденциальные файлы
  • изменять веб-приложения
  • загружать веб-шеллы
  • устанавливать постоянные бэкдоры
  • выгружать базы данных
  • похищать учетные данные
  • повышать привилегии
  • продвигаться вглубь внутренних сетей
  • полностью скомпрометировать затронутый хост

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


Соответствие MITRE ATT&CK


Обнаружение

Администраторам следует немедленно проверить системы, которые раскрывают:

root@kitploit:~
PHP/8.1.0-dev

в заголовках ответов, например:

root@kitploit:~
X-Powered-By:

PHP/8.1.0-dev

Журналы HTTP-запросов также следует проверить на подозрительные запросы, содержащие:

root@kitploit:~
User-Agentt

или

root@kitploit:~
zerodium

Многие системы обнаружения вторжений и IPS-продукты теперь включают сигнатуры именно для этого вектора атаки. :contentReference[oaicite:2]{index=2}


Индикаторы компрометации (IOCs)

Возможные индикаторы включают:

  • запросы, содержащие User-Agentt
  • значения заголовков, начинающиеся с zerodium
  • неожиданное выполнение команд
  • неизвестные PHP-файлы
  • новые веб-шеллы
  • подозрительные дочерние процессы, порожденные PHP
  • необъяснимые исходящие сетевые соединения

Сложность эксплуатации

СвойствоЗначение
АутентификацияНе требуется
Взаимодействие с пользователемНе требуется
СложностьОчень низкая

Эта уязвимость считается одной из самых простых для эксплуатации среди уязвимостей удаленного выполнения кода, поскольку злоумышленнику достаточно отправить специально сформированный HTTP-запрос.


Меры защиты

Никогда не развертывайте dev-сборки PHP на производственных системах.

Если обнаружен сервер, работающий на скомпрометированной сборке:

  1. Немедленно удалите уязвимую версию.
  2. Выполните обновление до стабильного релиза PHP.
  3. Исходите из предположения о полной компрометации.
  4. Смените все учетные данные.
  5. Проверьте систему на наличие веб-шеллов.
  6. Просмотрите журналы аутентификации.
  7. Проверьте запланированные задачи и механизмы сохранения присутствия.
  8. Пересоберите сервер, если компрометацию нельзя исключить.

Уроки безопасности

Этот инцидент продемонстрировал несколько важных уроков:

  • Dev-сборки никогда не должны быть публично доступны.
  • Цепочки поставок ПО — высокоценные цели для атак.
  • Подпись кода и безопасность инфраструктуры критически важны.
  • Репозитории исходного кода требуют непрерывного мониторинга.
  • Небольшие изменения кода могут скрывать катастрофические уязвимости.
  • Доверие к вышестоящему (upstream) ПО должно всегда проверяться.

Компрометация ускорила изменения в инфраструктуре разработки PHP и подчеркнула растущую важность безопасности цепочек поставок ПО во всей отрасли. :contentReference[oaicite:3]{index=3}


Ссылки

  • Обсуждение вредоносных коммитов в PHP Internals
  • Отчеты об инциденте в репозитории исходного кода PHP
  • Публикация эксплойта на Packet Storm Security
  • IPS-сигнатура Juniper Threat Labs
  • Технический анализ сообщества
  • Публичные исследования эксплойта

Заключение

Бэкдор PHP 8.1.0-dev User-Agentt остается одним из самых значимых примеров атаки на цепочку поставок ПО, затронувшей крупный open-source проект. Вместо эксплуатации ошибки в коде злоумышленники внедрили скрытый бэкдор непосредственно в исходный код языка, что позволяло без аутентификации выполнять произвольный PHP-код через специально сформированный HTTP-заголовок User-Agentt. Хотя скомпрометированные dev-сборки были быстро удалены и ни один стабильный релиз PHP не пострадал, инцидент подчеркнул критическую важность защиты инфраструктуры разработки ПО, проверки происхождения кода и отказа от развертывания dev-сборок в производственных средах. Сегодня эта уязвимость широко изучается как знаковый случай в области безопасности цепочек поставок и служит напоминанием о том, что целостность процесса сборки ПО не менее важна, чем безопасность самого кода.

Скачать инструмент
ТехникаОписание
T1195Компрометация цепочки поставок
T1059Интерпретатор команд и сценариев
T1505Компонент серверного ПО
T1105Передача инструментов извне
T1071Протокол прикладного уровня
T1106Нативный API
T1055Внедрение в процессы (возможно на этапе пост-эксплуатации)
T1027Обфусцированные файлы или информация
Требуемые привилегии
Не требуются
УдаленноДа