Реальная история администратора сайта 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 | Включён | Правила усилены |
| Пароли | Старые | Изменены все |
Главный урок
- Логи — это всё. Если бы я не проанализировал логи доступа и ошибок, я бы до сих пор думал, что виноват Excel2VM. Именно логи показали реальный вектор атаки — JCE.
- Обновления не защищают от уже оставленного бэкдора. Как и предупреждали разработчики Joomla, обновление JCE не удалило бы вредоносные файлы. Пришлось чистить руками.
- WAF (ModSecurity) сработал, но не на 100%. Попытка загрузить
31a5e7cc9eindex.phpчерезac709ca65ebe.phpбыла заблокирована правилом933110. Однако бэкдорac709ca65ebe.phpуже был на сервере, и его использовали. Это показывает, что защита должна быть многоуровневой: WAF + мониторинг файлов + анализ логов. - CISA была права. Уязвимость активно эксплуатируется, рабочий код эксплойта есть в открытом доступе, а атаки автоматизированы. Даже сайт без публичной регистрации небезопасен — я в этом убедился на собственном опыте.
Надежда на лучшее
Я надеюсь, что справился с проблемой. На данный момент все найденные бэкдоры удалены, JCE отключён, пароли сменены, а IP злоумышленников заблокированы. Но я понимаю, что расслабляться нельзя. Взлом произошёл, и он оставил след.
Теперь я внедряю дополнительные меры:
- Ежедневный мониторинг изменений файлов в критических папках
- Автоматическая проверка целостности Joomla
- Регулярный аудит логов доступа
- Уведомления о подозрительных действиях в реальном времени
Полезные ссылки
- CVE-2026-48907 на NVD
- CISA Known Exploited Vulnerabilities Catalog
- JCE Security Advisory
- Joomla Official Security Announcement
Статья подготовлена 18 июня 2026 года на основе реальных событий.