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

31 Mar 2026 16:57

Лабораторія безпеки Elastic виявляє BRUSHWORM та BRUSHLOGGER

Author Photo
Ruslan Mikhalov Керівник досліджень загроз у SOC Prime linkedin icon Стежити
Лабораторія безпеки Elastic виявляє BRUSHWORM та BRUSHLOGGER
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Elastic Security Labs виявила дві користувацькі родини шкідливого програмного забезпечення, BRUSHWORM і BRUSHLOGGER, що використовуються проти фінансової установи в Південній Азії. BRUSHWORM – це модульний бекдор, що підтримує стійкість через заплановане завдання, поширюється через знімні носії та викрадає файли з широкого діапазону розширень. BRUSHLOGGER – це кейлоггер з завантаженням DLL, який фіксує натискання клавіш разом з контекстом активного вікна і зберігає журнали у формі, зашифрованій за допомогою XOR. Обидва зразки шкідливого програмного забезпечення відносно прості та демонструють ознаки постійного розвитку методом проб і помилок.

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

Під час розслідування аналітики виявили виконуваний файл бекдору paint.exe та DLL кейлоггер libcurl.dll, потім дослідили їхні методи стійкості, конфігураційну логіку, поведінку USB-розповсюдження і каталоги підготовки даних. На VirusTotal також були знайдені старі розробки, такі як V1.exe, V2.exe та V4.exe, де вони були пов’язані з безкоштовною інфраструктурою динамічного DNS для командування та управління. Звіт також задокументував заплановані завдання шкідливого програмного забезпечення, м’ютекси та угоди про шлях до файлів.

Захист

Захисники повинні запобігати виконанню невідомих бінарних файлів з шляхів ProgramData та Public, контролювати створення запланованих завдань під назвою MSGraphics або MSRecorder, а також виявляти м’ютекс Windows-Updates-KB852654856. Організації також повинні вимикати або обмежувати автоматичний запуск з знімних носіїв і перевіряти підозрілі імена файлів-винищувачів. Логування та перевірка трафіку WinHTTP до ідентифікованого домену C2 повинні забезпечуватися.

Відповідь

Якщо виявлено активність BRUSHWORM або BRUSHLOGGER, обов’язково ізолюйте кінцеву точку, збережіть зразки paint.exe та libcurl.dll, зафіксуйте докази запланованих завдань і видаліть шкідливі файли з усіх користувацьких та загальнодоступних каталогів. Дослідники також повинні сканувати знімні накопичувачі на наявність бінарників-лурів, видалити папку підготовленої ексфільтрації, скинути уражені облікові дані та стежити за отриманням додаткових завантажень з сервера C2.

