Опасайтесь синих лис: разбор нового MaaS-стилера BlueFox

Опасайтесь синих лис: разбор нового MaaS-стилера BlueFox


Мы, специалисты  PT Expert Security Center , регулярно отслеживаем угрозы ИБ, в том числе как ранее известные, так и впервые обнаруженные вредоносные программы. Во время такого мониторинга в нашу песочницу  PT Sandbox  попал любопытный образец вредоносного ПО. Согласно первым результатам анализа трафика, он походил на RedLine —  самый популярный инфостилер  в киберпреступных каналах и чатах в Telegram за последние три года. Однако дальнейшее исследование показало, что пойманный вредонос — BlueFox. Это свежий инфостилер, который хоть и недавно появился в хакерской среде, но уже успел  засветиться за рубежом .

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

Как был обнаружен BlueFox

В ходе анализа поступающего сетевого трафика были обнаружены подключения к внешним серверам. Распределение пакетов (см. рис. 1) в соединениях существенно коррелировало с распределением пакетов известного ранее похитителя учетных данных RedLine. Энтропия в этих соединениях была значительно выше, чем у RedLine, который использует MC-NMF (.NET Message Framing Protocol). В результате было выдвинуто предположение: это новая версия RedLine, поддерживающая шифрование без обертки в протокол. Наши инструменты поиска похожего трафика среагировали на последовательность нескольких этапов обмена данными с сервером, типичных для RedLine, однако исследуемые передаваемые данные были зашифрованы.

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

Второй этап — отправка сервером клиенту задания на сбор данных. Оно содержит шаблоны имен файлов и пути расположения похищаемой информации.

Третий этап — непосредственно эксфильтрация клиентских данных в соответствии с заданием сервера.

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


Рисунок 1. Распределение пакетов в TCP-потоке и состояние протокола

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

Извлечение образца для анализа

Образец представляет собой исполняемый файл большого размера — результат работы неизвестного упаковщика (см. рис. 2). Анализировать образец в таком виде бесполезно, поэтому его нужно распаковать.


Рисунок 2. Упакованный образец стилера

Чтобы получить распакованный файл, мы запустили исходный образец на виртуальной машине и извлекли его из памяти при помощи программы pd64.exe (см. рис. 3).


Рисунок 3. Распакованный образец стилера

В секции .data (см. рис. 4) распакованного образца стилера в открытом виде находился еще один исполняемый файл с символами MZ в первых двух байтах (см. рис. 5). Запустив его отдельно, мы выяснили, что именно этот исполняемый файл создает нужный нам трафик. Поэтому далее будем работать только с ним, к тому же в остальных файлах больше нет интересной для анализа информации.


Рисунок 4. Секции распакованного образца стилера


Рисунок 5. Секция .data в HEX-представлении

Определение семейства вредоносной программы

Первым делом мы обратили внимание на файлы ресурсов образца, а именно на version.txt (см. рис. 6). Большая часть информации в нем не несет какого-либо смысла, но есть название программы BlueFox2.0.8.exe.


Рисунок 6. Файл version.txt вредоносного образца BlueFox

Поиск по названию привел к статье с похожими по структуре, размеру и поведению образцами ( пример на сайте VirusTotal ).

Описание BlueFox

Стилер BlueFox распространяется по схеме MaaS (malware as a service): автор программы продавал ее на форумах XSS, BHF и в даркнете.

Первая версия BlueFox появилась в декабре 2021 года и продавалась по цене 150 $ в месяц, но не снискала популярности. Скорее всего, помешала конкуренция: в то время был взлет популярности RedLine, который продавался по той же цене. Вторая версия появилась в сентябре 2022 года по цене 350 $. Она оказалась успешнее для злоумышленников: автор закрыл продажи, так как набрал достаточную клиентскую базу.

Описание стилера показано на рисунке 7. Автор подает ВПО как универсальное решение для получения и обработки большого количества информации с личным сервером и собственным протоколом связи.


Рисунок 7. Описание BlueFox

Функциональные возможности программы не отличаются оригинальностью, другие стилеры (RedLine, Raccoon и т. п.) имеют похожие характеристики (см. рис. 8).


Рисунок 8. Функциональные возможности исполняемого файла

Однако доступная только из даркнета панель управления BlueFox вызывает интерес. Ее описание показано на рисунке 9.


Рисунок 9. Функциональные возможности панели управления BlueFox

Панель вредоноса имеет удобный информативный интерфейс со статистикой, поиском и большим количеством параметров (см. рисунки 10–13).


Рисунок 10. Интерфейс BlueFox, страница статистики


Рисунок 11. Интерфейс BlueFox, последние собранные данные


Рисунок 12. Интерфейс BlueFox, поиск по журналам


Рисунок 13. Интерфейс BlueFox, настройка загрузчика

Автор стилера также показал пример собранной и обработанной информации, среди которой есть характеристики компьютера, страна, IP-адрес и расположение файлов с паролями (см. рисунок 14).


Рисунок 14. Собранная стилером информация

Анализ образца BlueFox

Анализируемый образец сильно обфусцирован, что затрудняло его исследование (см. рис. 15).


Рисунок 15. Обфусцированный код вредоносного образца

Для устранения обфускации использовалась программа NETReactorSlayer . Она помогла частично распутать код и облегчила нам дальнейший анализ (см. рис. 16).


