Остались вопросы?
Мы с удовольствием вам поможем
Спасибо! Ваша заявка принята.
Ваша заявка принята. Наш менеджер скоро с вами свяжется
Заказать звонок
Спасибо! Ваша заявка принята.
Спасибо за обращение.
Мы обязательно свяжемся с вами

Время работы офиса
Пн-Пт: 8:00 — 18:00
Сб: 10:00 — 16:00
Вс: выходной

Слабые пароли: наш SOC отразил массовую атаку на более чем 100 сайтов

03.01.2025

Попытка массового взлома сайтов на самом популярном в мире движке WordPress и известной платформе для электронной коммерции OpenCart была зафиксирована нашим центром кибербезопасности. Расследование показало, что слабые логин и пароль могут нанести ущерб десяткам сайтов всего за несколько минут. Проблема устранена для клиентов hoster.by, но описанные ниже индикаторы могут помочь защитить и другие сайты.

Все началось с блокировки системой безопасности hoster Guard подозрительных запросов на 2 сайта, разработанных на OpenCart. Получив оповещение, наши аналитики сразу начали изучать ситуацию и обнаружили, что к административным панелям этих ресурсов был получен несанкционированный доступ.

Мы проанализировали лог-файлы и собрали перечень индикаторов компрометации – характерных признаков атаки. По этим признакам быстро выявили еще больше сотни пострадавших клиентов, которые не использовали при этом WAF hoster Guard и другие инструменты защиты. Ход проведения атак был однотипным, лишь немного отличались некоторые индикаторы компрометации.

Каждый раз вход в CMS происходил под учетными данными пользователей. И в каждом случае это были слабые логины и пароли вида admin:admin или test:test123.

Все входы были сделаны с первой попытки и в короткий промежуток времени в 12 минут: с 10:55 до 11:07. Первые обращения были зафиксированы в 10:55. Активная фаза атаки длилась 3 минуты с 11:04 до 11:07. С 10:55 до 11:04 проводилась разведка путем обращения к главной странице ресурсов. Это говорит о том, что у злоумышленников заранее были все логины и пароли от веб-ресурсов.

Примечательно, что атака производилась с IPv6. За текущий год это всего второй подобный случай в “истории наблюдений” нашего SOC, как правило во время киберинцидентов используется IPv4.

IP-адрес злоумышленника: 2002:6dac:5ba2::6dac:5ba2

Пример POST-запроса входа: 

Вход в CMS.jpg

Во всех случаях вход производился под учетными данными с привилегированными правами, которые позволяют загружать файлы на ресурсы. В данном примере — с правами администратора.


Ход атаки на примере сайтов на OpenCart

После получения доступа к ресурсу злоумышленник загружал вредоносный файл через отправку запроса. Для этого использовалась уязвимость в модификации OpCarts. При обращении к /admin/index.php?route=extension/installer/upload появляется возможность загрузки файлов, однако с явным ограничением "Требуются файлы модификаций .ocmod.zip или .ocmod.xml".



Для обхода ограничения был создан файл 02x24.ocmod.xml . В данном случае место, откуда злоумышленник загрузил файл, видно из логов:

путь к файлу 2.jpg

Путь: C:\Users\Administrator\Desktop\oc_upl2/modules20/02x24.ocmod.xml

Содержание файла 02x24.ocmod.xml : 

<?xml version="1.0" encoding="utf-8"?>
<modification>
<name><![CDATA[OpCarts]]></name>
<code>OpCarts</code>
<version>1.0 </version>
<author>teknohiz.com>/author>
<link>teknohiz.com</link>

