SOC Prime Bias: Критичний

16 Feb 2026 17:31

Операція MacroMaze: нова кампанія APT28 з використанням базових інструментів та легальної інфраструктури

Author Photo
Ruslan Mikhalov Керівник досліджень загроз у SOC Prime linkedin icon Стежити
Операція MacroMaze: нова кампанія APT28 з використанням базових інструментів та легальної інфраструктури
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

APT28 (Fancy Bear) провела операцію з фішингу, названу «Operation MacroMaze», націлену на організації по Західній та Центральній Європі. Приманкою були озброєні документи Word з макросами, які витягували додаткові скрипти і передавали вкрадені дані через легітимні служби вебхуків. Ланцюг дотримується інструментів з невисоким тертям — VBS, пакетні скрипти та Microsoft Edge, запущені в прихованому або безголівному режимі — утримуючи інфраструктуру на публічному сервісі webhook.site.

Розслідування

Lab52 відстежувала чотири варіанти макросів між вереснем 2025 та січнем 2026 року, помічаючи ітеративні зміни в поведінці дроппера, стійке завдання запланованих завдань та ексфільтрацію, спрямовану браузером. Аналітики виділили повторювальні індикатори, включаючи поля INCLUDEPICTURE, імена файлів в стилі GUID та автоматизацію, засновану на SendKeys. Вони також вилучили відповідні артефакти, URL-адреси та конкретний процес створення запланованих завдань, використовуваний для підтримання доступу.

Захист

Вимкніть автоматичну виконання макросів у Office та застосуйте строгий обробник вкладень в Outlook. Моніторте створення підозрілих запланованих завдань та аномальні запуски Microsoft Edge в безголівному або позаекранному режимах. Блокуйте або сигналізуйте про вихідний трафік до webhook.site та схожих публічних платформ вебхуків. Використовуйте список дозволених додатків для обмеження виконання невідомих файлів VBS та пакетних файлів.

Відповідь

Якщо виявлено активність, ізолюйте хост, збережіть шкідливий документ і пов’язані артефакти, і знайдіть створені заплановані завдання та завантажені файли. Захопіть мережеві дані для виявлення кінцевих точок ексфільтрації та видалення будь-яких шкідливих запланованих завдань. Виконайте судову експертизу для виявлення крадіжки облікових даних та сповістіть зацікавлені сторони. Оновіть виявлення, щоб охопити виявлені IOC та поведінкові шаблони.

“graph TB %% Class definitions classDef technique fill:#c2e0ff %% Node definitions t1566_001[“<b>Техніка</b> – T1566.001<br/><b>Назва</b>: Фішинг з вкладеннями<br/><b>Опис</b>: Надіслати електронний лист з шкідливим вкладенням, яке при відкритті доставляє корисне навантаження.”] class t1566_001 technique t1204[“<b>Техніка</b> – T1204<br/><b>Назва</b>: Виконання користувача<br/><b>Опис</b>: Жертва запускає шкідливий файл або скрипт, ініціюючи атаку.”] class t1204 technique t1564_007[“<b>Техніка</b> – T1564.007<br/><b>Назва</b>: Приховати артефакти: Зміна VBA<br/><b>Опис</b>: Змінити код макроса VBA для приховування шкідливого вмісту з одночасним збереженням функціональності.”] class t1564_007 technique t1059_005[“<b>Техніка</b> – T1059.005<br/><b>Назва</b>: Visual Basic<br/><b>Опис</b>: Виконання команд за допомогою скриптів Visual Basic для додатків (VBA).”] class t1059_005 technique t1137_001[“<b>Техніка</b> – T1137.001<br/><b>Назва</b>: Макроси Office шаблонів<br/><b>Опис</b>: Поширення шкідливих макросів через шаблонні файли Office.”] class t1137_001 technique t1546_002[“<b>Техніка</b> – T1546.002<br/><b>Назва</b>: Виконання зі спрацьовуванням подій: Заставка<br/><b>Опис</b>: Зареєстровані шкідливі заставки, які виконуються при запуску подій.”] class t1546_002 technique t1218_001[“<b>Техніка</b> – T1218.001<br/><b>Назва</b>: Компільований HTML файл<br/><b>Опис</b>: Використання компільованих HTML (CHM) файлів для запуску коду на системі жертви.”] class t1218_001 technique t1027_006[“<b>Техніка</b> – T1027.006<br/><b>Назва</b>: HTML прикриття<br/><b>Опис</b>: Кодування шкідливого навантаження у HTML, щоб обійти засоби безпеки.”] class t1027_006 technique t1102_001[“<b>Техніка</b> – T1102.001<br/><b>Назва</b>: Dead Drop Resolver<br/><b>Опис</b>: Використання Dead Drop Resolver для отримання команд або ексфільтрації даних.”] class t1102_001 technique t1102_002[“<b>Техніка</b> – T1102.002<br/><b>Назва</b>: Дводіалоговий зв’язок<br/><b>Опис</b>: Встановлення двостороннього каналу зв’язку для командування і керування.”] class t1102_002 technique t1102_003[“<b>Техніка</b> – T1102.003<br/><b>Назва</b>: Односторонній зв’язок<br/><b>Опис</b>: Використання одностороннього каналу для відправлення даних з мережі.”] class t1102_003 technique t1074_001[“<b>Техніка</b> – T1074.001<br/><b>Назва</b>: Локальне накопичення даних<br/><b>Опис</b>: Збір та накопичення зібраних даних на локальному хості перед ексфільтрацією.”] class t1074_001 technique t1074_002[“<b>Техніка</b> – T1074.002<br/><b>Назва</b>: Віддалене накопичення даних<br/><b>Опис</b>: Передача накопичених даних до віддаленого місця для подальшої ексфільтрації.”] class t1074_002 technique t1560_001[“<b>Техніка</b> – T1560.001<br/><b>Назва</b>: Архівування утилітами<br/><b>Опис</b>: Стиснення накопичених даних за допомогою архівних утиліт.”] class t1560_001 technique t1567_004[“<b>Техніка</b> – T1567.004<br/><b>Назва</b>: Ексфільтрація через вебхук<br/><b>Опис</b>: Відправлення ексфільтрованих даних зовнішній службі через вебхук.”] class t1567_004 technique %% З’єднання t1566_001 u002du002d>|веде до| t1204 t1204 u002du002d>|веде до| t1564_007 t1564_007 u002du002d>|веде до| t1059_005 t1059_005 u002du002d>|веде до| t1137_001 t1137_001 u002du002d>|веде до| t1546_002 t1546_002 u002du002d>|веде до| t1218_001 t1218_001 u002du002d>|веде до| t1027_006 t1027_006 u002du002d>|веде до| t1102_001 t1102_001 u002du002d>|веде до| t1102_002 t1102_002 u002du002d>|веде до| t1102_003 t1102_003 u002du002d>|веде до| t1074_001 t1074_001 u002du002d>|веде до| t1074_002 t1074_002 u002du002d>|веде до| t1560_001 t1560_001 u002du002d>|веде до| t1567_004 “

