APT-C-20 (Fancy Bear) применил макросы, COM-хук и облачный сервис Filen для скрытого доступа

APT

Группировка APT-C-20 (известная также как Fancy Bear и APT28) с 2004 года ведёт целенаправленный кибершпионаж против правительственных структур. Её методы постоянно совершенствуются. Специалисты 360 Advanced Threat Research зафиксировали новую кампанию, в которой злоумышленники использовали многоступенчатую цепочку заражения, не оставляющую классических файловых артефактов на диске.

Описание

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

Макрос, согласно предоставленному анализу, выполняет несколько действий в строгой последовательности. Сначала он проверяет подключение к Dropbox (вероятно, для контроля доступности внешней сети). Затем копирует сам себя в системную временную папку. После этого из тела документа извлекаются два файла: вредоносная библиотека dnxstore.dll и PNG-изображение EdgeLogo.png, внешне неотличимое от значка Edge. Эти файлы помещаются в каталог %PROGRAMDATA%\Microsoft\DeviceSync\DNX и %PROGRAMDATA%\Microsoft\DeviceSync\EdgeSync соответственно.

Для закрепления в системе макрос редактирует реестр. Он добавляет запись в разделе HKEY_CURRENT_USER\Software\Classes\CLSID\{68DDBB56-9D1D-4FD9-89C5-C0DA2A625392}\InProcServer32, указывая путь к dnxstore.dll. Идентификатор {68DDBB56-9D1D-4FD9-89C5-C0DA2A625392} соответствует системному объекту UnexpectedShutdownReason, который штатно запрашивается процессом explorer.exe при инициализации. Таким образом, любая попытка проводника создать этот объект приведёт к загрузке вредоносной DLL из реестрового пути - классический приём COM-хука.

На этапе закрытия документа макрос активирует полезную нагрузку. Он не вызывает напрямую regsvr32 или другие подозрительные утилиты, а использует функцию CreateProcessW из kernel32.dll для скрытного запуска explorer.exe с параметром скрытого окна. Запущенный таким образом проводник при старте обращается к зарегистрированному COM-классу, что инициирует загрузку dnxstore.dll в память системного процесса. Дополнительно макрос снова меняет видимость графических объектов в документе, чтобы при повторном открытии файл по-прежнему выглядел как пустая страница с предложением включить макрос. Это затрудняет статический анализ и последующее обнаружение.

Библиотека dnxstore.dll выполняет функции загрузчика. Она проверяет, из какого процесса запущена. Если процесс - regsvr32.exe, работа прекращается (это указывает на попытку анализа). Если текущий процесс - explorer.exe, сценарий считается штатным и продолжается. Далее загрузчик выдерживает паузу в 5 секунд и измеряет реальную задержку. В песочницах часто ускоряют системные таймеры, и если разница между двумя замерами меньше 4,9 секунды, выполнение останавливается - это анти-отладка.

Затем библиотека открывает файл EdgeLogo.png. Изображение выглядит безобидным, но его пиксели скрывают данные с помощью техники LSB (замена младших битов цветовых каналов). Загрузчик использует встроенный ключ и алгоритм PBKDF2 для генерации AES-256 ключа. Из пикселей извлекаются соль и вектор инициализации, затем расшифровывается 64-байтный заголовок, содержащий метаданные о реальном местонахождении полезной нагрузки внутри изображения. После этого извлекается и выполняется в памяти shellcode, который в свою очередь разворачивает финальную стадию - C#-программу Publish.exe.

Финальная нагрузка представляет собой удалённый доступ к системе через облачный сервис Filen.io. Код сильно обфусцирован: имена функций и переменных заменены случайными наборами символов. Программа генерирует уникальный идентификатор на основе имени домена и учётной записи пользователя. Она формирует JSON-пакет, содержащий GUID, тип, метаданные, зашифрованное сообщение и HMAC-подпись. Этот пакет дополнительно кодируется через XOR и Base64. Затем устанавливается соединение с одним из заранее заданных шлюзов Filen.io (gateway.filen.io, gateway.filen.net). Система поддерживает несколько резервных узлов, чтобы избежать потери связи при блокировке одного из них.

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

Методология атаки полностью соответствует известному почерку APT-C-20. Использование макросов с COM-хуком, загрузчик с декодированием из PNG (PixyNetLoader), применение протокола Filen.io для скрытого управления - все эти приёмы ранее уже фиксировались в отчётах, в том числе в материалах, опубликованных 360. Целевая аудитория кампании - государственные учреждения в Восточной Европе, что подтверждается как содержанием документов-приманок, так и географией загрузок образцов.

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

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

MD5

  • 1cbffddcb8e1e839737bbf6e50a80aaf
  • 77014b3e77529079f041b5b9e73a013b
  • b077401fe3d9642345d4c3deafa60aa5
  • c517d1f4385e0d6e8fa5932d17873eb8
  • d416eca59188474efa3408827578588b
  • f10d1676b570aa4d97edb844fbb51287

Комментарии: 0