Babadeda Crypter

ransomware Security

Babadeda - шифровальщик, направленный на сообщества криптовалют (NFT и DeFi). Способен обходить сигнатурные антивирусные решения.

Babadeda

Большинство современных сообществ NFT и криптовалют используют Discord (платформа для группового общения). Каналы Discord общедоступны и позволяют пользователям отправлять личные сообщения друг другу внутри канала.

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

Ниже приведен пример фишингового сообщения, направленного на пользователей "Mines of Dalarna", компьютерной игры, построенной на блокчейне.

Babadeda

Если пользователь нажимает на URL-адрес в сообщении, он попадает на сайт-обманку. Там пользователю будет предложено загрузить вредоносную программу установки, которая внедряет шифровальщик вместе с полезной нагрузкой.

Babadeda

Сравнение оригинального и ложного сайтов

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

  • Киберсквоттинг - доменные имена сайтов-обманок очень похожи на доменные имена оригинальных сайтов Угрожающие лица обычно удаляют/добавляют букву из/в доменное имя или изменяют домен верхнего уровня.
  • Домены подписываются сертификатом (через LetsEncrypt), что позволяет использовать HTTPS-соединение.
  • Пользовательский интерфейс страниц-обманок очень похож на пользовательский интерфейс оригинальных страниц.
  • После нажатия кнопки "Загрузить APP" сайт обычно переходит по адресу /downland.php, который перенаправляет запрос на загрузку на другой домен (это снижает вероятность того, что кто-то обнаружит сайт-обманку).

Babadeda

Диаграмма потока выполнения

The Installer

После загрузки и выполнения вредоносная программа установки копирует свои сжатые файлы во вновь созданную папку с легитимным названием (например, IIS Application Health Monitor) в одном из следующих каталогов:

C:\Users\<user>\AppData\Roaming\
C:\Users\<user>\AppData\Local\

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

Babadeda

Сжатые файлы (файлы вредоносных программ, выбранные с номерами этапов)

Crypter Execution

После сброса указанных файлов программа установки начинает выполнение через главный исполняемый файл (номер 1 на рисунке выше).

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

Babadeda Crypter

Анализируя два различных варианта, мы можем увидеть реализацию этого окна сообщений:

Babadeda

Сравнение между вариантами криптера

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

DLL-загрузчик шеллкода

Как правило, агент угрозы встраивает следующие этапы выполнения в дополнительный файл, обычно XML или PDF. Тем не менее, мы также наблюдали дополнительные типы файлов, такие как JavaScript, Text и PNG.

Здесь, как и раньше, злоумышленник внедряет вредоносный код в различные легитимные коды. Мы выделили соответствующие разделы, чтобы наглядно продемонстрировать деятельность вредоносной программы:

Babadeda

Логика экспортируемой функции

Вредоносная логика начинается с чтения дополнительного файла (в данном случае XML-файла) и вызова kernel32!Sleep на 35 секунд (длительность меняется в разных вариантах). Затем он загружает весь файл в память и запускает задачу парсинга.

Первым фрагментом, который разбирается из файла, является шеллкод, расположенный по заранее рассчитанному смещению (в данном случае 0x88D8C и перезаписывающий исполняемый файл по смещению 0x1600).

Babadeda

Байты шеллкода внутри XML-файла

Характеристики исполняемого .text раздела настроены на RWE (Read-Write-Execute) - таким образом, агенту не нужно использовать VirtualAlloc или VirtualProtect для копирования шеллкода и передачи исполнения. Это помогает при обходе, поскольку эти функции хорошо отслеживаются решениями безопасности. Как только шеллкод скопирован в исполняемый файл, DLL вызывает точку входа шеллкода (shellcode_address).
Реализация стойкости

Если криптер настроен на установку персистентности, DLL-загрузчик выполнит новый поток, который загрузит другую DLL (из сжатых файлов), которая будет выполнять эту задачу.

Вновь загруженная DLL будет использовать либо одну из следующих логик, либо обе для реализации персистентности:

  • Написать файл.lnk в папке запуска, который запускает основной исполняемый файл криптера.
  • Записать в реестре ключ Run, который запускает основной исполняемый файл криптера.

The Decryption Shellcode

Файл XML (или любой другой тип файла, используемый криптером) содержит следующие компоненты:

Первый шеллкод (упоминаемый в этом разделе).
Зашифрованный дополнительный шеллкод (упоминаемый в следующем разделе, шеллкод Loader).
Зашифрованная полезная нагрузка.

У шеллкода Decryption три основные задачи: сначала он извлекает шеллкод Loader и полезную нагрузку, затем расшифровывает их, и, наконец, передает выполнение расшифрованному шеллкоду Loader.

Babadeda

Поток выполнения шелл-кода Decryption

