Специалисты Trend Micro обнаружили новую версию CopperStealer.
CopperStealer Malware
Cходства с предыдущими версиями:
- Тот же криптор
- Использование стандарта шифрования данных (DES) с тем же ключом
- одинаковое название функции экспорта DLL (для более поздних версий CopperStealer)
- Передача данных в Telegram-канал (для более поздних версий CopperStealer)
- Использование исполняемой утилиты MiniThunderPlatform
Файл CopperStealer шифруется и добавляется в легитимное приложение, а точка входа перезаписывается шеллкодом. Этот шеллкод считывает смещение полезной нагрузки и ключ расшифровки XOR из заголовка исполняемого файла.
Ключ шифрования равен 0x001eb1c0, что в десятичной системе равно 2011584. Десятичное значение - это и смещение, и ключ шифрования. Во всех проанализированных образцах используется одна и та же схема. Расшифровка представляет собой функцию XOR с тем же ключом, что и смещение в десятичной системе.
Расшифрованный второй этап представляет собой DLL с упаковкой Ultimate Packer for Executables (UPX) и имеет одну экспортируемую функцию HelloWorld. Важно отметить, что в старых версиях CopperStealer эта функция называлась WorkIn, а в новых версиях уже была HelloWorld.
На втором этапе дроппер, встраивающий два дополнительных исполняемых файла (сжатых с помощью 7-Zip) с внутренними именами A и B. Эти ресурсы сбрасываются под именами "build" и "shrdp" и впоследствии выполняются.
Компонент использует ту же технику шифрования полезной нагрузки и то же имя метода экспорта, что и на первом этапе. Компонент устанавливает сертификат с отпечатком 6c0ce2dd0584c47cac18839f14055f19fa270cdd в папку Certificates текущего пользователя.
Затем CopperStealer извлекает значение "MachineGuid" из <Software\\\Microsoft\\\\Cryptography> и использует это строковое значение в качестве имени каталога, в котором хранит все украденные данные. Затем он ищет и крадет cookies из следующих браузеров:
- Brave-Browser
- Chrome
- Chromium
- Edge
- Firefox
- Opera
- Яндекс
Куки в браузерах на базе Chromium зашифрованы. Для этого считывается os_crypt и encrypted_key из файла <%APPDATA%\Local\Google\Chrome\User Data\Local State>, расшифровывает ключ и сохраняет его зашифрованное значение. Это зашифрованное значение, которое должно быть закодировано в base64, затем DES-шифровано с ключом "loadfa1d" и IV "unsigned", после чего еще раз закодировано в base64. Затем это зашифрованное и закодированное значение сохраняется в файл с именем <%APPDATA%\Local\Google\Chrome\User Data\History>.
Похититель начинает забирать данные, создает каталоги с метками "browsers" и "cookies" в каталоге с именем MachineGuid и сохраняет похищенные данные в указанных каталогах на основе содержимого файла. Имена файлов, украденных из зараженной системы, могут быть следующими:
- passwords.txt
- passwords_urls.txt
- _cookie.txt
- cookies_urls.txt
- CC.txt
- chrome_autofill.txt
- _token.txt
- outlook.txt
- thunderbird.txt
- eventlog.txt
Помимо кражи данных веб-браузера, CopperStealer также собирает пользовательские данные с платформ онлайн-мессенджеров Telegram, Discord и Elements, сервиса распространения игр Steam и почтовых клиентов Outlook и Thunderbird. CopperStealer копирует все важные файлы с настройками и конфигурациями и отправляет их обратно на командно-контрольный (C&C) сервер:
- Telegram: Ищет папку "tdata", в которой хранятся все данные, такие как сессии, сообщения и изображения.
- Discord: Ищет файл "userDataCache.json".
- Elements: Ищет каталог "IndexeDB", в котором приложение мессенджера хранит информацию, например, токены доступа.
- Steam: Ищет файл "config" с настройками в нескольких обсуждаемых здесь местах.
Firefox хранит сохраненные логины в зашифрованном виде в файле logins.json. CopperStealer содержит ресурсную утилиту под названием FFNSS332 для 32-битной системы (или FFNSS364 для 64-битной системы), которая анализирует файл logins.json и выводит результаты на вывод командной строки.
CopperStealer запускает утилиту командной строки Windows Events и перечисляет даты событий 6005 (когда была запущена служба журнала событий) и 6006 (когда служба журнала событий была остановлена), и сохраняет эти результаты в файл eventlog.txt. Весь каталог похищенных файлов сжимается в защищенный паролем архив 7-Zip (в котором 7z.dll и 7z.exe включены в качестве ресурсов), а пароль архива - md5[дублированное имя каталога]. Затем архив загружается в специальный канал Telegram, а сообщение об успешной загрузке отправляется в канал уведомлений.
Как и первый компонент, второй компонент использует то же шифрование полезной нагрузки и то же соглашение об именовании методов экспорта, как было описано в первом разделе.
Компоенет удаленного рабочего столе начинает расшифровку адреса сервера C&C, хранящегося в зашифрованном виде на Pastebin. После декодирования base64, алгоритмом расшифровки является DES с ключами "taskhost" и IV "winlogon". Это точно такие же настройки, как и в нашем предыдущем анализе CopperStealer. После получения адреса C&C компонент регистрирует свой идентификатор машины (под значением "MachineGuid", тот же идентификатор в первом компоненте) и периодически начинает запрашивать задания для выполнения.
Поддерживаются следующие задачи: "install" и "killme". Задача "install" выполняет следующие операции:
- Добавляет на машину новую учетную запись пользователя, пароль которой совпадает с именем пользователя.
- Добавляет эту учетную запись в группу администраторов и группу "Пользователи удаленных рабочих столов"
- Скрывает эту учетную запись с экрана входа в систему, изменяя ключ реестра <\\\Winlogon\\\SpecialAccounts\\\\UserList>
- Отключает брандмауэр
- Разрешает подключения к удаленному рабочему столу.
- Отключает аутентификацию на сетевом уровне
- Извлекает и устанавливает обертку RDP (названную в ресурсах как "SHRDP"), полученную из проекта rdpwrap, и после установки включает функцию удаленного рабочего стола на хост-системе
- Извлекает и устанавливает OpenVPN (драйверы и сертификат, OEMVISTAxxx и TAPxxx в ресурсах + OP в ресурсах).
- Извлекает и устанавливает MiniThunderPlatform (название "THUNDERFW" в ресурсах), еще одну утилиту, которую мы также упоминали в нашем предыдущем анализе CopperStealer
- Извлекает и устанавливает n2n (в ресурсах называется "EDGE"), инструмент для создания виртуальных сетей (Параметры выполнения "-k", секретный ключ шифрования, "-a", частный IP-адрес, и "-l", IP и порт суперузла, должны быть получены от C&C-сервера).
Задача "killme" убивает запущенные процессы, удаляет файлы и удаляет пользователей, которые были запущены, удалены или добавлены во время задачи "install". Все файлы, связанные с Remote Desktop, также поставляются в ресурсах, и компонент просто извлекает и устанавливает их.
Чтобы Windows Defender не смог обнаружить удаленные файлы, компонент добавляет каталог в список исключений.
Вектор заражения начинается с веб-сайта, предлагающего поддельные крэки. На таких сайтах обычно отображаются две кнопки, одна из которых предлагает скачать, а другая - установить нужные крэки. Выбор любой из этих кнопок запускает цепочку перенаправления, требуя от пользователя выбрать другую кнопку "Загрузить". После этого появляется запрос на загрузку, и пользователю предлагается сохранить файл на компьютере.
Чтобы решения безопасности не смогли сразу обнаружить вредоносные файлы, загруженный архив обычно содержит текстовый файл с паролем и еще один зашифрованный архив. После ввода пароля, указанного в текстовом файле, в расшифрованном архиве отображаются исполняемые файлы.
Indicators of Compromise
Domains
- productkeycrack.com
- crackedfine.com
- cloud23.xyz
- cloud25.xyz
- fakeloveinc.com
URLs
- https://pastebin.com/raw/CF8hK9Rb
SHA256
- 1a2611d1579a47129483745f1867cee41c87d9394aec2d2c7120717c1e932d8a
- 1f0b37c31226f2bb50c61bc028248963df6a7ec4124d55d7e9bcafa3e0d24cf7
- 281d3a8cb18df039b0f94ecd86b7bfc6226f582c0ca529e0fa0eed24e875e676
- 2a4ce819f0b77536614b510686365eaaf3505a084e52be940fb01e89e83b3716
- 3770ca41453a14f0c7f256618bae59f7bef2e7a8481ab3959865a1f5164abb9b
- 416c1bfe526401775cb7ba3d72dcf3b8f076e2be32fb3590004ce21d1e72efe9
- 5ece82f9bfb5f65c82e954ec7375479f4fd81cc743ce561c21eff045726f6e61
- 63f6ac5da32d2b58776f43bfa494c5d851210d61a53b4df313e808ba40ce71e8
- 67c7123df075ad1cc57add82757871572a7242e6d05b1c6797c9fddd6fc2e851
- 6f1d27239e189ae0d759ad1ad82a72acf3bd531d4686f9f2afe0a13305fb5b81
- a23737d387313b4a1f68967af10b1e38169681cce6214f0a96b0ad6ecaab360d
- b5cd2873be627097f77fe8821914af16f4a748dc52d66e709f5b54d5c9ff9b41
- bbbc5ac3a559feeb1b095d187f5efeb3969a03b5f5f3eccfe9006b5baaac7c56
- be456eba2a81ff1bf02f2509a7d43b6b950d3a5bbc129f920361077a4df754c1
- d2632e36aeaa4204b4717fef742288773318674b1c692ae901289bdfd12ff053
- d2effe218ef9e9717c897494a8be0f217dd14dbd7f70b24d407a94bd86c1eb79
- e69026db820b4aecb17d98bf3cb9f40b78758232a5b45b5b7ba84850bd9f9ec5
- ed4439c85248c5b0c11a9c32cf693c47d18ff25f8e199a89496a15ede73689c1