• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Raccoon Stealer v2 – Часть 2: Углубленный анализ

yashechka

Генератор контента.Фанат Ильфака и Рикардо Нарвахи
Эксперт
Регистрация
24.11.2012
Сообщения
2 344
Реакции
3 563
Введение

Raccoon — это вредоносное ПО для кражи информации, подобное похитителям криптовалютных кошельков, таким как AgentTesla, Formbook, Redline и Vidar. В марте 2022 года Raccoon Team объявила о своем временном уходе из игры из-за отсутствия членов команды, связанных с конфликтом между Украиной и Россией, который начался в феврале 2022 года на разных форумах (например, xss.pro). Они также упомянули, что работают над новой версией вредоносного ПО.

Этот пост в блоге представляет собой технический анализ новой автономной версии Raccoon Stealer 2.0. Авторы объявили, что вредоносное ПО также доступно в формате DLL или может быть встроено в другие PE.

Ссылка на анализируемый образец: https://bazaar.abuse.ch/sample/022432f770bf0e7c5260100fcde2ec7c49f68716751fd7d8b9e113bf06167e03/

Эта статья следует за первой публикацией о Raccoon Stealer v2 (https://blog.sekoia.io/raccoon-stealer-v2-part-1-the-return-of-the-dead/) и посвящена подробному анализу функций и возможностей вредоносных программ.

Технический обзор

Raccoon Stealer v2 написан на C/C++ и ASM, отдельная версия весит примерно 56 КБ, вредоносное ПО обфусцирует его конфигурацию и строки. Он также выполняет динамическое связывание. Связь с его серверами управления и контроля осуществляется по протоколу HTTP; при обмене с сервером злоумышленника не используется шифрование или обфускация данных.

Raccoon v2 нацелен на различные криптокошельки, извлекает файлы cookie и сохраняет номера кредитных карт из браузеров (Edge, Firefox и Chrome).

Динамическое связывание во время выполнения

Первая задача вредоносной программы — связать функции библиотек, изначально PE инициирует дескрипторы для "Shell32.dll", "WinInt.dll", "Crypt32.dll", "Ole32.dll", "User32.dll", "Advapi32.dll" и "Kernel32.dll". В отличие от других вредоносных программ того же семейства, Raccoon не скрывает загрузку "LoadLibrary" и "GetProcAddress" [T1055.001 ], более того, импортированные функции из различных библиотек хранятся в открытом виде.

1656998278318.png


Методы обфускации

После того, как функции импортированы, Raccoon деобфусцирует [T1140 ] список строк, используемых для настройки командной связи и операций по удалению данных. Этот метод обфускации часто применяется в других вредоносных программах (https://blog.sekoia.io/mars-a-red-hot-information-stealer/). Запутанные строки представляют собой зашифрованные с помощью RC4 строки [T1027], хранящиеся в base64. В образце использовались два разных ключа RC4: один для расшифровки строк, используемых позже в программе, а второй — для расшифровки списка C2.

1656998294616.png


1656998302257.png


logins.json
\autofill.txt
\cookies.txt
\passwords.txt
---
--
*/*
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Content-Type: multipart/form-data; boundary=
Content-Type: text/plain;
User Data
wallets
wlts_
ldr_


Как упоминалось в начале этого раздела, Raccoon Stealer использовал другой ключ для расшифровки URL-адресов управления и контроля; деобфускированные значения хранятся в массиве. Этот массив может принимать до 5 значений, которые мы оцениваем как способность вредоносного ПО иметь резервный экземпляр С2 для обеспечения устойчивости.

1656998320871.png



Деобфусцированный C2 в проанализированном нами образце:
1656998328373.png


Мьютекс

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

1656998336980.png


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

Проверка хоста

Затем вредоносное ПО проверяет привилегии запущенного процесса и возвращает ноль, если S-I-D (идентификатор безопасности) равен S-1-5-18, что означает NT Authority\System. Однако эта функция также возвращает ноль, если процесс не может ни получить информацию о токене, ни преобразовать свой SID в строковый тип.

1656998347370.png


Если разрешение процесса отличается от NT Authority\System или процесс не может получить информацию о своем маркере, вредоносная программа не выполняет следующую функцию, которая зацикливается на запущенных процессах [T1057]. Опять же, результат этой функции не имеет решающего значения для остальной части выполнения; возвращаемое значение немедленно стирается следующей инструкцией. (mov eax, некоторое значение).

1656998357069.png


Nb: это неиспользование возвращаемого значения, вероятно, указывает на то, что Raccoon Stealer v2 все еще находится в стадии разработки.

Первоначальная связь C2

После того, что можно считать фазой инициации, вредоносное ПО начинает устанавливать свое первое подключение к серверу управления и контроля [T1041].

Во-первых, он получает MachineGuid, читая реестр [T1012 ], чтобы идентифицировать зараженный хост: HKLM:\SOFTWARE\Microsoft\Cryptography\MachineGuid.

1656998368058.png


Затем он считывает имя пользователя из библиотеки Adavapi32.

1656998376183.png



В итоге данные объединяются в следующую структуру:

1656998383598.png


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

C2 отвечает важной конфигурацией в виде простого текста, который содержит следующую информацию:

- Загрузка URL-адресов DLL;

- Запрашиваемые функции:

-- Сделать скриншот (ср.: `scrnsht_`);

-- Исследование кеша десктопного приложения Telegram (ср.: `tlgrm_`);


-- Установка и выполнение следующего этапа (ср.: `ldr_1`);

- Расширения браузера для поиска (ср.: `ews_`);

- Интересующие криптографические кошельки (см.: `wlts_`);

- Маркер, используемый для определения конечной точки HTTP C2 для дальнейшего взаимодействия.

1656998412716.png


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

Настройка DLL

Как показано в предыдущем разделе, вредоносное ПО извлекает информацию об URL-адресах, на которых размещены следующие библиотеки DLL для загрузки [T1105 ]:

* nss3.dll
* nssdbm3.dll
* msvcp140.dll
* vcruntime140.dll
* mozglue.dll
* freebl3.dll
* softokn3.dll
* sqlite3.dll


Это законные сторонние библиотеки DLL, позволяющие вредоносным программам собирать данные о зараженном хосте.

1656998431114.png


1656998437821.png


После анализа списка DLL вредоносная программа связывается с другим сервером управления и контроля для их загрузки. Затем библиотеки DLL дропаются на зараженный хост.

Примечание. На данном этапе библиотеки в память не загружаются.

Снятие отпечатков хоста

Raccoon снимает отпечатки зараженного хоста и собирает следующую информацию [T1082]:

- Идентификатор пользователя
- Часовой пояс [T1614]
- Вверсия ОС
- Архитектура хоста
- Информация о процессоре
- Объем оперативной памяти
- Информация об устройствах отображения
- Список установленных приложений [T1518 ]


1656998464464.png


Вся информация собирается в файл с именем "System Info.txt", который отправляется на сервер C2 в запросе POST с типом содержимого "application/x-object". На этот раз URL-адрес C2 изменяется, токен, извлеченный из конфигурации (токен, полученный в первом HTTP-ответе), используется в качестве новой конечной точки HTTP.

1656998473450.png


Общая картина конфигурации

Как описано в разделе "Инициация связи C2", образец получает конфигурацию с определенной структурой. Каждая строка конфигурации, основанная на тексте, определяет тип и способ сбора информации о хосте. "wlts_" и "ews_" — это префиксы, используемые в конфигурации, "wlts_" обозначает кошельки, а "ews_" веб-расширение для браузера, как показано ниже в двух примерах конфигурации:

1656998487236.png


Конфигурация расширений браузера определяется тремя значениями, разделенными точкой с запятой: имя каталога расширения браузера, имя и тип расширения, тип расширения может быть "Настройки локального расширения" или "IndexedDB".

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

Краткое описание функций стилинга

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

1. Использует sqlite3.dll для получения информации о кредитной карте, файлов cookie и сохраненных паролей в браузере (автозаполнение) [T1539] [T1555.003]

2. Использует mozglue3.dll для получения logins.json, файлов cookie и истории из Firefox [];

3. Разбирает полученную конфигурацию для поиска конкретных криптокошельков [T1005];

4. Находит файл с именем `wallet.dat` [T1005];

5. Захватывает файлы по заданному в конфигурации шаблону; [опционально] [T1119 ]

6. Исследуtт кеш Telegram Desktop; [по желанию]

7. Делает снимок рабочего стола зараженного хоста; [опционально] [T1113 ]

8. Загружает и выполняет следующий этап. [опционально] [T1106 ]

1656998518962.png


Извлечение данных с помощью sqlite3.dll

Первая функция, отвечающая за кражу данных на зараженном хосте, перебирает файлы для поиска "данных пользователя" (браузеры Edge и Chrome) и имен файлов "pera".

1656998528262.png


Как только файл найден, вредоносная программа запускает выполнение списка функций, которые выполняют запросы sqlite, затем их результаты анализируются и форматируются для отправки на сервер C2.

Следующие два снимка экрана являются примерами SQL-запросов для получения [T1539] [T1555.003]:

1. куки

2. информация о кредитных картах (имя владельца, номер, срок действия)

1656998540381.png


Наконец, функция проанализирует полученную конфигурацию (например, "ews_") и найдет каталог расширений браузера (обычно расположенный в папке AppData\Local\Google\User Data\Default\Extensions для Google Chrome).

Когда данные собираются из разных источников, вредоносное ПО форматирует эти данные перед отправкой на сервер C2.

Интересное наблюдение: для каждой функции, которая использует экспортированные функции sqlite3.dll, вредоносное ПО переназначает импорты ("GetProcAddress"). Аналогичное поведение наблюдается и для других загружаемых DLL.

1656998560968.png


Извлечение данных с помощью nss3.dll

Процесс аналогичен nss3.dll, вредоносная программа ищет определенные файлы, соответствующие известным шаблонам, связанным с веб-браузером.

На этот раз он нацелен на файлы cookie, файлы logins.json и историю браузера [T1539] [T1555.003].

1656998577096.png


Wlts_ извлечение

C2 отправляет список кошельков для поиска на зараженном хосте, эти кошельки имеют префикс "wlts_". Метод прост: он перебирает конфигурацию, когда первые шесть байтов совпадают с "wlts_", затем Raccoon Stealer анализирует оставшуюся часть строки конфигурации для поиска определенных файловых шаблонов. В случае совпадения шаблона файл копируется и отправляется на сервер C2 [T1005].

1656998585343.png


1656998597022.png


1. Перебирает файлы и каталоги, пока шаблон не совпадет

2. Создает копию файла

3. Форматирует эксфильтрованные данные перед отправкой их на C2.

Опять же, если кошелек найден, на C2 отправляется HTTP-запрос POST с копией кошелька, записанной в теле; в противном случае запрос не делается.

Wallet.dat

В этой функции Raccoon Stealer перебирает различные каталоги для поиска файлов с именем wallet.dat (биткойн-кошелек). Никакая конкретная операция не выполняется с этим файлом [T1005] [T1083].

1656998609791.png


Захват файлов

В конфигурации вредоносная программа может получить следующую строку:

1656998621117.png


Приведенная выше конфигурация указывает вредоносной программе искать все текстовые файлы (.txt) в папке на рабочем столе [T1083] [T1119]. Никакая конкретная операция не выполняется над именем файла или его содержимым. В случае, если файл соответствует заданному шаблону, копия отправляется на C2.

Исследование кеша Telegram

Последняя функция кражи, используемая Raccoon Stealer, состоит в исследовании данных кеша Telegram Desktop, расположенных в каталоге "Telegram Desktop\tdata".

Соответствующая строка конфигурации:

1656998631962.png


Каталог tdata приложения Telegram Desktop используется для хранения кеша приложения, в котором хранятся ценные данные, например файлы cookie сеанса.

Снимок экрана

Еще одна возможность Raccoon Stealer — сделать снимок экрана и отправить его на сервер C2 [T1113]. На рисунке ниже показан процесс, инициирующий контекст устройства в обработчике окна рабочего стола, за которым следует захват области и ее преобразование в растровое изображение.

1656998640124.png


Операция создания скриншота не является обязательной в рабочем процессе Raccoon. Условием для выполнения этой функции является получение в конфигурации строки "crnsht_" (scrnsht_Screenshot.jpeg|1"), где имя снимка "Screenshot.jpeg" будет начинаться с префикса "—" перед эксфильтрацией в Сервер C2 снова с типом содержимого "application/x-object".

1656998648596.png


Загрузчик следующего этапа

Наконец, вредоносная программа завершает обработку конфигурации, отправленной в первом HTTP-ответе, анализируя ее последнюю строку:

1656998658920.png


Эта инструкция относится к конфигурации загрузчика, структура которой "ldr_X:URL|каталог выполнения|тип PE". Эта конфигурация отвечает за загрузку и выполнение следующего этапа [T1106] [T1407 ]. Выбор полезной нагрузки остается за хакером, купившим Raccoon. В этом анализе сброшенная и выполненная полезная нагрузка является обычным трояном.

"X" — это целое число, значение которого указывает, какой тип загрузки следует использовать:

- "3" указывает на непосредственное выполнение полезной нагрузки (в этом случае расследование не проводилось из-за отсутствия образца, соответствующего этому сценарию);

- "2" не реализовано;

- "1" означает, что полезная нагрузка находится на удаленном хосте и должна быть загружена перед выполнением.

1656998673047.png


Nb: мы считаем, что последний аргумент (тип PE) в строке конфигурации, вероятно, позволяет Raccoon Stealer загружать другие двоичные файлы, кроме исполняемых, например шелл-код или DLL, которые могут быть встроены в двоичный файл Raccoon Stealer.

Сводная информация о связи командования и управления

После загрузки и выполнения следующего этапа работа Raccoon Stealer выполнена. Подводя итог, см. сетевой захват анализируемого примера ниже, который показывает типичный обмен между сервером управления и контроля и зараженным хостом:

1656998683061.png


1. Регистируется новый зараженный хост и получите конфигурацию стилера;

2. Загружается библиотека DLL;

3. Отправляется System Info.txt с информацией об отпечатке хоста;

4. Отправляются украденные данные (кошельки, пароли и т. д.);

5. Отправляется файл ---Screenshot.jpeg;

6. Загружается следующая стадию заражения.

Правило YARA

Как описано в разделе о методах обфускации, новая версия Raccoon Stealer скрывает свои строки и конфигурацию, используя очень распространенный метод (base64, закодированный с помощью RC4). Следующее правило YARA соответствует реализованному алгоритму дешифрования RC4 и по крайней мере 20 экземплярам процедуры деобфускации строк.

1656998702710.png


Экстрактор конфигурации

Сценарий извлечения python работает исключительно для автономного PE Raccoon Stealer v2 и доступен на SEKOIA. Сообщество IO Github. (https://github.com/SEKOIA-IO/Community/blob/main/scripts/raccoon_stealer_v2_c2_extrator.py)

Целевые браузерные расширения и кошельки

Целевые кошельки


  • Bitcoin
  • Exodus
  • Atomic
  • JaxxLiberty
  • Binance
  • Coinomi
  • Electrum
  • Electrum-LTC
  • ElectrumCash
  • Guarda
  • BlockstreamGreen
  • Ledger
  • Daedalus
  • MyMonero
  • Monero
  • Wasabi

Целевые веб-расширения для браузера
  • MetaMask
  • TronLink
  • BinanceChain
  • Ronin
  • MetaX
  • XDEFI
  • WavesKeeper
  • Solflare
  • Rabby
  • CyanoWallet
  • Coinbase
  • AuroWallet
  • KHC
  • TezBox
  • Coin98
  • Temple
  • ICONex
  • Sollet
  • CloverWallet
  • PolymeshWallet
  • NeoLine
  • Keplr
  • TerraStation
  • Liquality
  • SaturnWallet
  • GuildWallet
  • Phantom
  • TronLink
  • Brave
  • MEW_CX
  • TON
  • Goby

Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://blog.sekoia.io/raccoon-stealer-v2-part-2-in-depth-analysis/
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх