Отчеты о целевых атаках (APT)

Mem3nt0 mori – Hacking Team снова с нами!

В марте 2025 года «Лаборатория Касперского» выявила волну заражений, происходивших сразу после того, как жертва открывала персонализированную фишинговую ссылку, полученную по электронной почте. Единственным действием, которое требовалось от пользователя, было открыть ссылку в Chrome или другом браузере на базе Chromium.

Все ссылки были персонализированными и имели очень короткий срок жизни. Тем не менее, технологиям «Лаборатории Касперского» удалось идентифицировать сложный эксплойт нулевого дня, который использовался для побега из песочницы Chrome. Мы быстро проанализировали его и сообщили об уязвимости службе безопасности Google. Проблема была исправлена как CVE-2025-2783.

Благодарность за обнаружение CVE-2025-2783 (выдержка из сообщения об исправлениях безопасности, вошедших в версию Chrome 134.0.6998.177/.178)

Благодарность за обнаружение CVE-2025-2783 (выдержка из сообщения об исправлениях безопасности, вошедших в версию Chrome 134.0.6998.177/.178)

Мы назвали эту кампанию операцией «Форумный тролль», поскольку злоумышленники маскировали персонализированные фишинговые письма под приглашения на научно-экспертный форум «Примаковские чтения». Целями были СМИ, университеты, научно-исследовательские центры, государственные, финансовые и прочие организации в России. Судя по функциональности доставляемого вредоносного ПО, основной целью кампании был кибершпионаж.

Мы смогли проследить активность шпионского ПО до 2022 года и выявить другие атаки той же группы на организации и частных лиц в России и Беларуси. Анализируя арсенал злоумышленников, мы обнаружили ранее неизвестное вредоносное ПО, которое нам удалось идентифицировать как коммерческое шпионское ПО Dante, разработанное итальянской компанией Memento Labs, ранее известной как Hacking Team.

Дальнейший анализ показал, что в Dante и некоторых инструментах, используемых в операции «Форумный тролль», присутствует похожий код, что указывает на то, что эти инструменты также были разработаны Memento Labs.

В этой статье мы подробно разберем цепочку атаки операции «Форумный тролль», а также расскажем, как мы обнаружили и идентифицировали ПО Dante, которое долгие годы после ребрендинга Hacking Team оставалось неопознанным.

Цепочка атаки

Цепочка атаки операции "Форумный тролль"

Цепочка атаки операции «Форумный тролль»

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

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

Как следствие, нам пришлось работать с артефактами атаки, обнаруженными после первой волны заражений. Нам повезло: технологии «Лаборатории Касперского» обнаружили почти все основные стадии атаки, что позволило восстановить и изучить цепочку атаки операции «Форумный тролль».

Фишинговое письмо

Пример вредоносного письма, использованного в операции

Пример вредоносного письма, использованного в операции «Форумный тролль»

Вредоносные письма, которые рассылали атакующие, были замаскированы под приглашения от организаторов научно-экспертного форума «Примаковские чтения» и содержали персонализированные ссылки для отслеживания заражений. Эти письма выглядели аутентично, не содержали языковых ошибок и были написаны ровно в том стиле, в котором обычно пишут такие приглашения. Высокий уровень знания русского языка, а также знакомство с многими локальными особенностями — одна из отличительных черт APT ForumTroll, которая прослеживается и в других кампаниях этой группы. Тем не менее в некоторых из кампаний они все же допустили ошибки, указывающие на то, что русский — не их родной язык.

Валидатор

Валидатор — это сравнительно небольшой скрипт, который выполняется в браузере, проверяет жертву, безопасно скачивает эксплойт и выполняет его.

Первым делом валидатор при помощи WebGPU API вычисляет хэш SHA-256 от случайных данных, полученных от сервера, а затем проверяет результат. Для этого он использует sha256-gpu — проект Марко Чиарамеллы (Marco Ciaramella) с открытым исходным кодом. Вероятнее всего, это нужно, чтобы убедиться, что сайт открыт в реальном браузере реальным пользователем, а не почтовым сервером, который может перейти по ссылке, произвести эмуляцию скрипта и загрузить настоящий эксплойт. Также эта проверка может быть необходима, если эксплойт полагается на уязвимость в WebGPU API или использует этот компонент в ходе своей работы.

Результаты проверки валидатор отправляет на C2-сервер вместе с идентификатором инфекции и только что сгенерированным публичным ключом для обмена ключами по протоколу Диффи — Хеллмана на эллиптических кривых (ECDH). Если проверка успешно пройдена, сервер возвращает ключ AES-GCM, который используется для расшифровки кода следующего этапа, скрытого в запросах к bootstrap.bundle.min.js и файлах шрифтов .woff2. Следуя хронологии событий и логике заражения, этим следующим этапом должен был стать эксплойт удаленного выполнения кода (RCE) для Google Chrome, однако в ходе атаки его не удалось получить.

Эксплойт, выполняющий побег из песочницы

Уязвимости нулевого дня, которые эксперты "Лаборатории Касперского" обнаружили в дикой природе

Уязвимости нулевого дня, которые эксперты «Лаборатории Касперского» обнаружили в дикой природе

За прошедшие годы мы обнаружили десятки уязвимостей нулевого дня, которые активно эксплуатировались в кибератаках, и сообщили о них вендорам. Однако CVE-2025-2783 — это, без сомнения, один из самых интересных эксплойтов для побега из песочницы, с которыми мы сталкивались. Он по-настоящему нас удивил, поскольку, не совершая ничего откровенно вредоносного, позволял атакующим обойти песочницу Google, как будто ее не существовало вовсе. Причиной этому была серьезная логическая уязвимость, возникающая из-за неочевидной особенности Windows.

Для защиты от ошибок и сбоев, а также обеспечения работы песочницы Google полагается на мультипроцессную архитектуру. Основной процесс, или процесс браузера отвечает за пользовательский интерфейс и управление другими процессами. В свою очередь, веб-контент обрабатывается заключенными в песочницы процессами визуализации, обладающими ограниченным доступом к системным ресурсам. Для коммуникации между процессом браузера и процессами визуализации Chrome использует фреймворк Mojo и лежащую в его основе библиотеку ipcz, которая пришла на смену устаревшим механизмам межпроцессной коммуникации.

Обнаруженный нами эксплойт имел в комплекте свои копии библиотек Mojo и ipcz, статически скомпилированные из официальных источников. Это позволило атакующим взаимодействовать с IPC-брокером в процессе браузера без необходимости вручную парсить и генерировать сообщения ipcz. Для нас это, напротив, создало проблему, поскольку, чтобы проанализировать эксплойт, нам нужно было идентифицировать все функции из библиотеки Chrome, которые он использовал. Эта задача стоила нам определенных усилий, зато, когда мы с ней справились, мы смогли полностью восстановить последовательность действий эксплойта.

Если коротко, он делает следующее:

  1. Разрешает адреса необходимых функций и гаджетов из библиотеки chrome.dll при помощи поиска по шаблону.
  2. Устанавливает хук на функцию v8_inspector::V8Console::Debug. Это позволяет атакующим выйти из песочницы и выполнить желаемую полезную нагрузку при помощи вызова JavaScript.
  3. Приступает к выполнению побега из песочницы, когда атакующие исполняют «console.debug(0x42, shellcode);» из скрипта.
  4. Устанавливает хук на функцию ipcz::NodeLink::OnAcceptRelayedMessage.
  5. Создает и отправляет ipcz-сообщение типа RelayMessage. Этот тип сообщений используется для передачи дескрипторов Windows между процессами, которые не имеют прав делать это самостоятельно (например, процессами визуализации). Эксплойт получает дескриптор, который возвращает API-функция GetCurrentThread, и передает его самому себе при помощи ipcz-сообщения. Брокер передает дескрипторы между процессами посредством API-функции DuplicateHandle.
  6. Получает ретранслированное сообщение при помощи хука ipcz::NodeLink::OnAcceptRelayedMessage, однако вместо дескриптора, возвращенного API-функцией GetCurrentThread, в нем содержится дескриптор потока в процессе браузера!
  7. Использует полученный дескриптор для выполнения серии гаджетов в целевом процессе путем приостановки потока, установки значений регистров при помощи SetThreadContext и запуска потока. В результате в контексте процесса браузера выполняется шеллкод и происходит установка загрузчика вредоносного ПО.

Что же пошло не так и как такое возможно? Ответ можно найти в описании API-функций GetCurrentThread и GetCurrentProcess. Когда их вызывают, они возвращают не настоящие дескрипторы, а то, что называется псевдодескрипторами — специальные константы, которые ядро интерпретирует как дескрипторы текущего потока или процесса. Для текущего процесса константа равна −1 (что эквивалентно значению INVALID_HANDLE_VALUE и связано со своим набором особенностей), а для текущего потока — −2. Код IPC в Chrome проверял наличие дескрипторов, равных −1, но не содержал аналогичных проверок для −2 и других недокументированных псевдодескрипторов, что и привело к возникновению этой уязвимости. В ходе обработки RelayMessage, передавая API-функции DuplicateHandle псевдодескриптор −2, полученный от процесса визуализации, брокер преобразовывал его в настоящий дескриптор собственного потока, который и возвращался в итоге процессу визуализации.

