CowerSnail: от создателей SambaCry

Не так давно мы рассказывали о новом семействе Linux-троянцев, использующих уязвимость в протоколе Samba — SambaCry. Спустя неделю нашим аналитикам удалось обнаружить зловреда для ОС Windows, созданного, по всей вероятности, той же группой, что несет ответственность за появление SambaCry. Заподозрить взаимосвязь между ними позволил C&C-сервер, используемый обоими зловредами — cl.ezreal.space:20480.

Продукты «Лаборатории Касперского» детектируются обнаруженный зловред как Backdoor.Win32.CowerSnail. MD5: 5460AC43725997798BAB3EB6474D391F

CowerSnail скомпилирован с использованием Qt и «слинкован» с соответствующими библиотеками. Данный фреймворк обеспечивает кроссплатформенность и переносимость исходного кода при переходе от одной операционной системы к другой, что, однако, сказывается на размере файла — чуть более трех мегабайт при достаточно небольшом объеме пользовательского кода.

Начало работы

Первым делом CowerSnail повышает приоритет процесса и текущего потока.

Затем, используя API StartServiceCtrlDispatcher, запускает основной поток взаимодействия с C&C в качестве службы сервиса диспетчера управления.

Если попытка запуска потока в качестве службы удалась, дальнейшее взаимодействие происходит в потоке созданной службы, в противном случае CowerSnail функционирует «как есть». Зловред также способен принимать на вход аргументы для своей работы, например, адрес C&C сервера, а в случае их отсутствия необходимые для работы данные извлекаются из самого файла.

В теле потока службы обращение к основному методу взаимодействия с C&C выглядит следующим образом (сам метод обозначен как route).

Взаимодействие с C&C

Исходя из анализа трафика, бот взаимодействует с C&C по IRC-протоколу. Это видно из характерной команды «CHANNEL» и дальнейшего «переброса» пингами, что достаточно часто встречается у IRC-ботнетов в IoT.

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

Имя каждого поля кодируется в Unicode и предваряется длиной поля. Следующий за статусной строкой RequestReturn/Request DWORD отображает количество переменных для переменной RequestReturn. В данном примере их три — «success», «I» и «result». Каждое из полей может в свою очередь содержать дополнительные вложенные элементы. На скриншоте ниже для примера представлен результат запроса SysInfo, при получении которого CowerSnail отправляет на C&C четырнадцать (0xE) различных строк с информацией о системе. Тип переменной указывается после её имени, значение следует за ним.

Структура пакета ответа и запроса несколько отличается. Запрос от сервера включает имя запроса, кодируемое как Request->arg->type->»Ping/SysInfo/Install», а также дополнительные параметры, передаваемые как вложенные в поле arg.

Примеры некоторых типов переменных:

0x00000005 – Целочисленная переменная

0x0000000A – Строка

После завершения регистрации зараженного хоста на C&C сервер, включающей в себя отправку информации о зараженной системе, CowerSnail «перебрасывается» пингами с севером, ожидая дальнейших команд.

Команды

В отличие от SambaCry, данный зловред не выкачивает майнер, а предоставляет стандартный набор функций бэкдора:

  • Получение обновлений (LocalUpdate)
  • Выполнение команд (BatchCommand)
  • Установка CowerSnail в качестве сервиса с помощью командного интерфейса Service Control Manager (Install)
  • Удаление установленного в качестве сервиса CowerSnail (Uninstall)
  • Сбор информации о системе:
    • Временной штамп
    • Тип установленной ОС (например, Windows)
    • Имя продукта
    • Имя хоста
    • Информация о сетевом интерфейсе
    • Поддерживаемый интерфейс приложений (ABI)
    • Архитектура процессора
    • Информация о физической памяти

Заключение

SambaCry был предназначен для *nix подобных систем. CowerSnail в свою очередь написан с использованием Qt – то есть автор, скорее всего, не пожелал разбираться в деталях WinAPI и предпочел перенести код из *nix «как есть». Это, как и использование той же самой C&C, позволяют с большой долей уверенности предположить, что данный зловред был создан группой, ответственной за SambaCry. С учетом наличия двух разных троянцев, каждый под свою платформу и со своими особенностями, вероятно, это не последнее их вредоносное ПО.

Публикации на схожие темы

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *