Honeypot-ловушка поймала взломщиков FreePBX “на горячем”. Каждое их действие записано – защитники знают всё

В экосистеме IP-телефонии обнаружили и сразу же стали активно использовать уязвимость в FreePBX – сообщество заметило массовые компрометации ещё 21 августа 2025 года, а затем на форуме начали всплывать одинаковые симптомы и следы чужих рук. Исследователи из watchTowr Labs подтвердили , что речь идёт об удалённой атаке без аутентификации, связанной с коммерческим модулем Endpoint и ошибкой в обработке классового автозагрузчика.

Проблеме присвоен идентификатор CVE-2025-57819 . FreePBX – это веб-интерфейс для Asterisk, который используют от домашних энтузиастов до провайдеров услуг и корпоративных систем, поэтому последствия затрагивают не только внутренние панели, но и доступ к звонкам, голосовой почте и записям переговоров.

Первым тревожным звоночком 25 августа стали массовые падения интерфейса с ошибкой PHP о недостающем классе Symfony. Уже на следующий день один из администраторов показал файл.clean.sh, внезапно появившийся на сервере. Скрипт проходился по журналам в “/var/log/*”, выборочно чистил строки, где могли остаться упоминания веб-шеллов и служебных имён, после чего удалял сам себя. Подобная очистка логов – типичный признак постэксплуатации, когда злоумышленники затирают следы и усложняют разбор инцидента.

WatchTowr развернули полностью отслеживаемый сенсор FreePBX и сопоставили поведение “до” и “после” исправлений. Выяснилось, что прямой вход в уязвимый код находится внутри модуля Endpoint, а решающую роль играет связка маршрутизации /admin/ajax.php и механизм автозагрузки классов. В исходниках FreePBX есть проверка class_exists на значение параметра module, и при стандартном значении автозагрузки PHP этот вызов передаёт строку в пользовательский fpbx_framework_autoloader.

Если подать модуль вида “FreePBXmodulesendpointajax”, автозагрузчик собирает путь “/admin/modules/endpoint/ajax.php” и просто включает соответствующий файл – причём до проверки сессии. Так происходит запуск кода модуля без логина, а дальше вступает в дело ошибка валидации в Endpoint: SQL-инъекция в параметрах ajax-обработчика позволяет манипулировать базой данных FreePBX.

На практике атакующие сначала создавали скрытого администратора “ampuser” – это подтверждается пойманными honeypot-запросами, где в параметр brand инжектировалась INSERT-операция в таблицу ampusers. Далее, чтобы перейти от доступа к базе данных к исполнению команд, они добавляли запись в таблицу cron_jobs со стандартным расписанием “* * * * *”, указывая полезную нагрузку в поле command – таким образом код выполнялся раз в минуту от имени системных утилит FreePBX. Эту цепочку watchTowr воспроизвели в лаборатории, а для проверки следов опубликовали генератор артефактов детектирования, который поочерёдно пытается записать веб-оболочку через cron либо добавить нового пользователя.

Разработчики FreePBX отреагировали оперативно и порекомендовали временно закрыть административный интерфейс по IP-спискам или фаерволом, а также установить внеплановые обновления для модуля Endpoint. Для FreePBX 16/17 предложена команда “fwconsole ma downloadinstall endpoint -edge”, для PBXAct 16 – “-tag 16.0.88.19”, для PBXAct 17 – “-tag 17.0.2.31”.

В описании инцидента команда FreePBX отдельно указала, что со 21 августа 2025 года неизвестный начал обращаться к системам версии 16 и 17, доступным из интернета без должной фильтрации, и после начального входа цепочка шагов давала права вплоть до root. При этом watchTowr подчёркивают – модульное исправление закрывает SQL-инъекцию, но корневая причина с автозагрузкой в ядре ещё требует переосмысления, поскольку предаутентификационное подключение отдельных “.php” внутри “admin/modules” остаётся доступным маршрутом.

Отдельно команда напомнила, что весной уже сообщала FreePBX о постаутентификационной командной инъекции CVE-2025-55211 , публикация по которой затянулась за пределы стандартного окна раскрытия. В сумме это рисует неприятную картину: коммерческие надстройки, закрытые ionCube, сочетаются с уязвимой связкой маршрутизации и автозагрузки, а атакующие быстро конвертируют доступ к панели в прослушивание телефонии и закрепление в инфраструктуре. Подобная картина с критическими уязвимостями наблюдается и в других корпоративных системах.

На стороне защитников остаются базовые меры – сегментация и фильтрация доступа к админке, оперативная установка исправлений модулей, контроль целостности веб-каталогов “/admin/modules” и аудит БД на предмет неожиданных записей в ampusers и cron_jobs, а также поиск следов работы .clean.sh в системных журналах. Как показывают современные атаки , злоумышленники становятся всё изощрённее в обходе защитных механизмов.

Public Release.