Вскоре после того как вышел патч, стало ясно, что Chrome — не единственный браузер, в котором присутствовала эта проблема. Разработчики Firefox заметили аналогичное поведение в их собственном коде, реализующем коммуникацию между процессами, и выпустили исправление, присвоив уязвимости идентификатор CVE-2025-2857.

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

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

Если вы хотите узнать больше подробностей о том, как в Google Chrome усилили безопасность после выявления CVE-2025-2783, мы рекомендуем послушать презентацию Алекса Гоуга (Alex Gough) «Responding to an ITW Chrome Sandbox Escape (Twice!)» («Как мы реагировали на атаку с побегом из песочницы Chrome (дважды!)») на конференции Kawaiicon.

Стойкий загрузчик

Злоумышленники закрепляются в системе при помощи техники Component Object Model (COM) hijacking. В ее основе лежат особенности порядка поиска объектов COM в системе. Каждый класс COM в Windows имеет запись в реестре, которая сопоставляет COM CLSID (128-битный GUID) с расположением соответствующего DLL- или EXE-файла. Эти записи хранятся в системном разделе реестра HKEY_LOCAL_MACHINE (HKLM), однако аналогичные записи в пользовательском разделе реестра HKEY_CURRENT_USER (HKCU) имеют более высокий приоритет. Благодаря этому атакующие могут заместить запись CLSID своей и запустить вредоносное ПО, когда система пытается найти и запустить корректный компонент COM.

COM hijacking в двух словах

COM hijacking в двух словах

Атакующие использовали эту технику, чтобы заместить CLSID {AA509086-5Ca9-4C25-8F95-589D3C07B48A} библиотеки twinapi.dll и заставить системные процессы и браузеры загружать вредоносную DLL.

Эта вредоносная DLL представляет собой загрузчик, который расшифровывает и запускает основной зловред. Полезная нагрузка, отвечающая за загрузку вредоносной программы, закодирована с помощью простого кодировщика, похожего на те, что присутствуют в фреймворке Metasploit, и обфусцирована посредством OLLVM. Поскольку подмененный объект COM может быть загружен многими процессами, она проверяет имя текущего процесса и загружает вредоносное ПО, только если ее выполняет что-то из конкретного набора процессов (например, rdpclip.exe). Основной зловред зашифрован с помощью модифицированного алгоритма ChaCha20. Кроме того, загрузчик располагает функциональностью, позволяющей зашифровать его с использованием BIOS UUID, чтобы привязать к конкретной машине. Расшифрованные данные представляют собой сам зловред, а также шеллкод, сгенерированный с помощью Donut, который его запускает.

LeetAgent

Мы назвали шпионское ПО, которое использовалось в операции «Форумный тролль», LeetAgent, поскольку все его команды написаны на Leet, а это, как ни странно, довольно редкое явление среди вредоносного ПО APT-групп. Вредоносное ПО подключается к одному из серверов C2, указанных в конфигурации, и использует протокол HTTPs для получения и выполнения команд, идентифицируемых уникальными числовыми значениями:

  • 0xC033A4D (COMMAND) — выполнить команду через cmd.exe
  • 0xECEC (EXEC) — выполнить процесс
  • 0x6E17A585 (GETTASKS) — получить список задач, которые в настоящий момент выполняет агент
  • 0x6177 (KILL) — прекратить выполнение задачи
  • 0xF17E09 (FILE \x09) — сделать запись в файл
  • 0xF17ED0 (FILE \xD0) — прочесть файл
  • 0x1213C7 (INJECT) — внедрить шеллкод
  • 0xC04F (CONF) — задать параметры коммуникации
  • 0xD1E (DIE) — выйти
  • 0xCD (CD) — изменить текущую директорию
  • 0x108 (JOB) — задать параметры для кейлоггера и стилера, крадущего файлы

Помимо выполнения команд, полученных от C2, LeetAgent в фоновом режиме выполняет задачи по отслеживанию нажатий клавиш и краже файлов. По умолчанию, файловый стилер ищет документы со следующими расширениями: *.doc, *.xls, *.ppt, *.rtf, *.pdf, *.docx, *.xlsx, *.pptx.

