erid: 2SDnjeU7TaZ erid: 2SDnjeU7TaZ
Премия «Киберпросвет» 2024
Анализ вредоносного ПО Thunder
Анализ вредоносного ПО Thunder
03.08.2023

d1ub2l2fkz7wawnuem643nvl6zqhfapz.png



Центр мониторинга и реагирования UserGate

Сводка

13-го апреля 2023 года в мессенджере Telegram обнаружена рассылка с архивом 这几笔错误的账单我圈出来了你看看.zip:

Screenshot_5.png

Рисунок 1 – Сообщение с архивом

В результате анализа удалось выяснить, что архив содержит вредоносное программное обеспечение (троян), нацеленное на пользователей ОС семейства Windows, краткая схема работы которого представлена на следующем рисунке:

2.jpg

Рисунок 2 – Схема работы ВПО 

где 1 – получение архива, 2 – ручное извлечение и запуск пользователем загрузчика ВПО, 3 – подгрузка ВПО с сервера злоумышленника в сети CloudFlare, 4 – передача управления основной вредоносной программе, 5 – подключение к серверу управления и получение команд по нестандартному протоколу поверх TCP-транспорта. Сам вредоносный код при этом скрыт несколькими слоями упаковки и осуществляет закрепление в системе через планировщик задач.

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

Технический анализ

Загрузка

В архиве находится одноимённый EXE файл (MD5: 50351169d2ee00143091254fc7e8b3ab). Если пользователь запустит файл, то программа скачает ряд файлов с сервера imgcache.vip033324[.]xyz:

Screenshot_6.png

Рисунок 1 – Фрагмент дизассемблированного кода загрузчика

Перечень загружаемых файлов и путей их сохранения:

URL на сервере http://imgcache.vip033324[.]xyz

Локальный путь сохранения файла в директорию C:\\ProgramData\\

MD5

/picturess/2023/30.45.txt

setting.ini

9dd530e124f1c6425e975fa9b66cee13

/picturess/2023/LiveUpdate.exe

Thunder\\LiveUpdate.exe, ThunderUpdate\\LiveUpdate.exe

96e4b47a136910d6f588b40d872e7f9d

/picturess/2023/Mediax.xml

Thunder\\Media.xml

3668799602e1e5b94bf893141b4b76e6

/picturess/2023/RSD.xml

ThunderUpdate\\Media.xml

481b4106e3f1e40a98e3e89c385ecc7b

/picturess/2023/update.log

Thunder\\update.log

8c4862a32095d0b71fcf8fb0b244161a

/picturess/2023/LiveUpdate360.dat

Thunder\\LiveUpdate.dat, ThunderUpdate\\LiveUpdate.dat

f149d3f3ef0361ebe4d346811f29b527

Распаковка LiveUpdate

После этого вредонос запускает скачанную программу LiveUpdate.exe. Эта программа обфусцирована с помощью упаковщика с открытым исходным кодом UPX.

Распаковка LiveUpdate.dat

После самораспаковки UPX, LiveUpdate.exe разархивирует и загружает в память содержимое файла LiveUpdate.dat, являющегося ZIP-архивом, зашифрованным с паролем “3D9E9F5F9B2B40E1A9158385E2E4B660”.

Screenshot_51112124.png

Рисунок 2 – Фрагмент дизассемблированного кода LiveUpdate.exe

Из архива в память загружаются два файла – _TUProj.dat (80 КБ) и _TUProjDT.dat (4 байта). В файле _TUProj.dat располагаются различные скрипты LUA, исполняемые вкомпилированной в LiveUpdate.exe виртуальной машиной языка LUA. В том числе среди скриптов обнаруживается ClientScript:

Screenshot_7.png

Рисунок 3 – Фрагмент LUA-скрипта из _TUProj.dat

В представленном коде происходит выделение памяти на куче для массива чисел из переменной g_table_char (24), преобразуемого в массив байт и загружаемого в выделенную память (29). После загрузки по данному адресу создаётся новый поток выполнения (38). После этого скрипт в цикле загружает картинку с сайта baidu.com (генерация мусорного легитимного трафика). 

Распаковка Media.xml

Новый поток кода, полученный из переменной g_table_char, считывает скачанный ранее файл Media.xml из текущей рабочей директории программы и правит первые 4 байта файла: buf[i] = (buf[i] ^ 0x30) + 0x30 ( i <= 4). 

Screenshot_8.png

Рисунок 4 – Чтение и корректировка файла Media.xml в коде g_table_char

После исправления обнаруживается, что данный файл является исполняемым файлом Windows формата PE.

Screenshot_9.png

Рисунок 5 – Фрагмент исправленного заголовка Media.xml 

Распаковка update.log

Далее загруженный файл Media.xml получает управление в своей точке входа и загружает файл update.log, повторяя описанную ранее процедуру декодирования с байтом 0x30 для всего файла.

Screenshot_10.png

Рисунок 6 – Декодирование update.log

Данный файл после декодирования также представляет из себя исполняемую библиотеку MS Windows, в которую передаётся управление. Расшифрование внутреннего файла в update.log Большая часть библиотеки update.log также зашифрована, после дизассемблирования в ней можно обнаружить лишь 28 функций. При её запуске происходит циклическое расшифрование 1105920 байт по адресу 0x04010A0 XORом на 40-битном ключе 0xBE16CF52CD:

