Установка веб-оболочки на веб-сервер - распространенный подход авторов вредоносных программ для запуска эксплойтов или удаленного выполнения команд. В ноябре 2020 года операция INJ3CTOR3 была нацелена на АТС Sangoma, популярную систему VoIP АТС, путем установки веб-оболочки на ее веб-сервер. Недавно Unit 42 наблюдало еще одну операцию, направленную на систему Elastix, используемую в телефонах Digium.
Общие сведения о вредоносной активности, направленной на Asterisk компании Digium
Злоумышленник использует веб-оболочку для утечки данных путем загрузки и выполнения дополнительной полезной нагрузки в программном обеспечении телефона Digium (модуль FreePBX, написанный на PHP). По времени веб-оболочка, по-видимому, связана с уязвимостью удаленного выполнения кода (RCE) CVE-2021-45461 в модуле Rest Phone Apps (restapps).
На данный момент мы наблюдаем более 500 000 уникальных образцов вредоносных программ этого семейства за период с конца декабря 2021 года до конца марта 2022 года. Вредоносная программа устанавливает многоуровневые обфусцированные PHP-бэкдоры в файловую систему веб-сервера, загружает новые полезные нагрузки для исполнения и планирует повторяющиеся задачи для повторного заражения хост-системы. Кроме того, вредоносная программа добавляет случайную нежелательную строку к каждой загрузке вредоносной программы в попытке обойти сигнатурные средства защиты, основанные на индикаторах компрометации (IoC).
Недавно команда WildFire заметила большой объем вредоносного трафика, который, похоже, исходит от одного и того же семейства образцов. В частности, мы наблюдали более 500 000 уникальных образцов за период с середины декабря 2021 года до конца марта 2022 года. Эта необычная активность направлена на широко распространенное коммуникационное программное обеспечение Asterisk с открытым исходным кодом компании Digium для телефонных устройств VoIP.
Elastix - крупнейшее программное решение с открытым исходным кодом для сервера унифицированных коммуникаций, объединяющее в себе функции частной телефонной станции (PBX) по интернет-протоколу (IP), электронной почты, IM, факса и совместной работы. Он имеет веб-интерфейс и включает такие возможности, как программное обеспечение для центра обработки вызовов с предиктивным набором номера. Его функциональность основана на проектах с открытым исходным кодом, включая Asterisk, FreePBX, HylaFAX, Openfire и Postfix.
FreePBX - это наиболее широко используемое в мире программное обеспечение IP PBX с открытым исходным кодом, предлагающее организациям решение "все в одном". Оно свободно доступно для загрузки и установки, содержит все основные элементы, необходимые для построения телефонной системы. Она спонсируется и разрабатывается компанией Sangoma и активным мировым сообществом. Он имеет интуитивно понятный модульный графический интерфейс пользователя (GUI), использующий возможности Asterisk, что значительно упрощает его развертывание и использование. digium_phones - это модуль FreePBX, написанный на PHP.
Вредоносная активность, которую мы недавно наблюдали, имеет сходство с отчетом INJ3CTOR3, опубликованным Check Point Research два года назад, и потенциально может быть возрождением этой кампании атак. Отчет был опубликован на форуме сообщества FreePBX в декабре 2021 года, а затем еще один отчет в январе 2022 года. Эти отчеты согласуются с предположением, что это действительно возрождение предыдущей кампании. Например, восемь доступных по умолчанию команд, приведенных ниже, были показаны в отчете INJ3CTOR3 (от 5 ноября 2020 года) на рисунке 12, "Веб-панель атакующего". Они идентичны тем, которые перечислены в теме форума сообщества FreePBX "K.php - вредоносный скрипт RestApps", сообщение 21/74 (от 12 января 2022 года), автор Денис Соловьев и другие.
Дальнейшие исследования показали, что наша находка может быть следствием официального объявления об известной проблеме безопасности CVE-2021-45461 Potential Rest Phone Apps RCE. Эта уязвимость кроется в модуле Rest Phone Apps (restapps), позволяя потенциально передавать переменную URL, что приводит к сценарию удаленного выполнения кода (RCE).
Вектор атаки
Начальные скрипты дропперов обычно имеют небольшой размер файлов:
12 750 байт полезной нагрузки, полученной из hxxp[://]37[.]49[.]230[.]74/z/wr[.]php
17 215 байт полезной нагрузки, полученной из hxxp[://]37[.]49[.]230[.]74/k[.]php
Обычно мы ожидаем этого от сценария оболочки, внедряющего полезную нагрузку веб-оболочки PHP. Здесь всегда 14 строк кода, обернутых в несколько слоев Base64-кодировки, чтобы скрыть определенные ключевые области, и одна из Base64-кодированных полезных нагрузок была продублирована.
Первоначальный дроппер представляет собой сценарий оболочки с двумя основными целями, а именно:
- Установить обфусцированный PHP-бэкдор в несколько мест в файловой системе.
- Поддерживать доступ путем:
- Создать несколько учетных записей корневых пользователей.
- Настройки запланированного задания для повторного заражения хост-системы.
Этот дроппер также пытается вписаться в существующее окружение, подменяя временную метку установленного файла PHP-бэкдора меткой известного файла, уже находящегося в системе. Более того, дроппер, получает и выполняет удаленный скрипт из инфраструктуры злоумышленника: IPv4-адрес 37[.]49[.]230[.]74.
Веб-оболочка PHP содержит случайные нежелательные комментарии в попытке обойти сигнатурные средства защиты. Кроме того, она обернута в несколько слоев кодировки Base64, чтобы скрыть свои истинные намерения. Он способен обрабатывать следующие параметры входящего веб-запроса:
- md5
- admin
- cmd
- call
Веб-оболочка защищена жестко закодированным "хэшем аутентификации MD5", который, по-видимому, уникально сопоставлен с публичным IPv4-адресом жертвы.
Пользовательский параметр md5 во входящем веб-запросе должен соответствовать этому хэшу аутентификации до успешного входа в систему и установления сессии, чтобы пользователь мог взаимодействовать с веб-оболочкой.
Веб-оболочка также может принимать параметр admin, который может иметь значение Elastic или Freepbx. После этого будет создана соответствующая сессия администратора.
Помимо поддержки произвольных команд через параметр запроса cmd, в оболочку включены следующие встроенные команды по умолчанию:
- ls -la
- ps -aux --forest
- asterisk -rx 'core show channels'
- asterisk -rx 'sip show peers'
- cat /etc/elastix.conf
- cat /etc/asterisk/sip_additional.conf
- cat /etc/asterisk/extensions_custom.conf
- cat /etc/amportal.conf
Другая полезная нагрузка в Base64-кодировке заменяет конфигурационный файл .htaccess, чтобы включить поведение "следовать символическим ссылкам", а также отобразить config.php в качестве страницы по умолчанию. .htaccess - это конфигурационный файл веб-сервера Apache, предназначенный для указания параметров конфигурации для каждого каталога. Он содержит одну или несколько директив конфигурации, которые применяются к определенному каталогу и всем его подкаталогам.
Образец пытается достичь постоянства следующими способами:
- Создание учетных записей пользователей.
- Именованный sugarmaint, с паролем uenQjcP3Il/zE
- Именование supports, с паролем uenQjcP3Il/zE.
- Добавление записи о задании по расписанию.
- Запускается каждую минуту.
- Получает удаленную копию скрипта с адреса hxxp[://]37[.]49[.]230[.]74/k[.]php.
- Выполняет его в оболочке.
Indicators of Compromise
URLs
http://37.49.230.74/k.php
http://37.49.230.74/z/post/noroot.php
http://37.49.230.74/z/post/root.php
http://37.49.230.74/z/wr.php
SHA256
- 000a3688455edacc1dac17539797dc98f055091898a65cd520fb8459c1bc2a2a
- 0012342749e3bae85a9269a93661e2eb00437c71b2bca2eaca458147f9fe8471
- 001305bd3be538e50014d42f02dee55056b73a1df770e2605aded8a970091f2f
- 0050232e04880fbe1d0c670b711b66bb46c32febdc9513074612c90f1f24631b
- 0059d7b736dc1e61bd5b22fff601579fbc8a12b00981fdd34fd13f0fb44688b0
- 0088cba19eec78daee0310854c4bf8f7efc64b89bdc7517f0a1c7ebbba673f72
File path
- /var/www/html/admin/assets/ajax.php
- /var/www/html/admin/assets/config.php
- /var/www/html/admin/assets/js/config.php
- /var/www/html/admin/modules/core/ajax.php
- /var/www/html/digium_phones/ajax.php
- /var/www/html/rest_phones/ajax.php