Потік атаки

Імітація виконання

Передумова: Телеметрія та перевірка базової лінії повинні бути пройдені.

Обґрунтування: У цьому розділі детально описується точне виконання техніки противника (TTP), спроектованої для спрацьовування правила виявлення. Команди та оповідь МАЮТЬ безпосередньо відображати виявлені TTP і націлені на створення точної телеметрії, очікуваної логікою виявлення.

  • Атака і команди:

    APT28-стильний макрос із Word, що доставляється через фішинг. Коли документ відкрито, макрос запускає невеликий VBScript, який створює WScript.Shell об’єкт. Цей об’єкт потім використовується для запуску cmd.exe з навантаженням, яке записує base‑64‑закодовану реверсивну оболонку PowerShell у тимчасовий файл і виконує її. Послідовність генерує дві події створення процесу, які відповідають правилу Sigma:

    1. wscript.exe (or cscript.exe) запускає VBScript, що містить WScript.Shell.
    2. Той же VBScript викликає WScript.Shell.Run "cmd.exe /c powershell -nop -w hidden -EncodedCommand …" що порождає cmd.exe.

    Взаємозв’язок батько-дитина і присутність WScript.Shell в командному рядку — це точні індикатори, які шукає правило.

  • Скрипт тестування регресу:

    # -------------------------------------------------------
    # Імітація MacroMaze – запускає wscript.exe → cmd.exe
    # -------------------------------------------------------
    # 1. Створити тимчасовий VBS, що використовує WScript.Shell для запуску cmd.exe
    $vbsContent = @"
    Set sh = CreateObject("WScript.Shell")
    sh.Run "cmd.exe /c echo Шкідливе навантаження виконано > %TEMP%payload.txt"
    "@
    $vbsPath = "$env:TEMPmacromaze.vbs"
    $vbsContent | Set-Content -Path $vbsPath -Encoding ASCII
    
    # 2. Виконати VBS через wscript.exe (згенерує бажану телеметрію)
    Start-Process -FilePath "wscript.exe" -ArgumentList "`"$vbsPath`"" -WindowStyle Hidden
    
    # Опціонально: пауза для дозволу SIEM на обробку подій
    Start-Sleep -Seconds 5
    # -------------------------------------------------------
  • Команди очищення:

    # Видалення тимчасового VBS та файлу навантаження
    Remove-Item -Path "$env:TEMPmacromaze.vbs" -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:TEMPpayload.txt" -ErrorAction SilentlyContinue