Реальная история администратора сайта mi55.ru, столкнувшегося с критической уязвимостью CVE-2026-48907

Вступление: как всё началось

17 июня 2026 года я заметил, что сайт начал работать нестабильно. В админке появились странные файлы, а антивирус на моём локальном компьютере при скачивании бэкапа зафиксировал множество угроз: Trojan:PHP/WebShell!MSR, Backdoor:PHP/Webshell!AMTB. Среди них были файлы с именами ac709ca65ebe.php, syshack-*.gif, kill.gif и kill.png.

Я не сразу понял, что произошло. Первое подозрение пало на старый компонент Excel2VM — он уже был в «чёрном списке» из-за известных уязвимостей. Но когда я начал копать логи, картина стала меняться.

Как я понял, что это JCE

Всё стало ясно после анализа логов доступа:

103.154.151.57 - - [18/Jun/2026:00:52:33 +0300] "POST /index.php?option=com_jce&task=plugin.rpc&plugin=browser" 200
46.246.28.170 - - [18/Jun/2026:05:15:53 +0300] "POST /index.php?option=com_jce&task=profiles.import" 200

Я увидел прямые обращения к /index.php?option=com_jce&task=profiles.import. Это был явный признак использования уязвимости CVE-2026-48907 — критической дыры в редакторе JCE, о которой за несколько дней до этого сообщали CISA и разработчики Joomla.

Что такое CVE-2026-48907

Это уязвимость с оценкой 10.0 по шкале CVSS — максимальная степень тяжести. Она затрагивает все версии JCE от 1.0.0 до 2.9.99.4 и позволяет неавторизованному пользователю загружать и выполнять PHP-код на сервере.

Согласно официальному описанию CISA:

«Редактор контента Widget Factory Joomla содержит неправильную уязвимость контроля доступа, которая может позволить загружать и выполнять PHP-код путем создания новых профилей редактора для пользователей без аутентификации».

Уязвимость была исправлена в версии 2.9.99.5, выпущенной 3 июня 2026 года. Но, как предупреждали разработчики Joomla:

«Если вы были атакованы до обновления, обновление не удалит то, что оставил злоумышленник».

Логи: что я увидел в реальном времени

18 июня 2026, 00:52:33

POST /index.php?option=com_jce&task=plugin.rpc&plugin=browser&b3405188b02d0859ac4bcc3b32d61cb8=1 HTTP/1.1" 200

Злоумышленник с IP 103.154.151.57 начал атаку через JCE, отправляя RPC-запросы к плагину браузера. Ответ 200 означал, что запрос был успешно выполнен — уязвимость была найдена.

18 июня 2026, 05:15:53

POST /index.php?option=com_jce&task=profiles.import HTTP/1.1" 200

IP 46.246.28.170 загрузил файл 246246.php7 через профиль импорта JCE. Это был первый бэкдор, который позже превратился в ac709ca65ebe.php.

После 05:16:00

POST /ac709ca65ebe.php HTTP/1.1" 200

Злоумышленник начал использовать бэкдор для выполнения команд. В течение нескольких минут были загружены:

  • 31a5e7cc9eindex.php — попытка загрузить новый бэкдор (заблокирована ModSecurity)
  • syshack-*.gif — шесть файлов-бэкдоров в папке /images/
  • kill.gif, kill.png, killmbg.gif — бэкдоры с текстом «Hacked by Antonkill - SYShack»

Что я сделал

1. Анализ логов

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

2. Удаление бэкдоров

Я вручную удалил все обнаруженные вредоносные файлы:

rm -f /var/www/www-root/data/www/mi55.ru/ac709ca65ebe.php
rm -f /var/www/www-root/data/www/mi55.ru/31a5e7cc9eindex.php
rm -f /var/www/www-root/data/www/mi55.ru/images/syshack-*.gif
rm -f /var/www/www-root/data/www/mi55.ru/images/kill.gif
rm -f /var/www/www-root/data/www/mi55.ru/images/kill.png
rm -f /var/www/www-root/data/www/mi55.ru/images/killmbg.gif

3. Проверка пользователей Joomla

Я проверил всех администраторов и пользователей, чтобы убедиться, что злоумышленник не создал скрытую учётную запись:

SELECT id, name, username, email, registerDate FROM mi060816_users ORDER BY id DESC;

4. Восстановление конфигурации

Я проверил configuration.php — он был изменён. Восстановил его и сменил пароли от базы данных и административной панели.

5. Удаление JCE

Компонент JCE был временно удалён. Это радикальный шаг, но он гарантирует, что уязвимость не будет использована повторно.

6. Блокировка IP-адресов

Я заблокировал все IP-адреса, с которых велись атаки:

103.154.151.57, 46.246.28.170, 45.159.12.118

Что изменилось в безопасности сервера

Компонент Статус до атаки Статус после
JCE Установлен, уязвимая версия Удалён
Excel2VM Установлен, уязвимая версия Временно отключён
Файрвол Включён, стандартные правила Дополнен IP-банлистом
ModSecurity Включён Правила усилены
Пароли Старые Изменены все

Главный урок

  1. Логи — это всё. Если бы я не проанализировал логи доступа и ошибок, я бы до сих пор думал, что виноват Excel2VM. Именно логи показали реальный вектор атаки — JCE.
  2. Обновления не защищают от уже оставленного бэкдора. Как и предупреждали разработчики Joomla, обновление JCE не удалило бы вредоносные файлы. Пришлось чистить руками.
  3. WAF (ModSecurity) сработал, но не на 100%. Попытка загрузить 31a5e7cc9eindex.php через ac709ca65ebe.php была заблокирована правилом 933110. Однако бэкдор ac709ca65ebe.php уже был на сервере, и его использовали. Это показывает, что защита должна быть многоуровневой: WAF + мониторинг файлов + анализ логов.
  4. CISA была права. Уязвимость активно эксплуатируется, рабочий код эксплойта есть в открытом доступе, а атаки автоматизированы. Даже сайт без публичной регистрации небезопасен — я в этом убедился на собственном опыте.

Надежда на лучшее

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

Теперь я внедряю дополнительные меры:

  • Ежедневный мониторинг изменений файлов в критических папках
  • Автоматическая проверка целостности Joomla
  • Регулярный аудит логов доступа
  • Уведомления о подозрительных действиях в реальном времени

Полезные ссылки

Статья подготовлена 18 июня 2026 года на основе реальных событий.