<file path="catalog/controller/common/header.php">
<operation>
<search> <![CDATA[public function index() {]]>
<add position="after" trim="true"><![CDATA[
<$datasss = base64_decode('ВРЕДОНОСНЫЙ КОД');
$fp = fopen($_SERVER['DOCUMENT_ROOT'].'/image.php', 'w');
fwrite($fp, $datasss.PHP_EOL);
fclose($fp);
$fp = fopen($_SERVER['DOCUMENT_ROOT'].'/admin/image.php', 'w');
fwrite($fp, $datasss.PHP_EOL);
fclose($fp);
]]></add>
</operation>
</file>
</modification>

Структура XML 

Код внутри элемента <add> 

Код, который будет добавлен, включает:
  1. Декодирование строки:
    • Строка закодирована в base64 и декодируется с помощью функции base64_decode().
  2. Запись в файл:
Создание файла image.php:
  • fopen($_SERVER['DOCUMENT_ROOT'].'/image.php', 'w'): Открывает (или создает) файл image.php в корневом каталоге веб-сервера для записи ('w').
  • fwrite($fp, $datasss.PHP_EOL): Записывает в файл содержимое переменной $datasss, добавляя символ новой строки (конец строки) после него.
  • fclose($fp): Закрывает файл после завершения записи.

Создание файла admin/image.php:
  • fopen($_SERVER['DOCUMENT_ROOT'].'/admin/image.php', 'w'): Открывает (или создает) файл image.php в подкаталоге admin для записи.
  • Запись и закрытие выполняются аналогично первому файлу.

По итогу выполнения POST запроса:
В файл header.php добавляется код:
$datasss = base64_decode('ВРЕДОНОСНЫЙ КОД')
$fp = fopen($_SERVER['DOCUMENT_ROOT'].'/image.php', 'w');
fwrite($fp, $datasss.PHP_EOL);
fclose($fp);
$fp = fopen($_SERVER['DOCUMENT_ROOT'].'/admin/image.php', 'w');
fwrite($fp, $datasss.PHP_EOL);
fclose($fp);

В свою очередь эти функции, выполняясь из файла header.php, создают файлы:

/image.php

/admin/image.php

Содержанием которых является вредоносный код задекодированный из строки base64.

Сам вредоносный код довольно большой. Скриншот с выгрузкой запроса красноречиво показывает его длину.
блюр1.png
Параллельно с анализом лог-файлов мы изучили полезную нагрузку запроса. Сам запрос объемный, но довольно простой, поэтому аналитикам не составило труда быстро разобраться, что он делает и как именно. Код предназначен для создания и использования редиректов, для сбора информации о пользователях, а также для создания файлов на ресурсе. Это может быть необходимо для подготовки злоумышленником инфраструктуры с целью проведения других кибератак.

О вредоносном коде

Мы предоставим только часть функционала, чтобы исключить возможность дальнейшего использования кода.

В код добавлены функции генерации случайных строк для усложнения анализа его работы. Также написаны строки, устанавливающие бесконечное время выполнения, чтобы избежать прерываний:

Основной вредоносный функционал находится в функции get_file. Там же есть $file с зашифрованным кодом. При расшифровке base64 и анализе видно, что он используется для сбора данных о пользователях: с какого URL он пришел на сайт, информация об устройстве, браузере, операционной системе, cookie. Редиректы на вредоносные сайты происходит через HTTP-заголовок с добавлением JavaScript для выполнения редиректов в браузере.

Перенаправления осуществляются через HTTP-заголовки:


Или с использованием JavaScript:


Сам скрипт сканирует файловую систему, начиная с корневой директории веб-сервера (DOCUMENT_ROOT). Затем ищет файл index.php и исключает из поиска определенные директории (admin, wp-content) и файл (wp-config.php).

Потом генерируется код, который вставляется в начало найденных файлов

Пример кода, который генерируется в начале файла: 

Затем происходит перенаправление пользователей на внешние сайты из массивов $fulldom и $fulldoms

И далее перенаправляет на другие сайты, например, онлайн-казино.

Сайты, на которые выполняется редирект:

http://pitmalohit[.]online/

http://purinagun[.]space/

http://purinagun[.]online/

http://partagun[.]online/

http://jikolahit[.]online/

http://jikolahit[.]fun/

http://pitmalohit[.]website/help/

После внедрения кода права на файлы изменяются на 0444 (только чтение).

Как уже говорилось, функционал скрипта довольно обширный. Он позволяет создавать файлы и взаимодействовать с ними, что открывает много возможностей для злоумышленников. Хочется верить, что целью данной серии атак был заработок через перенаправление трафика и сбора информации, а не подготовка инфраструктуры для проведения еще более масштабных киберпреступлений.

«Мы ежедневно фиксируем попытки разного типа атак на ресурсы клиентов и оперативно устраняем их последствия. Но в случае массовых взломов важно показать признаки, по которым все желающие смогут проверить свои сайты, которые находятся в зоне риска. Для этого мы подробно описываем результаты расследования», — комментирует генеральный директор hoster.by Сергей Повалишев.

«Эта массовая атака ярко показывает, как часто владельцы сайтов используют слабые пароли, по сути оставляя “открытые двери” для киберпреступников. Нет рекомендации более банальной и в то же время важной — убедитесь, что административная панель вашего сайта защищена стойким паролем. Вторая рекомендация — используйте инструменты защиты веб-приложений и осуществляйте мониторинг ваших ресурсов. Именно благодаря тому, что ряд клиентов использовали hoster Guard, наши аналитики быстро получили уведомления о подозрительной активности на этих сайтах и моментально пресекли попытку взлома», — комментирует руководитель центра кибербезопасности hoster.by Антон Тростянко.

Индикаторы компрометации:
IP-адреса:

2002:6dac:5ba2::6dac:5ba2

95.181.161.115

Время взлома:
10:55 - 11:07 16.12.2024

Инструменты и файлы используемые злоумышленником:
02x24.ocmod.xml

md5: 2dcdca14fc57398aa71a8f99c75b8744

sha1: a5b352a87faa7523c13a5e9ddc16b65161827329

sha256: 6af20907ec33cd814a5ceb7d640b3ac2ec02d70399180da754378afa3675ae36

Fullpath: C:\Users\Administrator\Desktop\oc_upl2/modules20/02x24.ocmod.xml

Модифицированные файлы:

header.php

Index.php

Не предоставляем контрольные суммы, так как вредоносный код внедряется в легитимные файлы, не перезаписывая их, что делает каждый файл уникальным для каждого ресурса.

Созданные файлы:

image.php

md5: 1125a896ea650eba5fe8e362d11c471d

sha1: de74b40a3db83d155ae4e809c824ce47be6b438b

sha256: f9a7569a4ff11c6e11d570448a057913b39b0458adc6d4bcb34130cec95b3096

Admin/image.php

md5: 1125a896ea650eba5fe8e362d11c471d

sha1: de74b40a3db83d155ae4e809c824ce47be6b438b

sha256: f9a7569a4ff11c6e11d570448a057913b39b0458adc6d4bcb34130cec95b3096

Взаимодействия с ресурсами:

http://pitmalohit[.]online/

http://purinagun[.]space/

http://purinagun[.]online/

http://partagun[.]online/

http://jikolahit[.]online/

http://jikolahit[.]fun/

http://pitmalohit[.]website/help/
Поделиться:
Подпишитесь на email-рассылку!

Будьте в курсе новостей. Отправляем полезные письма каждый месяц.

Пожалуйста, введите адрес электронной почты
Пожалуйста, подтвердите согласие с условиями обработки персональных данных.
article mailing picture
Вы подписались на нашу рассылку!

Скоро вы получите новое письмо.

article mailing picture