SOC Prime Bias: Середній

04 Feb 2026 17:07

Інструмент Swarmer обходить EDR за допомогою прихованої модифікації в реєстрі Windows для збереження

Author Photo
Ruslan Mikhalov Керівник досліджень загроз у SOC Prime linkedin icon Стежити
Інструмент Swarmer обходить EDR за допомогою прихованої модифікації в реєстрі Windows для збереження
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Swarmer — це утиліта для Windows з низьким привілеєм, що створює обов’язковий профіль користувача (NTUSER.MAN) та редагує його через Offline Registry API. Оскільки вона не залежить від звичайних API Reg* Windows, вона здатна забезпечувати персистентність ключа Run, водночас знижуючи видимість телеметрії EDR, налаштованої на стандартну поведінку запису в реєстр. Метод зловживає обробкою обов’язкових профілів для переносу записів запуску між сесіями без прав адміністратора. Swarmer доступний як у вигляді окремого виконуваного файлу, так і у вигляді модуля PowerShell, і може використовуватись способами, що мінімізують артефакти на диску.

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

Звіт описує повний процес Swarmer: він експортує поточний вулик HKCU, змінює експортовані дані для включення персистентності при запуску і реконструює вулик за допомогою процедур Offreg.dll, таких як ORCreateHive та ORSetValue. Відновлений вулик потім розміщується як NTUSER.MAN в шляху профілю користувача, щоб застосуватись при вході в систему. Виконання контролюється через параметри командного рядка, які визначають цільове значення запуску та місце розташування корисного навантаження для виконання. Автори перевірили техніку на Windows 10 та Windows 11.

Пом’якшення

Моніторинг створення NTUSER.MAN в контекстах користувачів, де не очікується наявність обов’язкових профілів, і сигналізація про завантаження Offreg.dll незвичайними процесами. Захистіть та перевірте цілісність каталогів, що використовуються для обов’язкових профілів, і визначте базову лінію легітимних операцій з оффлайн-реєстру, щоб відхилення виділялися. Додайте виявлення підозрілих змін у вуликах, що вступають в силу при вході в систему, а не під час виконання. Де це можливо, обмежте здатність користувача створювати або маніпулювати артефактами обов’язкових профілів.

Відповідь

Якщо ідентифіковано, ізолюйте кінцеву точку, отримайте вулик NTUSER.MAN для аналізу і перелічіть всі введені ключі запуску. Видаліть несанкціоновані значення запуску і відновіть відомий справний вулик користувача для ліквідації персистентності. Проведіть ширший форензійний огляд, щоб підтвердити відсутність вторинних корисних навантажень або альтернативних шляхів персистентності, і здійсніть пошук по всій інфраструктурі за тією ж схемою запису вулика. Посиліть контроль за найменшими привілеями для запобігання створенню обов’язкових профілів користувачами з низькими привілеями.

Хід атаки

Ми ще оновлюємо цю частину. Підпишіться, щоб отримувати повідомлення

Повідомити мене

Виконання симуляції

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

Обґрунтування: Цей розділ деталізує точне виконання техніки противника (TTP), призначеної для виклику правила виявлення. Команди та описи ПОВИННІ безпосередньо відображати ідентифіковані TTP та прагнути генерувати точну телеметрію, очікувану логікою виявлення. Абстрактні або нерелевантні приклади призведуть до невірної діагностики.

  • Опис атаки та команди:
    Атакуючий отримав доступ до скомпрометованого хоста та бажає встановити персистентність, що зберігається при вході користувача, не торкаючись стандартних вуликів реєстру (щоб уникнути гачків EDR). Використовуючи Swarmer інструмент, нападник:

    1. Визначає каталог профілю цільового користувача (C:Usersvictim).
    2. Створює шкідливий файл вулика (NTUSER.MAN) що містить ключ Run, який запускає бекдор навантаження при вході.
    3. Пише файл безпосередньо в профіль жертви, використовуючи низькорівневе введення/вивід файлів (обходячи високорівневі виклики WinAPI).
    4. Викликає Offline Registry API ORCreateHive щоб завантажити новостворений вулик в пам’ять, реєструє ключ Run, і нарешті викликає ORSaveHive щоб зберегти зміни.

    Обидві дії генерують:

    • Sysmon EventID 11 – створення файлу, що закінчується на NTUSER.MAN.
    • Security EventID 4688 – процес (swarmer.exe), чий командний рядок містить ORCreateHive (або інший прапор OR*).
  • Скрипт регресійного тестування:

    #--------------------------------------------------------------
    # Імітація персистентності реєстру в стилі Swarmer (PowerShell)
    #--------------------------------------------------------------
    # 1. Визначте шлях профілю жертви
    $victimProfile = "$env:SystemDriveUsersvictim"
    $ntUserManPath = Join-Path $victimProfile "NTUSER.MAN"
    
    # 2. Створіть мінімальний файл вулика (бінарний заповнювач)
    # У реальній атаці це був би створений вулик реєстру.
    $hiveBytes = [byte[]] (0..255)               # фіктивні дані
    [IO.File]::WriteAllBytes($ntUserManPath, $hiveBytes)
    
    # 3. Викличте Offline Registry API через допоміжний виконуваний файл.
    # Припускаємо, що swarmer_helper.exe - це скомпільований бінарний файл, що обгортає
    # рідні функції Offline Registry.
    $helper = "C:Toolsswarmer_helper.exe"
    $args = @(
        "ORCreateHive", "`"$ntUserManPath`""
        "ORSetValue", "HKLMSoftwareMicrosoftWindowsCurrentVersionRunmyBackdoor", "`"C:Malwarebackdoor.exe`""
        "ORSaveHive", "`"$ntUserManPath`""
    )
    & $helper $args
    #--------------------------------------------------------------
  • Команди очищення:

    # Видаліть шкідливий вулик і розгрузіть його, якщо потрібно
    Remove-Item -Path "$env:SystemDriveUsersvictimNTUSER.MAN" -Force
    # Якщо допоміжний файл залишив якісь завантажені в пам'ять вулики, примусьте їх розгрузити (приклад)
    & "$env:ProgramFilesWindows Kits10binx64reg.exe" unload "HKUTempHive"