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

11 Feb 2026 15:47 UTC

Детальний аналіз нової кампанії XWorm, що використовує різнотематичні фішингові листи

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Стежити
Детальний аналіз нової кампанії XWorm, що використовує різнотематичні фішингові листи
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

FortiGuard Labs спостерігали за багатоступеневою фішинговою кампанією, яка розповсюджувала троян віддаленого доступу XWorm через шкідливі Excel-вкладення. Документ зловживає вразливістю CVE-2018-0802 в Microsoft Equation Editor для отримання HTA-файлу, який потім запускає безфайлове завантаження .NET, що використовує hollowing процесу для ін’єкції XWorm у новостворений процес Msbuild.exe. RAT взаємодіє зі своїм C2, використовуючи AES-зашифрований трафік, і підтримує широкий набір команд з підтримкою плагінів для розширеного контролю. Кампанія демонструє складне використання бінарних файлів living-off-the-land та безфайлових методів для досягнення стійкого віддаленого контролю над компрометованими кінцевими точками.

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

Аналітики відновили потік від фішингового електронного листа до експлуатації Excel OLE, виконання HTA, завантаження PowerShell-модуля .NET та кінцевого hollowing процесу в Msbuild.exe. Статичний та динамічний огляд виділив дані корисного навантаження, закодовані в Base64, приховані в зображенні JPEG, з кінцевим компонентом XWorm, завантаженим у пам’ять без записування розшифрованого виконуваного файлу на диск під час виконання. Захоплення мережевого трафіку показали пакети AES-зашифровані, відправлені на C2 домен berlin101.com через порт 6000. Звіт також каталогізував розширений набір команд та архітектуру плагінів XWorm.

Захист

FortiGuard рекомендує включити захист макросів і OLE, застосувати патч для CVE-2018-0802 та обмежити виконання Msbuild, PowerShell і HTA файлів, що надходять із вмісту електронної пошти. Розгорніть веб-фільтрацію, контролі проти фішингу та підписи IDS/IPS, пов’язані з виявленими індикаторами, щоб заблокувати доставку та стадіювання на шлюзі. Моніторьте аномальні дерев процесів — особливо Msbuild.exe, запущений з PowerShell — для раннього виявлення експлуатації.

Відповідь

Після виявлення ізолюйте уражену кінцеву точку, завершіть шкідливі процеси та видаліть завантажений XWorm модуль з пам’яті. Збирайте судові артефакти, включаючи командно-строкову телеметрію, мережеві журнали та зміни в реєстрі, щоб визначити масштаб вторгнення. Скиньте потенційно компрометовані облікові дані, оновіть вразливий компонент Equation Editor та заблокуйте шкідливі домени та сервер C2. Застосуйте загрозливі оновлення до виявлень EDR/SIEM, щоб запобігти повторному виникненню та полювання за пов’язаною діяльністю по всьому середовищу.

Потік Атаки

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

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

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

  • Опис атаки й команди:

    1. Початкове падіння: Зловмисник доставляє шкідливий Excel файл, який експлуатує CVE‑2018‑0802. Для імітації ми оминаємо експлойт і безпосередньо запускаємо корисне навантаження.
    2. Hollowing процесу через EQNEDT32.EXE: Запуск EQNEDT32.EXE з командним рядком, що викликає ShellExecuteExW() щоб замаскуватися під легітимний компонент Office.
    3. Msbuild.exe бічне виконання: Запустити Msbuild.exe з CreateProcessA() для компіляції прихованого .NET-пейлоаду на льоту.
    4. Файлове виконання .NET: Use powershell.exe з командою, закодованою в base64, завантажуючи відбивну .NET-асамблею (T1620). Командний рядок містить буквально слово CreateProcessA() щоб задовольнити правило.
  • Скрипт регресійного тесту:

    <#
    Імітує ланцюг виконання XWorm:
    1. EQNEDT32.exe з ShellExecuteExW()
    2. Msbuild.exe з CreateProcessA()
    3. PowerShell з відбивною завантаженням .NET без файлів з створенням CreateProcessA()
    #>
    
    # 1. EQNEDT32.exe (Hollowing процесу)
    $eqnPath = "$env:SystemRootSystem32EQNEDT32.EXE"
    $eqnArgs = "-Command "ShellExecuteExW()""
    Start-Process -FilePath $eqnPath -ArgumentList $eqnArgs -WindowStyle Hidden
    
    # 2. Msbuild.exe (Динамічна ін'єкція DLL)
    $msbuildPath = "$env:ProgramFilesMicrosoft Visual Studio2022CommunityMSBuildCurrentBinMsbuild.exe"
    $msbuildArgs = "/t:Compile /p:UseShellExecute="CreateProcessA()""
    Start-Process -FilePath $msbuildPath -ArgumentList $msbuildArgs -WindowStyle Hidden
    
    # 3. PowerShell (Файлове відбивне завантаження .NET)
    # Приклад .NET корисного навантаження (заповнювач), закодований в base64
    $payload = "W3siQmFzZURhdGEiOiAiIiB9XQ=="   # фіктивний base64
    $psArgs = "-EncodedCommand $payload -ArgumentList "CreateProcessA()""
    Start-Process -FilePath "powershell.exe" -ArgumentList $psArgs -WindowStyle Hidden
    
    Write-Host "Імітація XWorm завершена."
  • Команди очищення:

    # Завершіть будь-які завислі процеси імітації
    Get-Process -Name "EQNEDT32","Msbuild","powershell" -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # За бажанням видаліть тимчасові файли (не створені в цій чисто-процесній імітації)
    Write-Host "Очищення завершено."