Выполнение шеллкода Decryption начинается с динамического определения местоположения конфигурационной структуры путем поиска последовательности из шести или более одинаковых байт. Эта конфигурация содержит указатели на шеллкод загрузчика и конечную полезную нагрузку; они шифруются и разделяются внутри XML.

Исходя из этого, мы можем определить конфигурацию внутри XML-файла:

Babadeda

Структура конфигурации

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

Затем шеллкод ищет два DWORD-заполнителя, 0xBABADEDA и 0xDEADBEAF. Он заменяет первый заполнитель адресом расшифрованной полезной нагрузки, а второй - размером полезной нагрузки. Эти данные используются на следующем этапе, в шеллкоде Loader.

Шелл-код Loader

Целью шеллкода Loader является внедрение расшифрованной полезной нагрузки в текущий запущенный процесс (в себя).

Мы можем разделить механизм загрузки на три этапа: инициализация, внедрение и исправление.
Инициализация

Этот этап отвечает за установку соответствующих данных, которые будут использоваться на этапах инъекции и коррекции.

Babadeda

Извлечение данных для этапов инъекции и коррекции

Чтобы начать инициализацию, загрузчик сначала сохраняет расшифрованный адрес полезной нагрузки и размер полезной нагрузки в соответствии с адресами заполнителя. Затем он анализирует PE-заголовки полезной нагрузки, чтобы извлечь размер образа и точку входа в соответствии с базовым адресом текущего исполняемого файла. Загрузчик анализирует структуру _PEB, чтобы найти базовый адрес текущего исполняемого файла и LDR_DATA_TABLE_ENTRY, который будет использоваться позже. Наконец, он динамически загружает функцию VirtualProtect, используя предварительно вычисленное хэш-значение (0xF1C25B45 в нашем случае).

Инъекция

Этот этап довольно прост. На нем загрузчик перезаписывает текущий PE в PE конечной полезной нагрузки. Он делает это путем копирования заголовков PE и каждой секции в соответствии с базовым адресом текущего исполняемого файла.

Babadeda

Защита заголовков от изменения и очистка байтов памяти для нового PE

Как только предыдущие байты очищены, загрузчик копирует заголовки нового PE по базовому адресу, а каждую секцию - в соответствующее место в соответствии с IMAGE_SECTION_HEADER.

Коррекция

Последний этап отвечает за исправление таблицы адресов импорта и таблицы перемещений только что внедренного PE.

Babadeda

Исправление таблиц и удаление изменяющих признаков

mw_construct_IAT:

 - Загрузка функции GetModuleHandleA, LoadLibraryA и GetProcAddress по хэшу (0x9FE4FCE1, 0x85557334 и 0xF23B576D соответственно).
- Итерация по IAT нового PE.
- Загрузка каждой функции и обновление ее адреса.
mw_construct_RELOC:
- Вычисление дельты между предыдущей базой изображений и текущей.
- Итерация по каждой записи в таблице перемещения.
- Добавление дельты к значению записи.

В дополнение к исправлению таблиц адресов импорта и перемещения, загрузчик удаляет свидетельства инъекции с помощью следующих методов:

- Обновление записи в таблице данных LDR, чтобы она соответствовала инжектированному PE.
- Удаление заголовков инжектированного PE из памяти.

Эти шаги позволяют обойти сканеры памяти, которые ищут несовпадающие данные LDR и PE в памяти.

Наконец, вредоносная программа переходит к точке входа нового внедренного PE с исходными аргументами командной строки.

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

Indicators of Compromise

SHA256

  • 99e6b46a1eba6fd60b9568622a2a27b4ae1ac02e55ab8b13709f38455345aaff
  • 358211210e0bb34dd77073bb0de64bb80723f3434594caf1a95d0ed164ee87a1
  • ce3758d494132e7bef7ea87bb8379bb9f4b0c82768d65881139e1ec1838f236c
  • 0ceead2afcdee2a35dfa14e2054806231325dd291f9aa714af44a0495b677efc
  • 080340cb4ced8a16cad2131dc2ac89e1516d0ebe5507d91b3e8fb341bfcfe7d8

IPv4

  • 37.48.89.8
  • 45.12.5.62
  • 65.21.127.164

TTP - тактика, техника, процедуры

Тактика, методы и процедуры (TTP) обобщают предполагаемые методы MITRE ATT&CK, используемые Babadeda.

ID Техника CWE Описание Доверие
1 T1006 CWE-21, CWE-22, CWE-23 Обход имени пути Высокий
2 T1040 CWE-294 Обход аутентификации путем захвата и воспроизведения Высокий
3 T1055 CWE-74 Инъекция Высокий
4 T1059 CWE-94 Межсайтовый скриптинг Высокий
Добавить комментарий