Данные конфигурации закодированы при помощи схемы TLV (tag-length-value) и зашифрованы простым однобайтовым XOR-шифром. Они содержат настройки коммуникации с C2, в том числе множество настроек обфускации трафика.

В большинстве выявленных атак злоумышленники использовали для хостинга C2 облачную инфраструктуру Fastly.net. Также с ее помощью загружали и скачивали вспомогательные инструменты, такие как 7z, Rclone, SharpChrome и дополнительное вредоносное ПО (подробнее о нем расскажем дальше).

Количество настроек обфускации трафика может указывать на то, что LeetAgent является коммерческим ПО, однако мы не видели этот инструмент в атаках групп, отличных от ForumTroll.

Как мы нашли Dante

На наш взгляд, атрибуция неизвестного вредоносного ПО — самая сложная часть исследования безопасности. Почему? Потому что для этого нужно не просто проанализировать вредоносное ПО и эксплойты, замеченные в одной атаке. Для этого нужно найти и изучить все образцы вредоносного ПО и эксплойтов, которые использовались во всех атаках, потенциально связанных с той, которую вы исследуете. Вам придется искать схожие атаки на основе индикаторов компрометации (IoC) и тактик, техник и процедур (TTP), совпадений в коде, инфраструктуре и т. д. Если коротко, то атрибуция — это поиск и объединение всех возможных вещественных доказательств до тех пор, пока не нарисуется портрет атакующего.

Мы смогли проследить активность LeetAgent до первого использования в 2022 году и обнаружили другие атаки APT-группы ForumTroll на организации и частных лиц в России и Беларуси. Во многих случаях заражение начиналось с фишингового письма с вредоносным вложением с одним из следующих названий:

  • Балтийский_Вектор_2023.iso
  • DRIVE.GOOGLE.COM (исполняемый файл)
  • Приглашение_Россия-Беларусь_крепкое_партнёрство_2024.lnk
  • Другие имена файлов, содержащие названия компаний или имена конкретных лиц

Помимо этого, мы обнаружили еще один кластер похожих атак, в которых использовалось другое, более сложное, чем LeetAgent, шпионское ПО, активность которого мы тоже смогли проследить до 2022 года. В атаках этого кластера заражение начиналось с фишингового письма с вредоносным вложением с одним из следующих имен:

  • SCAN_XXXX_<DATE>.pdf.lnk
  • <DATE>_winscan_to_pdf.pdf.lnk
  • Ростелеком.pdf.lnk
  • Некоторые другие

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

Связь между LeetAgent и коммерческим шпионским ПО Dante

Связь между LeetAgent и коммерческим шпионским ПО Dante

Изучив это ранее неизвестное сложное шпионское ПО, мы пришли к выводу, что это коммерческое шпионское ПО Dante, разработанное итальянской компанией Memento Labs.

Некоторое время назад Инициатива по киберуправлению Атлантического совета (Cyber Statecraft Initiative) опубликовала любопытный отчет под названием «Mythical Beasts and where to find them: Mapping the global spyware market and its threats to national security and human rights» («Мифические чудовища и где они обитают: как глобальный рынок шпионского ПО и связанные с ним угрозы соотносятся с национальной безопасностью и правами человека»). Мы считаем сравнение коммерческого шпионского ПО с мифическими чудовищами крайне удачным. Всем, кто работает в сфере кибербезопасности, известно, что поставщики такого ПО существуют, однако их «продукты» редко находят и идентифицируют. При этом список компаний, занимающихся разработкой коммерческого шпионского ПО, довольно внушителен: NSO Group, Intellexa, Paragon Solutions, Saito Tech (бывшая Candiru), Vilicius Holding (бывшая FinFisher), Quadream, Memento Labs (бывшая Hacking Team), negg Group, RCS Labs — и это только самые известные. Некоторые из них постоянно светятся в новостях, о некоторых мы публиковали отчеты, а некоторые со временем практически полностью пропали из публичного поля. К последним относится и Memento Labs, ранее известная как Hacking Team.