Рисунок 16. Снятие обфускации с вредоносного образца

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


Рисунок 17. Связь с сервером

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


Рисунок 18. Формирование сетевого пакета от компьютера-жертвы

Для наглядности на рисунке 19 показан типичный сетевой пакет. Красным выделена длина полезной нагрузки сообщения — в этом случае 0x30, а зеленым — флаг-индикатор. Все остальные байты — полезная нагрузка. Так как флаг равен 1, полезная нагрузка в сообщении зашифрована.


Рисунок 19. Типичный зашифрованный сетевой пакет

Рассмотрим также первый пакет клиента, так как он пригодится для обнаружения стилера. Вся полезная нагрузка – это число 0x19 (см. рис. 20).


Рисунок 20. Первый сетевой пакет от компьютера жертвы

Большой смысловой нагрузки этот пакет не несет, число 0x19 — простая константа для этой версии стилера (см. рис. 21–22). В предыдущих версиях она равна 0x18 (см. рис. 23).


Рисунок 21. Отправка константы на сервер


Рисунок 22. Константа в анализируемой версии стилера


Рисунок 23. Константа в старых версиях стилера

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


Рисунок 24. Алгоритм шифрования данных


Рисунок 25. Алгоритм дешифрования данных

В обоих случаях используется симметричный алгоритм блочного шифрования AES (Advanced Encryption Standard) в режиме ECB (electronic code book) с дополнением PKCS7.

Ключ для AES и его длина передаются в первом сообщении от сервера (см. рис. 26). Красным выделена длина ключа — 0x18 (192 бита), зеленым — сам ключ (081B5A91C24799F374F8F24D03BE7A964EEA4316F0B6AF25).


Рисунок 26. Ключ шифрования и его длина

Зная алгоритм и ключ шифрования, можно расшифровать весь имеющийся трафик. Дешифруем полезную нагрузку из сообщения, показанного на рисунке 19 (см. рис. 27). Видно, что был передан UUID, который используется для идентификации компьютера жертвы на сервере.


Рисунок 27. Расшифрованная полезная нагрузка

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


Рисунок 28. Расшифрованная конфигурация

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


Рисунок 29. Работа с конфигурацией

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


Рисунок 30. Попытка получить доступ к файлу из конфигурации

Образец открывает каждый существующий файл, полностью загружает его в память, считывает данные по определенным смещениям в файле (см. рис. 31–32) и передает обработанные данные следующей функции.


Рисунок 31. Запись файла в память


Рисунок 32. Обработка открытых файлов в памяти

Стилер сохраняет полученные ранее данные в списке, шифрует его и отправляет на сервер (см. рис. 33).


Рисунок 33. Отправка собранных данных на сервер

Чтобы подтвердить результаты анализа, расшифруем сетевой пакет от устройства жертвы, который был отправлен после получения конфигурации. Сообщение содержит описанный выше UUID и эксфильтрованные данные в формате SQLite, о чем говорит строка SQLite format 3 (см. рис. 34).


Рисунок 34. Часть эксфильтрованных данных

Эксфильтрованные данные показаны в приложении для просмотра баз данных, чтобы можно было увидеть их структуру (см. рис. 35).


Рисунок 35. Структура эксфильтрованных данных

Самой интересной кажется таблица с учетными данными: в ней должно находиться большинство украденных сведений (см. рис. 36).


Рисунок 36. Структура таблицы с учетными данными

На рисунке 37 показаны учетные данные, которые смог украсть стилер.


Рисунок 37. Украденные учетные данные

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

После отправки данных программа удаляет себя с компьютера жертвы следующей командой:cmd.exe /C timeout 5 & del "$PATH

Выполняем сетевой детект

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


Рисунок 38. Расшифрованные сообщения BlueFox в сетевом трафике

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


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


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

Дополнительные функции вредоноса

В дополнение рассмотрим функциональные возможности образца, не продемонстрированные им при анализе в песочнице, но доступные владельцу сервера (см. рис. 39).


Рисунок 39. Дополнительные функции BlueFox

На рисунке 40 показан алгоритм создания снимка экрана, после чего снимок отправляется на сервер.


Рисунок 40. Создание снимка экрана

Стилер может загружать файлы по ссылке, а затем запускать их. Это значит, что его могут использовать в качестве загрузчика любого другого вредоносного программного обеспечения (см. рис. 41).


Рисунок 41. Загрузка файла и его запуск

Мы обнаружили один примечательный случай, когда BlueFox скачивал артефакты, которые использовал другой стилер — Raccoon ( индикаторы Raccoon , анализ BlueFox ). Адреса, с которых стилер загружал артефакты, показаны на рисунке 42.


Рисунок 42. Адреса, с которых BlueFox скачивал артефакты Raccoon

При тестировании Raccoon в песочнице ANY.RUN появились те же адреса (см. рис. 43).


Рисунок 43. Загрузка артефактов в ANY.RUN стилером Raccoon

Один из артефактов — стилер Vidar. Иными словами, стилеры BlueFox и Raccoon скачали и запустили другой стилер:

Вывод

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

Авторы:

инфостилеры впо redline похититель паролей bluefox киберпреступники дарквеб cybersecurity загрузчик ptesc
Alt text

Устали от того, что Интернет знает о вас все?

Присоединяйтесь к нам и станьте невидимыми!