Аналитическая группа Центра экстренного реагирования на чрезвычайные ситуации безопасности АнЛаб (ASEC) ведет постоянный мониторинг вредоносных программ, распространяемых на уязвимых серверах баз данных.
Сервер MySQL - один из основных серверов баз данных, обеспечивающий возможность управления большими объемами данных в корпоративной или пользовательской среде. Как правило, в средах Windows для работы с базами данных в основном устанавливается MS-SQL, а в средах Linux используются такие сервисы баз данных, как MySQL и PostgreSQL. Однако, хотя и не так часто, как серверы MS-SQL, встречаются случаи установки серверов MySQL на Windows, поскольку сервисы СУБД типа MySQL также поддерживают Windows-среды. Соответственно, постоянно выявляются атаки, направленные на серверы MySQL, работающие в среде Windows.
Ddostf Botnet
Недавно аналитическая группа ASEC обнаружила, что DDoS-бот Ddostf устанавливается на уязвимые серверы MySQL. Ddostf - DDoS-бот, способный проводить распределенные атаки типа "отказ в обслуживании" (DDoS) на определенные цели, впервые был обнаружен примерно в 2016 году. Известно, что он был разработан в Китае и отличается тем, что поддерживает работу как в среде Windows, так и в Linux.
Атакующуие определяют потенциальные цели для своих атак с помощью сканирования. Среди общедоступных систем сканеры ищут системы с портом 3306/TCP, который используется серверами MySQL. После этого злоумышленники могут использовать брутфорс или словарные атаки на систему. Если система плохо управляет учетными данными, то угрозы могут получить доступ к учетным данным администратора. Конечно, если в системе установлена непропатченная версия с уязвимостями, то угрозы могут использовать эти уязвимости для выполнения команд, не прибегая к вышеописанному процессу.
Обычно в средах MS-SQL предусмотрено несколько способов выполнения команд ОС. Наиболее известной командой является xp_cmdshell, существуют и другие методы, такие как OLE Store Procedure, MS-SQL Agent Jobs, Extended Stored Procedure и CLR Stored Procedure. Возможность выполнения команды пользователя с помощью команд ОС (например, CMD или PowerShell) означает возможность получения контроля над системой.
В отличие от MS-SQL, MySQL не поддерживает прямые команды ОС, такие как xp_cmdshell. Однако он может использовать функцию, называемую User-defined Function (UDF), что в конечном итоге позволяет участникам угроз выполнять команды.
UDF - это реализация необходимых функций в DLL, и угрожающие лица загружают в зараженную систему DLL, содержащую вредоносные команды в виде библиотеки UDF. Затем они загружают эту DLL в сервер MySQL. После этого они могут передавать вредоносные команды на зараженную систему, выполняя заданные команды.
Этот процесс аналогичен CLR SqlShell сервера MS-SQL. [3] Как и WebShell, который может быть установлен на веб-серверы, SqlShell представляет собой штамм вредоносного ПО, который после установки на сервер MS-SQL поддерживает различные функции, такие как выполнение команд от субъектов угроз и осуществление всевозможных вредоносных действий.
Серверы MS-SQL поддерживают метод CLR Stored Procedure, который позволяет использовать расширенные возможности, а SqlShell - это DLL, созданная с использованием этого метода. CLR Stored Procedure - один из основных методов, который может быть использован злоумышленниками для выполнения вредоносных команд в серверах MS-SQL наряду с командой xp_cmdshell. Угрозы в основном используют SqlShell как средство для установки конечных вредоносных программ, таких как CoinMiners или ransomware.
Изучение журналов заражения систем, которые действительно подверглись атаке, показывает, что помимо Ddostf на зараженные системы устанавливаются и вредоносные UDF DLL, подобные приведенной ниже. Разумеется, эти UDF DLL использовались для различных атак задолго до того, как угрозы решили применить их для установки DDoS-бота Ddostf. Таким образом, угрожающий агент использовал вредоносную программу UDF в качестве инструмента в процессе атаки на плохо управляемые серверы MySQL.
Данный вредоносный код UDF поддерживает функции загрузки файлов с URL-адресов, передаваемых в качестве аргументов, или выполнения команд, предоставленных угрожающими агентами. Предполагается, что угрожающий агент использовал функцию downloader(), предоставляемую UDF DLL, для загрузки Ddostf из внешнего источника, а затем выполнил загруженный Ddostf с помощью функции cmdshelv(). Кроме того, помимо выполнения команды, функция cmdshelv() поддерживает возможность вывода результатов выполнения в виде файла "cmd.tmp", в котором затем передаются результаты команды, считывающей и выполняющей этот файл, на C&C-сервер.
Существует ELF-формат Ddostf, предназначенный для Linux-окружений, и PE-формат, который может работать в Windows-окружениях. Здесь мы рассмотрим формат PE, используемый в атаках, направленных на среды Windows. Основной особенностью Ddostf является включение в его двоичный файл строки "ddos.tf", как показано ниже.
При выполнении Ddostf сначала копирует себя под произвольным именем в каталог %SystemRoot%, а затем регистрируется в качестве службы.
После этого он расшифровывает зашифрованную строку URL-адреса C&C-сервера "C8AF3371ACB79AA6119CB33C80C40AE544F319", чтобы получить и подключиться к реальному URL-адресу C&C-сервера. Кроме того, создатель вредоносной программы вставил бессмысленные функции printf() в середину реального кода, чтобы затруднить анализ. При первом подключении вредонос собирает основные фрагменты информации с зараженной системы и отправляет их на C&C-сервер.
Кроме того, при первичной передаче системной информации в качестве сигнатуры также передается значение 0x0000000B. Однако среди команд C&C-сервера при передаче информации о текущем состоянии системы, такой как скорость сети и загрузка процессора, используется значение 0x0000000A.
При передаче информации о состоянии зараженной системы на C&C-сервер C&C-сервер отвечает размером 0x000000C4. Этот ответ содержит не только команды, но и данные. Например, в случае специфических методов DDoS-атаки или команд загрузки он включает URL-адрес загрузки.
Хотя поддерживается всего шесть команд, внутри DDoS-атаки включают в себя множество методов, в том числе SYN Flood, UDP Flood, HTTP GET/POST Flood и другие.
Хотя большинство команд, поддерживаемых Ddostf, аналогичны командам типичных DDoS-ботов, отличительной особенностью Ddostf является его способность подключаться к вновь полученному от C&C-сервера адресу и выполнять там команды в течение определенного времени. Как показано ниже, на новом C&C-сервере могут выполняться только DDoS-команды. Это означает, что угрожающий агент Ddostf может заражать множество систем и затем продавать DDoS-атаки как услугу.
Indicators of Compromise
IPv4 Port Combinations
- 136.243.103.119:6681
MD5
- 6e7e26a6e237f84b51bc61aa7dff5680
- fe550baf5205d4b2503ad0d48014fccf