Hacking Team (или HackingTeam) — один из старейших и самых известных поставщиков шпионского ПО. Компания была основана в 2003 году и стала известна благодаря шпионскому ПО Remote Control Systems (RCS), которым пользовались государственные органы по всему миру, и его противоречивой репутации. Судьба Hacking Team претерпела внезапный поворот, после того как в 2015 году в результате взлома в интернет попали 400 ГБ ее внутренних документов. В итоге в 2019 году компания InTheCyber Group приобрела ее и переименовала в Memento Labs. Новый владелец поделился с изданием Motherboard, что планирует изменить абсолютно все. Спустя четыре года на конференции правоохранительных органов и служб разведки ISS World MEA 2023 компания раскрыла название своего нового шпионского ПО: DANTE. При этом до сих пор мало что было известно о возможностях этого ПО, и никто не встречал его в реальных атаках.

Фрагмент расписания конференции ISS World MEA 2023 (опечатку допустили организаторы мероприятия)

Фрагмент расписания конференции ISS World MEA 2023 (опечатку допустили организаторы мероприятия)

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

Имя шпионского ПО Dante в его коде

Имя шпионского ПО Dante в его коде

Dante

Естественно, строка "Dante" в коде — не единственное, на чем основывается наша атрибуция, но она стала важной деталью, задавшей нам верное направление. С помощью дополнительного анализа мы обнаружили указание на версию 2.0, что соответствует названию презентации, которую мы упоминали ранее. После этого мы поискали и обнаружили последние версии шпионского ПО Remote Control Systems (RCS). Компания Memento Labs продолжала разрабатывать его до 2022 года, когда его сменило ПО Dante. При этом не все в новом ПО было сделано с чистого листа — последние версии RCS имеют целый ряд сходств с Dante. Все это дает уверенность в нашей атрибуции.

Почему разработчики назвали шпионское ПО Dante? Это может быть данью традиции: ПО RCS также было известно как Da Vinci. Кроме того, это может быть отсылкой к «Божественной комедии» и кругам ада, через которые должны пройти исследователи вредоносного ПО, изучая этот зловред, поскольку в нем предусмотрен целый набор техник для затруднения анализа.

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

Антиотладочная техника VMProtect

Антиотладочная техника VMProtect

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

Техника защиты от хуков в Dante (упрощенная схема)

Техника защиты от хуков в Dante (упрощенная схема)

В дополнение к антиотладочным техникам VMProtect Dante использует распространенные методы обнаружения дебаггеров. В частности, проверяет отладочные регистры (Dr0–Dr7) с помощью функции NtGetContextThread, инспектирует поле KdDebuggerEnabled в структуре KUSER_SHARED_DATA и выявляет отладочные среды посредством функции NtQueryInformationProcess, опрашивая классы ProcessDebugFlags, ProcessDebugPort, ProcessDebugObjectHandle и ProcessTlsInformation.

Для защиты от обнаружения Dante использует интересный метод проверки среды и выяснения, безопасно ли продолжать работу: ищет в логах событий Windows события, которые могут указывать на использование инструментов анализа или виртуальных машин (на уровне хоста или гостя).

Строки, которые Dante ищет в логах событий

Строки, которые Dante ищет в логах событий

Помимо этого, зловред проводит ряд проверок на запуск в песочнице: ищет «плохие» библиотеки, измеряет время выполнения функции sleep() и инструкции cpuid, а также проверяет файловую систему.

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

После всех проверок Dante расшифровывает конфигурацию и оркестратор, находит в последнем строку "DANTEMARKER", записывает конфигурацию на ее место и запускает оркестратор.

Конфигурация содержится в зловреде в секции данных и расшифровывается с помощью простого XOR-шифра. Оркестратор находится в секции ресурсов и маскируется под файл шрифтов. Также Dante может загрузить оркестратор из файловой системы, если доступна обновленная версия.

Качество кода оркестратора соответствует коммерческому продукту, но сам по себе он не особо интересный. Он отвечает за связь с C2 по протоколу HTTPs, управление модулями и конфигурацией, самозащиту и самоудаление.

Модули могут сохраняться в файловую систему и загружаться оттуда или же загружаться из памяти. Для вычисления пути к папке с модулями используются части строки, полученной путем кодирования идентификатора инфекции (GUID) в Base64. Таким же способом выводится путь к дополнительным настройкам, сохраненным в реестре.

Пример схемы вывода путей Dante

Пример схемы вывода путей Dante

В папке с модулями находится бинарный файл, который содержит данные обо всех скачанных модулях — их версии и имена файлов. Этот файл шифруется при помощи простого XOR-шифра, тогда как файлы модулей зашифрованы по алгоритму AES-256-CBC. В качестве IV используются первые 0x10 байт файла модуля, а ключ привязан к машине жертвы и равен хэшу SHA-256 от буфера, содержащего идентификатор CPU и Windows Product ID.

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