Screenshot_11.png

Рисунок 7 – Расшифрование в update.log

Расшифрованные данные так же представляют из себя DLL-библиотеку. Единственной экспортируемой процедурой этой библиотеки (помимо DLLMain) является процедура под названием Shellex. Далее управление переходит в неё.

Закрепление

Вредонос закрепляет свой запуск в системе путём добавления задач ThunderLiveUpdate и “Ñ¸À׸üзþÎñ” (имя нечитаемо, вероятно, из-за ошибки кодировки). 

Screenshot_13.png

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

Вредонос получает IP-адрес сервера злоумышленников из скачанного на первом этапе файла setting.ini:

Screenshot_12.png

Рисунок 8 – IP-адрес сервера злоумышленников в setting.ini

Вредоносный агент взаимодействует с сервером злоумышленника по нестандартному TCP-протоколу (порт 18076):

 Screenshot_13.png

Рисунок 9 – Фрагмент трафика взаимодействия с сервером злоумышленников

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

Screenshot_14.png

Рисунок 10 – Кодирование / Декодирование пакета

Если декодировать таким образом представленный ранее пакет, то можно обнаружить следующие данные:

Screenshot_15.png

Рисунок 11 – Фрагмент декодированного пакета

Первые три байта 0x687620 являются сигнатурой протокола “hx ” (в закодированном виде – 0xF6E6AE). Её инициализация также обнаружена в коде:

 Screenshot_16.png

 Рисунок 12 – Инициализация сигнатуры протокола

По этой сигнатуре и порту назначения возможно обнаружение такого трафика в сети. Впрочем, в других версиях и модификациях ВПО эти данные могут быть изменены. Следующие 4 байта заголовка – полный размер пакета в формате Little Endian (в приведённом выше примере – CB030000 = 0x3CB).

Анализ возможностей

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

  1. различные форматы удалённого администрирования;
  2. взаимодействие с периферийными устройствами;
  3. контроль файловой системы;
  4. осуществление сетевой активости;
  5. зачистка следов веб активности;
  6. логирование действий и запись экрана;
  7. похищение аутентификационных данных;
  8. обнаружение антивирусного ПО;
  9. подгрузки и выполнения произвольного кода.

В качестве одного из способов удалённого управления злоумышленник может при необходимости активировать сервис RDP на компьютере:

Screenshot_17.png

Рисунок 13 – Фрагмент процедуры активации RDP

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

Screenshot_18.png

 Рисунок 14 – Процедура активации учетной записи guest

Интересно также целевое назначение вредоноса. Ввиду того, что он ориентирован на китайских пользователей, в нем реализован функционал взаимодействия с китайской социальной сетью и мессенджером qq.com. В результате анализа различных скриптов автоматизации использования API qq.com (https://gist.github.com/kagurazakasanae/a76b01f60c89aa3866dfc689345a3faf,
https://github.com/LeoHuang2015/qqloginjs/blob/master/autologin_quick.py) удалось разобрать некоторые процедуры такого взаимодействия. 

Сначала в процедуре осуществляется аутентификация в qq под всеми доступными аккаунтами текущего пользователя,

Screenshot_19.png

Рисунок 15 – Фрагмент процедуры аутентификации в qq.com  

затем происходит получение списка друзей пользователя:

Screenshot_20.png

Рисунок 16 – Фрагмент процедуры получения списка друзей пользователя

и групп, в которых он состоит:

Screenshot_21.png

Рисунок 17 – Фрагмент процедуры получения групп пользователя

Для каждой группы предпринимается попытка получить список пользователей этой группы: 

Screenshot_22.png

Рисунок 18 – Фрагмент процедуры получения списка пользователей группы 

Среди прочего в троян встроены команды завершения процессов различных браузеров и очистки их кэша:

Screenshot_23.png

Рисунок 19 – Команды по очистке следов активности

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

Идентификация

MD5-хеш исходного архива: 62275e818ff92c030f75fdb89cddd40b, на текущий момент некоторые антивирусные решения уже отмечают его как троян семейства “lotok” (https://www.virustotal.com/gui/file/fe00e9c691f85871adfd4d8b43e6ba4a797f89cde8f 5f9239884c60809b475ac/detection), однако подробной информации об этом ВПО нет. 

Screenshot_24.png

Рисунок 20 – Идентификация трояна на VirtusTotal 

Далее приведен перечень возможных индикаторов компрометации системы.

Создаваемые файлы

C:\ProgramData\setting.ini

C:\ProgramData\Thunder\LiveUpdate.exe,

C:\ProgramData\ThunderUpdate\LiveUpdate.exe

C:\ProgramData\Thunder\Media.xml

C:\ProgramData\ThunderUpdate\Media.xml

C:\ProgramData\Thunder\update.log

C:\ProgramData\Thunder\LiveUpdate.dat,

C:\ProgramData\ThunderUpdate\LiveUpdate.dat

 Задачи в планировщике задач Windows

ThunderLiveUpdate

ѸÀ׸üзþÎñ

 Сетевая коммуникация

imgcache.vip033324.xyz

43.249.30.45

erid: 2SDnjdbjuoP erid: 2SDnjdbjuoP

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