Loki: новый приватный агент для популярного фреймворка Mythic

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


В июле 2024 года мы обнаружили ранее неизвестный бэкдор Loki, который был использован в ряде целевых атак. Изучив вредоносный файл и открытые источники, мы выяснили, что Loki является приватной версией агента для фреймворка с открытым исходным кодом Mythic.

Одна из расшифрованных строк агента

Одна из расшифрованных строк агента

Наши решения детектируют эту угрозу как Backdoor.Win64.MLoki, чтобы отличать ее от других одноименных семейств зловредов, таких как Loki Bot, Loki Locker и т. д.

Mythic Framework

В 2018 году разработчик Коди Томас (Cody Thomas) создал собственный фреймворк Apfell с открытым исходным кодом для постэксплуатации скомпрометированных macOS-систем. Два года спустя к его проекту присоединилось несколько разработчиков, фреймворк стал кроссплатформенным и был переименован в Mythic. Основной проблемой существующих на тот момент фреймворков было неудобство создания различных агентов (клиентов), а также отсутствие единого интерфейса управления ими и поддержки модульности. Преимущество Mythic заключалось в том, что этот фреймворк позволяет использовать агенты на любом языке, созданные под любую платформу с необходимой разработчику функциональностью. На момент написания статьи в официальном репозитории Mythic опубликовано порядка двух десятков агентов.

Технические детали

Обнаруженный нами агент Loki является совместимой с Mythic версией агента для другого фреймворка, Havoc. Модификация Loki унаследовала от Havoc различные техники для усложнения анализа агента, такие как шифрование своего образа в памяти, непрямой вызов системных функций API, поиск функций API по хэшам и другие. Но в отличие от агента для Havoc Loki был разделен на загрузчик и DLL, в которой реализована основная функциональность зловреда.

Обе версии агента используют алгоритм хэширования djb2 для сокрытия API-функций и команд, однако в версии для Mythic он был также немного изменен. Если в агенте для Havoc использовалось оригинальное магическое число Дэниеля Бернштейна 5381, то в Loki его заменили на 2231.

1

2

3

4

5

6

7

8

9

unsignedlong

hash(unsignedchar*str)

{

unsignedlonghash=2231;

intc;

while(c=*str++)

hash=((hash<<5)+hash)+c;/* hash * 33 + c */

returnhash;

}

Функциональность загрузчика

После запуска загрузчик Loki формирует пакет, содержащий информацию о зараженной системе, такую как версия операционной системы, внутренний IP-адрес, имя пользователя, архитектура процессора, путь к текущему процессу и его ID, и отправляет его в зашифрованном виде на командный сервер https://y[.]nsitelecom[.]ru/certcenter. В ответ сервер отправляет DLL, которую загрузчик помещает в память зараженного устройства, — обработка команд и дальнейшая коммуникация с C2 происходят в этой библиотеке. Далее мы рассмотрим две версии загрузчика, активность которых наблюдалась в мае и июле.

Майская версия загрузчика

MD5 375CFE475725CAA89EDF6D40ACD7BE70
SHA1 8326B2B0569305254A8CE9F186863E09605667E7
SHA256 81801823C6787B737019F3BD9BD53F15B1D09444F0FE95FAD9B568F82CC7A68D
Время компоновки 13:50 23.05.2024
Компилятор GNU Binutils 2.31
Тип файла Исполняемый файл Windows x64
Размер файла 92328 байт
Имя файла смета_27.05.2024.exe

Июльская версия загрузчика

MD5 46505707991E856049215A09BF403701
SHA1 21CDDE4F6916F7E4765A377F6F40A82904A05431
SHA256 FF605DF63FFE6D7123AD67E96F3BC698E50AC5B982750F77BBC75DA8007625BB
Время компоновки 11:23 25.07.2024
Компилятор GNU Binutils 2.31
Тип файла Исполняемый файл Windows x64
Размер файла 92672 байта
Имя файла winit.exe

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

Обе версии используют одни и те же алгоритмы для шифрования данных: сначала собранная информация шифруется алгоритмом AES, затем кодируется при помощи base64. При этом старая версия вместе с зашифрованными данными отправляет 36-символьный UUID в открытом виде, а новая — кодирует его посредством base64.

Пример отправляемых данных до шифрования июльской версией Loki: справа можно видеть UUID версии