Если Dante не получает команды в течение заданного в конфигурации количества дней, зловред удаляет себя и все следы своей активности.

На момент написания этого отчета мы не смогли изучить дополнительные модули, поскольку среди наших пользователей не было активных заражений Dante. Однако мы с радостью исследуем их, если сможем получить. Мы надеемся, что теперь, когда информация об этом шпионском ПО уже опубликована, а его разработчик идентифицирован, не придется долго ждать обнаружения и анализа этих модулей. Чтобы ускорить этот процесс, мы публикуем метод, с помощью которого можно выявить активное заражение Dante (см. раздел «Индикаторы компрометации»).

Хотя мы не видели Dante в операции «Форумный тролль», мы наблюдали этот зловред в других атаках группы ForumTroll. Кроме того, мы выявили ряд совпадений в атаках операции «Форумный тролль» и инцидентах с использованием Dante: одинаковые пути к файлам, один и тот же механизм закрепления в системе, данные, скрытые в файлах шрифтов, и другие, менее значительные детали. Более того, мы обнаружили совпадения в коде эксплойта, загрузчика и Dante. Все это вместе позволяет предполагать, что операция «Форумный тролль» проводилась с помощью набора инструментов, поставляющегося в комплекте с Dante.

Заключение

В этот раз мы хотим сделать не один, а сразу три вывода.

1) DuplicateHandle — это опасная API-функция. Если процесс привилегированный, и пользователь может передать ему дескриптор, необходимо отвечать ошибкой, если вместо дескриптора передается псевдодескриптор.

2) Атрибуция — самая сложная часть анализа вредоносного ПО и разведки киберугроз, но она же доставляет больше всего удовлетворения, когда все кусочки пазла ложатся на свои места. Если в детстве вы мечтали стать детективом и разгадывать тайны (как Шерлок Холмс, мисс Марпл, Коломбо, Скуби-Ду и ребята из Mystery Inc.), аналитика угроз может быть подходящей работой для вас!

3) В 2019 году новый владелец Hacking Team заявил, что хочет поменять абсолютно все и начать с чистого листа. Это потребовало время, но к 2022 году практически все продукты Hacking Team были переделаны. Возможно, теперь, когда Dante обнаружен, пора опять начинать с нуля?

Все детали этого исследования, в также информация о группе ForumTroll и шпионском ПО Dante, которую мы получим в будущем, доступны подписчикам нашего сервиса по предоставлению актуальных данных об APT-угрозах на Threat Intelligence Portal.

Связаться с нами можно по почте: intelreports@kaspersky.com.

Индикаторы компрометации

Вердикты «Лаборатории Касперского»
Exploit.Win32.Generic
Exploit.Win64.Agent
Trojan.Win64.Agent
Trojan.Win64.Convagent.gen
HEUR:Trojan.Script.Generic
PDM:Exploit.Win32.Generic
PDM:Trojan.Win32.Generic
UDS:DangerousObject.Multi.Generic

Папка с модулями
Папка с модулями Dante расположена в %LocalAppData%. Ее имя представляет собой строку в Base64 длиной в восемь байт. В ней содержатся файлы без расширений с именами в виде строк в Base64 длиной в восемь байт. Имя одного из файлов совпадает с именем папки. Эту информацию можно использовать для того, чтобы идентифицировать активные заражения.

Загрузчик
7d3a30dbf4fd3edaf4dde35ccb5cf926
3650c1ac97bd5674e1e3bfa9b26008644edacfed
2e39800df1cafbebfa22b437744d80f1b38111b471fa3eb42f2214a5ac7e1f13

LeetAgent
33bb0678af6011481845d7ce9643cedc
8390e2ebdd0db5d1a950b2c9984a5f429805d48c
388a8af43039f5f16a0673a6e342fa6ae2402e63ba7569d20d9ba4894dc0ba59

Dante
35869e8760928407d2789c7f115b7f83
c25275228c6da54cf578fa72c9f49697e5309694
07d272b607f082305ce7b1987bfa17dc967ab45c8cd89699bcdced34ea94e126

Mem3nt0 mori – Hacking Team снова с нами!

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

Отчеты

Mem3nt0 mori – Hacking Team снова с нами!

Исследователи «Лаборатории Касперского» впервые обнаружили шпионское ПО Dante, разработанное Memento Labs (бывшей Hacking Team) в дикой природе и нашли его связь с APT ForumTroll.