Введение
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 ], более того, импортированные функции из различных библиотек хранятся в открытом виде.
Методы обфускации
После того, как функции импортированы, Raccoon деобфусцирует [T1140 ] список строк, используемых для настройки командной связи и операций по удалению данных. Этот метод обфускации часто применяется в других вредоносных программах (https://blog.sekoia.io/mars-a-red-hot-information-stealer/). Запутанные строки представляют собой зашифрованные с помощью RC4 строки [T1027], хранящиеся в base64. В образце использовались два разных ключа RC4: один для расшифровки строк, используемых позже в программе, а второй — для расшифровки списка C2.
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 для обеспечения устойчивости.
Деобфусцированный C2 в проанализированном нами образце:
Мьютекс
После динамической компоновки во время выполнения и деобфускации строки похититель проверяет наличие мьютекса. В проанализированной нами выборке его значение равно 8724643052. Если мьютекс уже существует, процесс завершается, в противном случае вредоносная программа создает его и продолжает работу.
Стоит отметить, что проверка мьютекса — это единственная обнаруженная нами в образце технология, которая предотвращает выполнение вредоносного ПО.
Проверка хоста
Затем вредоносное ПО проверяет привилегии запущенного процесса и возвращает ноль, если S-I-D (идентификатор безопасности) равен S-1-5-18, что означает NT Authority\System. Однако эта функция также возвращает ноль, если процесс не может ни получить информацию о токене, ни преобразовать свой SID в строковый тип.
Если разрешение процесса отличается от NT Authority\System или процесс не может получить информацию о своем маркере, вредоносная программа не выполняет следующую функцию, которая зацикливается на запущенных процессах [T1057]. Опять же, результат этой функции не имеет решающего значения для остальной части выполнения; возвращаемое значение немедленно стирается следующей инструкцией. (mov eax, некоторое значение).
Nb: это неиспользование возвращаемого значения, вероятно, указывает на то, что Raccoon Stealer v2 все еще находится в стадии разработки.
Первоначальная связь C2
После того, что можно считать фазой инициации, вредоносное ПО начинает устанавливать свое первое подключение к серверу управления и контроля [T1041].
Во-первых, он получает MachineGuid, читая реестр [T1012 ], чтобы идентифицировать зараженный хост: HKLM:\SOFTWARE\Microsoft\Cryptography\MachineGuid.
Затем он считывает имя пользователя из библиотеки Adavapi32.
В итоге данные объединяются в следующую структуру:
Отформатированные данные отправляются на C2 через HTTP в запросе POST на сервер. Интересно отметить, что цикл запрашивает список ранее деобфускированных C2; вредоносное ПО запрашивает каждый C2 в своем списке; первый, кто ответит данными, назначается официальным C2 для следующего сообщения.
C2 отвечает важной конфигурацией в виде простого текста, который содержит следующую информацию:
- Загрузка URL-адресов DLL;
- Запрашиваемые функции:
-- Сделать скриншот (ср.: `scrnsht_`);
-- Исследование кеша десктопного приложения Telegram (ср.: `tlgrm_`);
-- Установка и выполнение следующего этапа (ср.: `ldr_1`);
- Расширения браузера для поиска (ср.: `ews_`);
- Интересующие криптографические кошельки (см.: `wlts_`);
- Маркер, используемый для определения конечной точки HTTP C2 для дальнейшего взаимодействия.
Все описанные конфигурации не всегда настраиваются; например, снимок экрана или загрузчик следующего этапа часто отсутствуют, они могут отсутствовать по умолчанию.
Настройка DLL
Как показано в предыдущем разделе, вредоносное ПО извлекает информацию об URL-адресах, на которых размещены следующие библиотеки DLL для загрузки [T1105 ]:
* nss3.dll
* nssdbm3.dll
* msvcp140.dll
* vcruntime140.dll
* mozglue.dll
* freebl3.dll
* softokn3.dll
* sqlite3.dll
Это законные сторонние библиотеки DLL, позволяющие вредоносным программам собирать данные о зараженном хосте.
После анализа списка DLL вредоносная программа связывается с другим сервером управления и контроля для их загрузки. Затем библиотеки DLL дропаются на зараженный хост.
Примечание. На данном этапе библиотеки в память не загружаются.
Снятие отпечатков хоста
Raccoon снимает отпечатки зараженного хоста и собирает следующую информацию [T1082]:
- Идентификатор пользователя
- Часовой пояс [T1614]
- Вверсия ОС
- Архитектура хоста
- Информация о процессоре
- Объем оперативной памяти
- Информация об устройствах отображения
- Список установленных приложений [T1518 ]
Вся информация собирается в файл с именем "System Info.txt", который отправляется на сервер C2 в запросе POST с типом содержимого "application/x-object". На этот раз URL-адрес C2 изменяется, токен, извлеченный из конфигурации (токен, полученный в первом HTTP-ответе), используется в качестве новой конечной точки HTTP.
Общая картина конфигурации
Как описано в разделе "Инициация связи C2", образец получает конфигурацию с определенной структурой. Каждая строка конфигурации, основанная на тексте, определяет тип и способ сбора информации о хосте. "wlts_" и "ews_" — это префиксы, используемые в конфигурации, "wlts_" обозначает кошельки, а "ews_" веб-расширение для браузера, как показано ниже в двух примерах конфигурации:
Конфигурация расширений браузера определяется тремя значениями, разделенными точкой с запятой: имя каталога расширения браузера, имя и тип расширения, тип расширения может быть "Настройки локального расширения" или "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 ]
Извлечение данных с помощью sqlite3.dll
Первая функция, отвечающая за кражу данных на зараженном хосте, перебирает файлы для поиска "данных пользователя" (браузеры Edge и Chrome) и имен файлов "pera".
Как только файл найден, вредоносная программа запускает выполнение списка функций, которые выполняют запросы sqlite, затем их результаты анализируются и форматируются для отправки на сервер C2.
Следующие два снимка экрана являются примерами SQL-запросов для получения [T1539] [T1555.003]:
1. куки
2. информация о кредитных картах (имя владельца, номер, срок действия)
Наконец, функция проанализирует полученную конфигурацию (например, "ews_") и найдет каталог расширений браузера (обычно расположенный в папке AppData\Local\Google\User Data\Default\Extensions для Google Chrome).
Когда данные собираются из разных источников, вредоносное ПО форматирует эти данные перед отправкой на сервер C2.
Интересное наблюдение: для каждой функции, которая использует экспортированные функции sqlite3.dll, вредоносное ПО переназначает импорты ("GetProcAddress"). Аналогичное поведение наблюдается и для других загружаемых DLL.
Извлечение данных с помощью nss3.dll
Процесс аналогичен nss3.dll, вредоносная программа ищет определенные файлы, соответствующие известным шаблонам, связанным с веб-браузером.
На этот раз он нацелен на файлы cookie, файлы logins.json и историю браузера [T1539] [T1555.003].
Wlts_ извлечение
C2 отправляет список кошельков для поиска на зараженном хосте, эти кошельки имеют префикс "wlts_". Метод прост: он перебирает конфигурацию, когда первые шесть байтов совпадают с "wlts_", затем Raccoon Stealer анализирует оставшуюся часть строки конфигурации для поиска определенных файловых шаблонов. В случае совпадения шаблона файл копируется и отправляется на сервер C2 [T1005].
1. Перебирает файлы и каталоги, пока шаблон не совпадет
2. Создает копию файла
3. Форматирует эксфильтрованные данные перед отправкой их на C2.
Опять же, если кошелек найден, на C2 отправляется HTTP-запрос POST с копией кошелька, записанной в теле; в противном случае запрос не делается.
Wallet.dat
В этой функции Raccoon Stealer перебирает различные каталоги для поиска файлов с именем wallet.dat (биткойн-кошелек). Никакая конкретная операция не выполняется с этим файлом [T1005] [T1083].
Захват файлов
В конфигурации вредоносная программа может получить следующую строку:
Приведенная выше конфигурация указывает вредоносной программе искать все текстовые файлы (.txt) в папке на рабочем столе [T1083] [T1119]. Никакая конкретная операция не выполняется над именем файла или его содержимым. В случае, если файл соответствует заданному шаблону, копия отправляется на C2.
Исследование кеша Telegram
Последняя функция кражи, используемая Raccoon Stealer, состоит в исследовании данных кеша Telegram Desktop, расположенных в каталоге "Telegram Desktop\tdata".
Соответствующая строка конфигурации:
Каталог tdata приложения Telegram Desktop используется для хранения кеша приложения, в котором хранятся ценные данные, например файлы cookie сеанса.
Снимок экрана
Еще одна возможность Raccoon Stealer — сделать снимок экрана и отправить его на сервер C2 [T1113]. На рисунке ниже показан процесс, инициирующий контекст устройства в обработчике окна рабочего стола, за которым следует захват области и ее преобразование в растровое изображение.
Операция создания скриншота не является обязательной в рабочем процессе Raccoon. Условием для выполнения этой функции является получение в конфигурации строки "crnsht_" (scrnsht_Screenshot.jpeg|1"), где имя снимка "Screenshot.jpeg" будет начинаться с префикса "—" перед эксфильтрацией в Сервер C2 снова с типом содержимого "application/x-object".
Загрузчик следующего этапа
Наконец, вредоносная программа завершает обработку конфигурации, отправленной в первом HTTP-ответе, анализируя ее последнюю строку:
Эта инструкция относится к конфигурации загрузчика, структура которой "ldr_X:URL|каталог выполнения|тип PE". Эта конфигурация отвечает за загрузку и выполнение следующего этапа [T1106] [T1407 ]. Выбор полезной нагрузки остается за хакером, купившим Raccoon. В этом анализе сброшенная и выполненная полезная нагрузка является обычным трояном.
"X" — это целое число, значение которого указывает, какой тип загрузки следует использовать:
- "3" указывает на непосредственное выполнение полезной нагрузки (в этом случае расследование не проводилось из-за отсутствия образца, соответствующего этому сценарию);
- "2" не реализовано;
- "1" означает, что полезная нагрузка находится на удаленном хосте и должна быть загружена перед выполнением.
Nb: мы считаем, что последний аргумент (тип PE) в строке конфигурации, вероятно, позволяет Raccoon Stealer загружать другие двоичные файлы, кроме исполняемых, например шелл-код или DLL, которые могут быть встроены в двоичный файл Raccoon Stealer.
Сводная информация о связи командования и управления
После загрузки и выполнения следующего этапа работа Raccoon Stealer выполнена. Подводя итог, см. сетевой захват анализируемого примера ниже, который показывает типичный обмен между сервером управления и контроля и зараженным хостом:
1. Регистируется новый зараженный хост и получите конфигурацию стилера;
2. Загружается библиотека DLL;
3. Отправляется System Info.txt с информацией об отпечатке хоста;
4. Отправляются украденные данные (кошельки, пароли и т. д.);
5. Отправляется файл ---Screenshot.jpeg;
6. Загружается следующая стадию заражения.
Правило YARA
Как описано в разделе о методах обфускации, новая версия Raccoon Stealer скрывает свои строки и конфигурацию, используя очень распространенный метод (base64, закодированный с помощью RC4). Следующее правило YARA соответствует реализованному алгоритму дешифрования RC4 и по крайней мере 20 экземплярам процедуры деобфускации строк.
Экстрактор конфигурации
Сценарий извлечения python работает исключительно для автономного PE Raccoon Stealer v2 и доступен на SEKOIA. Сообщество IO Github. (https://github.com/SEKOIA-IO/Community/blob/main/scripts/raccoon_stealer_v2_c2_extrator.py)
Целевые браузерные расширения и кошельки
Целевые кошельки
Целевые веб-расширения для браузера
Переведено специально для xss.pro
Автор перевода: yashechka
Источник: https://blog.sekoia.io/raccoon-stealer-v2-part-2-in-depth-analysis/
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 ], более того, импортированные функции из различных библиотек хранятся в открытом виде.
Методы обфускации
После того, как функции импортированы, Raccoon деобфусцирует [T1140 ] список строк, используемых для настройки командной связи и операций по удалению данных. Этот метод обфускации часто применяется в других вредоносных программах (https://blog.sekoia.io/mars-a-red-hot-information-stealer/). Запутанные строки представляют собой зашифрованные с помощью RC4 строки [T1027], хранящиеся в base64. В образце использовались два разных ключа RC4: один для расшифровки строк, используемых позже в программе, а второй — для расшифровки списка C2.
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 для обеспечения устойчивости.
Деобфусцированный C2 в проанализированном нами образце:
Мьютекс
После динамической компоновки во время выполнения и деобфускации строки похититель проверяет наличие мьютекса. В проанализированной нами выборке его значение равно 8724643052. Если мьютекс уже существует, процесс завершается, в противном случае вредоносная программа создает его и продолжает работу.
Стоит отметить, что проверка мьютекса — это единственная обнаруженная нами в образце технология, которая предотвращает выполнение вредоносного ПО.
Проверка хоста
Затем вредоносное ПО проверяет привилегии запущенного процесса и возвращает ноль, если S-I-D (идентификатор безопасности) равен S-1-5-18, что означает NT Authority\System. Однако эта функция также возвращает ноль, если процесс не может ни получить информацию о токене, ни преобразовать свой SID в строковый тип.
Если разрешение процесса отличается от NT Authority\System или процесс не может получить информацию о своем маркере, вредоносная программа не выполняет следующую функцию, которая зацикливается на запущенных процессах [T1057]. Опять же, результат этой функции не имеет решающего значения для остальной части выполнения; возвращаемое значение немедленно стирается следующей инструкцией. (mov eax, некоторое значение).
Nb: это неиспользование возвращаемого значения, вероятно, указывает на то, что Raccoon Stealer v2 все еще находится в стадии разработки.
Первоначальная связь C2
После того, что можно считать фазой инициации, вредоносное ПО начинает устанавливать свое первое подключение к серверу управления и контроля [T1041].
Во-первых, он получает MachineGuid, читая реестр [T1012 ], чтобы идентифицировать зараженный хост: HKLM:\SOFTWARE\Microsoft\Cryptography\MachineGuid.
Затем он считывает имя пользователя из библиотеки Adavapi32.
В итоге данные объединяются в следующую структуру:
Отформатированные данные отправляются на C2 через HTTP в запросе POST на сервер. Интересно отметить, что цикл запрашивает список ранее деобфускированных C2; вредоносное ПО запрашивает каждый C2 в своем списке; первый, кто ответит данными, назначается официальным C2 для следующего сообщения.
C2 отвечает важной конфигурацией в виде простого текста, который содержит следующую информацию:
- Загрузка URL-адресов DLL;
- Запрашиваемые функции:
-- Сделать скриншот (ср.: `scrnsht_`);
-- Исследование кеша десктопного приложения Telegram (ср.: `tlgrm_`);
-- Установка и выполнение следующего этапа (ср.: `ldr_1`);
- Расширения браузера для поиска (ср.: `ews_`);
- Интересующие криптографические кошельки (см.: `wlts_`);
- Маркер, используемый для определения конечной точки HTTP C2 для дальнейшего взаимодействия.
Все описанные конфигурации не всегда настраиваются; например, снимок экрана или загрузчик следующего этапа часто отсутствуют, они могут отсутствовать по умолчанию.
Настройка DLL
Как показано в предыдущем разделе, вредоносное ПО извлекает информацию об URL-адресах, на которых размещены следующие библиотеки DLL для загрузки [T1105 ]:
* nss3.dll
* nssdbm3.dll
* msvcp140.dll
* vcruntime140.dll
* mozglue.dll
* freebl3.dll
* softokn3.dll
* sqlite3.dll
Это законные сторонние библиотеки DLL, позволяющие вредоносным программам собирать данные о зараженном хосте.
После анализа списка DLL вредоносная программа связывается с другим сервером управления и контроля для их загрузки. Затем библиотеки DLL дропаются на зараженный хост.
Примечание. На данном этапе библиотеки в память не загружаются.
Снятие отпечатков хоста
Raccoon снимает отпечатки зараженного хоста и собирает следующую информацию [T1082]:
- Идентификатор пользователя
- Часовой пояс [T1614]
- Вверсия ОС
- Архитектура хоста
- Информация о процессоре
- Объем оперативной памяти
- Информация об устройствах отображения
- Список установленных приложений [T1518 ]
Вся информация собирается в файл с именем "System Info.txt", который отправляется на сервер C2 в запросе POST с типом содержимого "application/x-object". На этот раз URL-адрес C2 изменяется, токен, извлеченный из конфигурации (токен, полученный в первом HTTP-ответе), используется в качестве новой конечной точки HTTP.
Общая картина конфигурации
Как описано в разделе "Инициация связи C2", образец получает конфигурацию с определенной структурой. Каждая строка конфигурации, основанная на тексте, определяет тип и способ сбора информации о хосте. "wlts_" и "ews_" — это префиксы, используемые в конфигурации, "wlts_" обозначает кошельки, а "ews_" веб-расширение для браузера, как показано ниже в двух примерах конфигурации:
Конфигурация расширений браузера определяется тремя значениями, разделенными точкой с запятой: имя каталога расширения браузера, имя и тип расширения, тип расширения может быть "Настройки локального расширения" или "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 ]
Извлечение данных с помощью sqlite3.dll
Первая функция, отвечающая за кражу данных на зараженном хосте, перебирает файлы для поиска "данных пользователя" (браузеры Edge и Chrome) и имен файлов "pera".
Как только файл найден, вредоносная программа запускает выполнение списка функций, которые выполняют запросы sqlite, затем их результаты анализируются и форматируются для отправки на сервер C2.
Следующие два снимка экрана являются примерами SQL-запросов для получения [T1539] [T1555.003]:
1. куки
2. информация о кредитных картах (имя владельца, номер, срок действия)
Наконец, функция проанализирует полученную конфигурацию (например, "ews_") и найдет каталог расширений браузера (обычно расположенный в папке AppData\Local\Google\User Data\Default\Extensions для Google Chrome).
Когда данные собираются из разных источников, вредоносное ПО форматирует эти данные перед отправкой на сервер C2.
Интересное наблюдение: для каждой функции, которая использует экспортированные функции sqlite3.dll, вредоносное ПО переназначает импорты ("GetProcAddress"). Аналогичное поведение наблюдается и для других загружаемых DLL.
Извлечение данных с помощью nss3.dll
Процесс аналогичен nss3.dll, вредоносная программа ищет определенные файлы, соответствующие известным шаблонам, связанным с веб-браузером.
На этот раз он нацелен на файлы cookie, файлы logins.json и историю браузера [T1539] [T1555.003].
Wlts_ извлечение
C2 отправляет список кошельков для поиска на зараженном хосте, эти кошельки имеют префикс "wlts_". Метод прост: он перебирает конфигурацию, когда первые шесть байтов совпадают с "wlts_", затем Raccoon Stealer анализирует оставшуюся часть строки конфигурации для поиска определенных файловых шаблонов. В случае совпадения шаблона файл копируется и отправляется на сервер C2 [T1005].
1. Перебирает файлы и каталоги, пока шаблон не совпадет
2. Создает копию файла
3. Форматирует эксфильтрованные данные перед отправкой их на C2.
Опять же, если кошелек найден, на C2 отправляется HTTP-запрос POST с копией кошелька, записанной в теле; в противном случае запрос не делается.
Wallet.dat
В этой функции Raccoon Stealer перебирает различные каталоги для поиска файлов с именем wallet.dat (биткойн-кошелек). Никакая конкретная операция не выполняется с этим файлом [T1005] [T1083].
Захват файлов
В конфигурации вредоносная программа может получить следующую строку:
Приведенная выше конфигурация указывает вредоносной программе искать все текстовые файлы (.txt) в папке на рабочем столе [T1083] [T1119]. Никакая конкретная операция не выполняется над именем файла или его содержимым. В случае, если файл соответствует заданному шаблону, копия отправляется на C2.
Исследование кеша Telegram
Последняя функция кражи, используемая Raccoon Stealer, состоит в исследовании данных кеша Telegram Desktop, расположенных в каталоге "Telegram Desktop\tdata".
Соответствующая строка конфигурации:
Каталог tdata приложения Telegram Desktop используется для хранения кеша приложения, в котором хранятся ценные данные, например файлы cookie сеанса.
Снимок экрана
Еще одна возможность Raccoon Stealer — сделать снимок экрана и отправить его на сервер C2 [T1113]. На рисунке ниже показан процесс, инициирующий контекст устройства в обработчике окна рабочего стола, за которым следует захват области и ее преобразование в растровое изображение.
Операция создания скриншота не является обязательной в рабочем процессе Raccoon. Условием для выполнения этой функции является получение в конфигурации строки "crnsht_" (scrnsht_Screenshot.jpeg|1"), где имя снимка "Screenshot.jpeg" будет начинаться с префикса "—" перед эксфильтрацией в Сервер C2 снова с типом содержимого "application/x-object".
Загрузчик следующего этапа
Наконец, вредоносная программа завершает обработку конфигурации, отправленной в первом HTTP-ответе, анализируя ее последнюю строку:
Эта инструкция относится к конфигурации загрузчика, структура которой "ldr_X:URL|каталог выполнения|тип PE". Эта конфигурация отвечает за загрузку и выполнение следующего этапа [T1106] [T1407 ]. Выбор полезной нагрузки остается за хакером, купившим Raccoon. В этом анализе сброшенная и выполненная полезная нагрузка является обычным трояном.
"X" — это целое число, значение которого указывает, какой тип загрузки следует использовать:
- "3" указывает на непосредственное выполнение полезной нагрузки (в этом случае расследование не проводилось из-за отсутствия образца, соответствующего этому сценарию);
- "2" не реализовано;
- "1" означает, что полезная нагрузка находится на удаленном хосте и должна быть загружена перед выполнением.
Nb: мы считаем, что последний аргумент (тип PE) в строке конфигурации, вероятно, позволяет Raccoon Stealer загружать другие двоичные файлы, кроме исполняемых, например шелл-код или DLL, которые могут быть встроены в двоичный файл Raccoon Stealer.
Сводная информация о связи командования и управления
После загрузки и выполнения следующего этапа работа Raccoon Stealer выполнена. Подводя итог, см. сетевой захват анализируемого примера ниже, который показывает типичный обмен между сервером управления и контроля и зараженным хостом:
1. Регистируется новый зараженный хост и получите конфигурацию стилера;
2. Загружается библиотека DLL;
3. Отправляется System Info.txt с информацией об отпечатке хоста;
4. Отправляются украденные данные (кошельки, пароли и т. д.);
5. Отправляется файл ---Screenshot.jpeg;
6. Загружается следующая стадию заражения.
Правило YARA
Как описано в разделе о методах обфускации, новая версия Raccoon Stealer скрывает свои строки и конфигурацию, используя очень распространенный метод (base64, закодированный с помощью RC4). Следующее правило YARA соответствует реализованному алгоритму дешифрования RC4 и по крайней мере 20 экземплярам процедуры деобфускации строк.
Экстрактор конфигурации
Сценарий извлечения 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/