"граф TB %% Секція визначення класів classDef technique fill:#cfe2f3 %% Визначення вузлів exec_check["<b>Техніка</b> – T1497.002 Ухилення від віртуалізації/пісочниці:<br/>Перевіряє активність користувача, роздільну здатність екрану, ім’я користувача, ім’я комп’ютера, CPUID рядки гіпервізора та рухи миші, щоб припинити в середовищі аналізу."] class exec_check technique persistence_task["<b>Техніка</b> – T1053 Заплановане завдання/робота:<br/>Створює в Windows заплановане завдання під назвою MSGraphics, яке запускає бекдор при кожному вході користувача."] class persistence_task technique c2_contact["<b>Техніка</b> – T1071 Протокол прикладного шару:<br/>Бекдор контактує з C2 сервером через HTTPS, використовуючи WinHTTP."] class c2_contact technique encrypted_channel["<b>Техніка</b> – T1573 Зашифрований канал:<br/>Встановлює зашифрований канал для завантаження додаткових модулів."] class encrypted_channel technique shared_module["<b>Техніка</b> – T1129 Загальні модулі:<br/>Завантажує DLL-пейлоад (Recorder.dll) з C2 сервера."] class shared_module technique second_task["<b>Техніка</b> – T1053 Заплановане завдання/робота:<br/>Створює друге заплановане завдання, яке запускає Recorder.dll через rundll32.exe."] class second_task technique dll_side["<b>Техніка</b> – T1574.001 DLL з боковим завантаженням:<br/>Зловмисний libcurl.dll завантажується для захоплення виконання."] class dll_side technique keylogging["<b>Техніка</b> – T1056.001 Кейлогінг:<br/>DllMain встановлює гаку нижчого рівня для захоплення натискань клавіш, заголовків вікон та часових міток."] class keylogging technique obfuscation["<b>Техніка</b> – T1027 Вуалювання файлів або інформації:<br/>Файли логів зашифровані за допомогою XOR; конфігураційні дані записані у відкритому тексті, а потім видалені."] class obfuscation technique local_staging["<b>Техніка</b> – T1074.001 Локальна підготовка даних:<br/>Зібрані файли копіюються в C: Користувачі Публічні Системна інформація та ведеться журнал хешу, щоб уникнути дублювання викрадення."] class local_staging technique usb_propagation["<b>Техніка</b> – T1092 Спілкування через знімні носії:<br/>Коли Інтернет доступний, шкідливе ПЗ копіює себе на підключені USB носії, використовуючи імена файлів-винищувачів."] class usb_propagation technique usb_data_exfil["<b>Техніка</b> – T1025 Дані з знімних носіїв:<br/>Продовжує викрадення файлів з USB носіїв."] class usb_data_exfil technique physical_exfil["<b>Техніка</b> – T1052.001 Ексфільтрація через фізичний носій:<br/>Якщо Інтернет відсутній, викрадені файли копіюються на знімні носії для фізичної ексфільтрації."] class physical_exfil technique %% Зв’язки, що відображають потік exec_check –>|викликає| persistence_task persistence_task –>|виконує| c2_contact c2_contact –>|встановлює| encrypted_channel c2_contact –>|завантажує| shared_module shared_module –>|створює| second_task second_task –>|запускає| dll_side dll_side –>|завантажує| keylogging keylogging –>|виробляє| obfuscation obfuscation –>|зберігає| local_staging local_staging –>|копіює в| usb_propagation usb_propagation –>|ексфільтрация з| usb_data_exfil local_staging –>|використовує для| physical_exfil "

Потік атаки

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

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

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

  • Наратив атаки та команди:
    Нападник отримав зловмисну DLL (evil.dll) яка, коли виконується через rundll32.exe, скидає пейлоад-вимагач та записує зашифровані дані на USB-диск. Щоб уникнути підозр, нападник спочатку використовує paint.exe щоб створити зображення, що виглядає безневинно, на знімному носії, потім використовує rundll32.exe для завантаження прихованої в тому ж каталозі зловмисної DLL. Обидві дії генерують події створення процесу, які відповідають правилу Sigma.

  • Скрипт регресійного тестування:

    # -------------------------------
    # Симуляція зловживання Paint + Rundll32
    # -------------------------------
    
    # 1. Створіть тимчасову робочу директорію
    $workDir = "$env:TEMPPaintRundllSim"
    New-Item -ItemType Directory -Path $workDir -Force | Out-Null
    
    # 2. Скопіюйте легітимне зображення на USB (симулюється $workDir)
    $imagePath = Join-Path $workDir "innocent.png"
    Invoke-WebRequest -Uri "https://via.placeholder.com/150" -OutFile $imagePath
    
    # 3. Запустіть Paint для відкриття зображення (безпечне використання – все ще відповідає правилу)
    Start-Process -FilePath "$env:WINDIRsystem32mspaint.exe" -ArgumentList "`"$imagePath`"" -PassThru | Out-Null
    
    # 4. Скиньте зловмисну DLL (симулюється; реальний пейлоад буде прихованим)
    $dllPath = Join-Path $workDir "evil.dll"
    $dllBytes = [byte[]] (0x4D,0x5A,0x90,0x00) # Мінімальна заголовка PE-placeholder
    [IO.File]::WriteAllBytes($dllPath, $dllBytes)
    
    # 5. Виконайте DLL через Rundll32 (це зловмисний крок)
    Start-Process -FilePath "$env:WINDIRsystem32rundll32.exe" `
                 -ArgumentList "`"$dllPath`,EntryPoint`"" -PassThru | Out-Null
    
    # 6. Пауза для забезпечення передачі у SIEM
    Write-Host "Симуляція виконана. Зачекайте ~30 секунд, щоб журнали з’явилися у SIEM."
  • Команди очищення:

    # Видалити тимчасові файли та процеси
    Stop-Process -Name mspaint -ErrorAction SilentlyContinue
    Stop-Process -Name rundll32 -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:TEMPPaintRundllSim" -Recurse -Force
    Write-Host "Очищення завершено."