Пример отправляемых данных до шифрования июльской версией Loki: справа можно видеть UUID версии

UUID уникален для каждого экземпляра зловреда. Изученный майский образец использовал идентификатор 86cd8a56-1657-42ce-a0e8-587bf8144c05, а июльский — 472719a8-e1ce-4a5c-9ab2-bb4d1139ae33.

Трафик июльской версии после шифрования AES и base64

Трафик июльской версии после шифрования AES и base64

Трафик майской версии после шифрования с открытым UUID

Трафик майской версии после шифрования с открытым UUID

В результате первого запроса к C2 сервер отдает полезную нагрузку в виде DLL с двумя экспортируемыми функциями: стандартной точкой входа DllMain и функцией Start, которую загрузчик вызывает для передачи дальнейшего управления в библиотеку.

Функциональность основного модуля

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

MD5 EB7886DDC6D28D174636622648D8E9E0
SHA1 98CFFA5906ADB7BBBB9A6AA7C0BF18587697CF10
SHA256 AA544118DEB7CB64DED9FDD9455A277D0608C6985E45152A3CBB7422BD9DC916
Время компоновки 12:00 03.05.2024
Компилятор GNU Binutils 2.31
Тип файла Исполняемый файл Windows x64
Размер файла 167424 байта
Имя файла stagger_1.1.dll

Главный модуль, так же как и загрузчик, основан на версии агента для Havoc, но список поддерживаемых команд частично заимствован из других агентов Mythic. Этот список не хранится в открытом виде в DLL, вместо этого в коде библиотеки указан ряд хэшей. Когда с сервера поступает команда, для ее названия обсчитывается хэш, который затем сверяется с хэшем из DLL.

Обработка команд по хэшам

Обработка команд по хэшам

Хэш Название команды Описание
0x00251B5E cd Изменить текущую директорию
0x36D4696F kill-process Завершить указанный процесс
0x03A9CB57 create-process Создать процесс
0x04C8848E bof Запустить Beacon Object File
0x04C89140 env Вывести список переменных окружения и их значения
0x04C8C122 pwd Показать текущую директорию
0x5A2DE070 sleep Изменить интервал между запросами к C2
0x5A41B798 token Управлять маркерами доступа Windows
0x7BD1668F download Отправить файл с зараженной машины на сервер
0x88BD45B4 inject Внедрить код, переданный с командой, в уже запущенный процесс
0x9DDAE271 exit Завершить процесс агента
0xA4E0A13C upload Отправить файл с сервера на зараженную машину

Инструменты для туннелирования трафика

Сам по себе агент не поддерживает туннелирование трафика, поэтому для доступа к частным сегментам сети злоумышленники применяли сторонние общедоступные утилиты. Совместно с Loki использовалась утилита ngrok в директории с загрузчиком агента. В других случаях были обнаружены экземпляры утилиты gTunnel, запущенной в контексте системных процессов svchost.exe и runtimebroker.exe. Примечательно, что, в отличие от ngrok, она была модифицирована с помощью goReflect таким образом, чтобы загружаться и выполняться в памяти, а не с диска.

Жертвы и распространение

С угрозой столкнулись более десятка российских компаний из различных сфер деятельности — от машиностроения до медицины. При этом мы полагаем, что число потенциальных жертв выше. По данным телеметрии и названиям файлов, в которых был обнаружен зловред, вроде «смета_27.05.2024.exe», «На_согласование_публикации_<предприятие>.rar», «ПЕРЕЧЕНЬ_ДОКУМЕНТОВ.ISO» и т. д. можно предположить, что в ряде случаев Loki попадает на компьютер жертвы через электронную почту, а затем невнимательный пользователь сам запускает его.

Атрибуция

На момент исследования данных о зловреде недостаточно, чтобы приписать Loki какой-либо известной группе. Вместо стандартных шаблонов электронных писем для распространения агента злоумышленники, вероятно, используют индивидуальный подход к своим целям. Также мы не заметили уникальных инструментов на зараженных машинах, которые могли бы помочь установить атрибуцию. Приоритет отдается только общедоступным утилитам для туннелирования трафика, таким как gTunnel и ngrok, и инструменту goReflect для их модификации.

Заключение

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


Источник: securelist.ru

Комментарии: