Привид у сховищі: Obsidian використовується для доставки PhantomPulse RAT
Detection stack
- AIDR
- Alert
- ETL
- Query
Короткий зміст
Elastic Security Labs виявили нову кампанію соціальної інженерії, яка зловживає платформою Obsidian для ведення нотаток та екосистемою плагінів спільноти для доставки PhantomPulse, раніше не задокументованого RAT, що націлюється на системи Windows та macOS. Операція, здається, спрямована на осіб у фінансовій та криптовалютній сферах, з використанням LinkedIn і Telegram для розповсюдження скомпрометованого сховища Obsidian як початкової приманки. На Windows ланцюг інфекції спирається на PowerShell, спеціальний завантажувач у пам’яті під назвою PhantomPull і техніки відбивного завантаження. На macOS зловмисники використовують AppleScript разом з механізмом команд та контролю на основі Telegram. Кампанія також включає виявлення C2 на базі блокчейну через дані транзакцій Ethereum.
Розслідування
Дослідники відтворили атаку, створивши бойове сховище Obsidian, яке використовувало плагіни Shell Commands та Hider для запуску зловмисного виконання. Під час аналізу вони спостерігали скрипти PowerShell, які завантажували завантажувач під назвою syncobs.exe з 195.3.222.251, який потім отримував зашифрований корисний вантаж і завантажував його відбивно у пам’ять. Завантажувач створював мютекс, спілкувався з панеллю управління, розміщеною на panel.fefea22134.net, і підтримував резервну інфраструктуру, отриману з даних блокчейну. На macOS зловмисне програмне забезпечення встановлювало стійкість через plist агентів запуску та завантажувало вторинний корисний вантаж AppleScript з жорсткокодовного домену та каналу Telegram. Слідчі відновили ключові артефакти з файлів конфігурації JSON та ресурсів у пам’яті, пов’язаних з обома шляхами інфекції.
Пом’якшення
Організації повинні заборонити Obsidian створювати несанкціоновані дочірні процеси, застосовувати суворий контроль за використанням плагінів спільноти та моніторити активність PowerShell, де Obsidian з’являється як головний процес. Засоби захисту мережі повинні блокувати вихідний трафік на 195.3.222.251 та домени panel.fefea22134.net, 0x666.info, і відомі Telegram місця для збереження, пов’язані з кампанією. Команди безпеки також повинні шукати ознаки відбивного завантаження, зловживання таймерним чергою зворотного виклику та специфічне значення мютекса, що використовується завантажувачем зловмисного програмного забезпечення.
Відповідь
Якщо виявлено підозрілі дочірні процеси з Obsidian, негайно ізолюйте уражений вузол і зберіть .obsidian каталог для судової перевірки наявних плагінів і вмісту сховища. Полюйте на мютекс hVNBUORXNiFLhYYh, потім скануйте кінцеві точки на наявність слідів завантажувача PHANTOMPULL та двійкових файлів PHANTOMPULSE RAT. Блокуйте виявлену командну та контрольну інфраструктуру, відкликайте будь-які скомпрометовані облікові дані, пов’язані з Obsidian, і проведіть більш широкий огляд на наявність викрадення облікових даних, які впливають на фінансові та криптовалютні рахунки.
Потік атаки
Виявлення
Завантаження або вивантаження через PowerShell (через cmdline)
Переглянути
Підозрілі рядки PowerShell (через cmdline)
Переглянути
Підозріле використання Invoke-RestMethod (через PowerShell)
Переглянути
Підозрілі рядки PowerShell (через PowerShell)
Переглянути
Можлива активність передачі Bits (через PowerShell)
Переглянути
Підозріла комунікація домену Trycloudflare (через проксі)
Переглянути
Підозріле завантаження файлу через прямий IP (через проксі)
Переглянути
Підозріла комунікація домену Trycloudflare (через dns)
Переглянути
Obsidian зловживається для виконання коду та стійкості [створення процесу Windows]
Переглянути
Підозріле виконання PowerShell з Obsidian як батьківським процесом [Windows PowerShell]
Переглянути
Виконання симуляції
Передумова: Перевірка телеметрії та базового стану повинна бути пройдена.
Мотивація: Цей розділ детально описує точне виконання техніки супротивника (TTP), призначене для запуску правила виявлення. Команди та розповідь МАЮТЬ безпосередньо відображати ідентифіковані TTP і призначені для генерування точної телеметрії, очікуваної логікою виявлення. Абстрактні або не пов’язані приклади призведуть до помилкового діагностування.
-
Опис атаки та команди:
- Початкова компрометація: Зловмисник заносить зловмисний плагін Obsidian (
evil-plugin.js) у директорію плагінів користувача Obsidian. - Тригер виконання: Коли Obsidian запускається, плагін виконує один PowerShell‑рядок, який запускає
notepad.exeviaStart-Process. Це створює точний ланцюг процесівObsidian.exe → notepad.exe, який відслідковує правило. - Стійкість: Плагін налаштований на автоматичне завантаження при кожному запуску Obsidian, забезпечуючи повторне виникнення зловмисного дочірнього процесу.
- Ухилення: Плагін також короткочасно виконує
rundll32.exe(T1216.002) для завантаження безпечної DLL, приховуючи істинний намір, водночас зберігаючи ланцюг процесів, що тригерить виявлення.
- Початкова компрометація: Зловмисник заносить зловмисний плагін Obsidian (
-
Скрипт регресійного тесту:
# ------------------------------------------------- # Симуляція зловмисного плагіна Obsidian (PowerShell) # ------------------------------------------------- # 1. Переконайтеся, що Obsidian встановлено в очікуваний шлях $obsidianPath = "C:Program FilesObsidianObsidian.exe" if (-Not (Test-Path $obsidianPath)) { Write-Error "Obsidian не знайдено за $obsidianPath" exit 1 } # 2. Запускайте Obsidian *як батьківський* і негайно запускайте Notepad $startInfo = New-Object System.Diagnostics.ProcessStartInfo $startInfo.FileName = $obsidianPath $startInfo.Arguments = "-c `"Start-Process notepad.exe`"" $startInfo.UseShellExecute = $false $startInfo.CreateNoWindow = $true $proc = [System.Diagnostics.Process]::Start($startInfo) # 3. Необов'язково: викликати підписаний двійковий файл (rundll32), щоб симулювати T1216.002 Start-Process -FilePath "C:WindowsSystem32rundll32.exe" -ArgumentList "shell32.dll,Control_RunDLL" -WindowStyle Hidden # 4. Залишайте скрипт активним ненадовго, щоб дозволити виведення логів Start-Sleep -Seconds 5 # ------------------------------------------------- -
Команди очищення:
# Завершити всі безхазяйні інстанції Obsidian або Notepad, створені під час тесту Get-Process -Name "Obsidian","notepad","rundll32" -ErrorAction SilentlyContinue | Stop-Process -Force # Видалити файл симульованого зловмисного плагіна (якщо він існував) $pluginPath = "$env:APPDATAObsidianpluginsevil-plugin.js" if (Test-Path $pluginPath) { Remove-Item $pluginPath -Force } Write-Host "Очищення завершено."