SOC Prime Bias: Високий

17 Jun 2026 13:03 UTC

Операція Poisson: Розбір усієї кіберзлочинної операції

Author Photo
SOC Prime Team linkedin icon Стежити
Операція Poisson: Розбір усієї кіберзлочинної операції
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Резюме

Загроза низької кваліфікації, відома як «Poisson», здійснила багатоступеневу кампанію крадіжки облікових даних, спрямовану на французьких фізичних осіб і невеликий бізнес. Атакуючий використовував Havoc C2, нестандартний keylogger на Python, і побудував стійкий доступ через OpenSSH та VPN-сітку Tailscale. Ця установка дозволяла оператору зберігати доступ навіть після порушення основної інфраструктури командування та контролю.

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

Cato CTRL провела глибокий постінцидентний огляд, що охоплював 33 дні активності атакуючих і 339 записаних команд. Розслідування виявило використання сервісів безкоштовного рівня, таких як Backblaze B2, DuckDNS та IONOS, а також дизайн стійкості, призначений для виживання після знищення C2. Дослідники також відновили SSH-плейбук оператора та ключі SSH жертв, які були помилково виставлені в публічному сховищі.

Пом’якшення

Захисники повинні генерувати сигнали тривоги для розгортання сервера OpenSSH на робочих станціях та моніторити активність Tailscale VPN на системах, де це не очікується. Організації також повинні виявляти зворотні SSH-тунелі та відстежувати підозрілі заплановані завдання, які виконуються з підвищеними повноваженнями. Ефективна ремедіація має виходити за межі видалення доступу C2 і включати усунення механізмів стійкості, заснованих на сітських VPN.

Відповідь

Якщо ця активність виявлена, команди безпеки повинні негайно знайти та знешкодити будь-які активні сполучення за допомогою Tailscale чи SSH. Розслідувачі повинні переглянути всі заплановані завдання та ярлики запуску для несанкціонованої стійкості. Повне скидання облікових даних настійно рекомендується для всіх користувачів, оскільки використання keylogger створює високу ймовірність компрометації облікових даних.

graph TB %% Визначення класів classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef persistence fill:#99ff99 classDef command_control fill:#ffcc99 %% Початкове виконання та доставка корисного навантаження action_stager_exec[“<b>Дія</b> – <b>T1216.002 PowerShell: Інтерпретатор команд і сценаріїв</b><br/>Користувач запускає VBScript-стейджер sys.vbs для активації<br/>виконання через проксі системних сценаріїв.<br/><b>Файл</b>: sys.vbs”] class action_stager_exec action malware_powershell_payload[“<b>Шкідливе ПЗ</b> – <b>T1216.002 PowerShell</b><br/>Розшифроване PowerShell-навантаження використовується<br/>для завантаження основного шкідливого ПЗ.<br/><b>Тип</b>: Stager/Downloader”] class malware_powershell_payload malware action_download_primary[“<b>Дія</b> – <b>T1105 Передача інструментів через вхідний канал</b><br/>Завантаження основного імпланта шкідливого ПЗ<br/>за допомогою PowerShell.”] class action_download_primary action %% Обфускація та завантаження malware_senti_dll[“<b>Шкідливе ПЗ</b> – <b>Назва</b>: senti.dll<br/><b>Техніки</b>: T1027.009 Вбудовані корисні навантаження та T1027.015 Стиснення<br/>Використовує п’ятишарове кодування типу «матрьошка»<br/>для приховування shellcode всередині англійських слів у .NET DLL.<br/><b>Мета</b>: Безфайлове виконання”] class malware_senti_dll malware %% Підвищення привілеїв та закріплення action_uac_bypass[“<b>Дія</b> – <b>T1204 Виконання користувачем</b><br/>Спроба підвищення привілеїв за допомогою<br/>Start-Process -Verb RunAs для виклику запитів UAC.”] class action_uac_bypass action persist_task_admin[“<b>Закріплення</b> – <b>T1053 Заплановане завдання/Job</b><br/>Створення TaskAdmin1 для запуску стейджера<br/>з найвищими привілеями під час входу в систему.”] class persist_task_admin persistence persist_startup_lnk[“<b>Закріплення</b> – <b>T1547.001 Автоматичний запуск під час завантаження або входу: ключі Registry Run / папка Startup</b><br/>Розміщення ярлика sys.lnk у папці автозапуску.”] class persist_startup_lnk persistence %% Крадіжка облікових даних tool_keylogger[“<b>Інструмент</b> – <b>Назва</b>: KeyL.zip<br/><b>Техніка</b>: T1056.001 Захоплення введення: Кейлогінг<br/>Власний Python-кейлогер на 70 рядків<br/>для збору банківських та поштових облікових даних.”] class tool_keylogger tool %% Командування та контроль c2_havoc[“<b>Командування та контроль</b> – <b>Назва</b>: Havoc Framework<br/>Основний фреймворк керування C2.”] class c2_havoc command_control tool_rustdesk[“<b>Інструмент</b> – <b>T1219 Програмне забезпечення віддаленого доступу</b><br/>Кастомно скомпільований RustDesk,<br/>встановлений як резервний канал віддаленого доступу.”] class tool_rustdesk tool %% Стійке закріплення persist_ssh_tailscale[“<b>Закріплення</b> – <b>T1668 Ексклюзивний контроль</b><br/>Встановлення OpenSSH Server та підключення до VPN-мережі Tailscale<br/>для збереження доступу після блокування C2.”] class persist_ssh_tailscale persistence action_ssh_tunnel[“<b>Дія</b> – <b>T1219.001 IDE-тунелювання та T1572 Тунелювання протоколів</b><br/>Використання зворотного SSH-тунелю ssh -R<br/>для підтримки прямого зашифрованого доступу.”] class action_ssh_tunnel action %% Потік з’єднань action_stager_exec –>|виконує| malware_powershell_payload malware_powershell_payload –>|завантажує| action_download_primary action_download_primary –>|завантажує| malware_senti_dll malware_senti_dll –>|активує| action_uac_bypass action_uac_bypass –>|створює| persist_task_admin action_uac_bypass –>|створює| persist_startup_lnk malware_senti_dll –>|розгортає| tool_keylogger malware_senti_dll –>|взаємодіє_з| c2_havoc c2_havoc –>|розгортає_резервно| tool_rustdesk tool_rustdesk –>|призводить_до| persist_ssh_tailscale persist_ssh_tailscale –>|використовує| action_ssh_tunnel

Потік атаки

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

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

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

  • Оповідання атаки та команди: Супротивник, симулюючи групу “Poisson”, має намір встановити віддалений доступ. Спочатку вони інсценують навантаження, створивши файл з назвою thales.zip у тимчасовій директорії. Для підвищення привілеїв вони виконують команду PowerShell за допомогою RunAs дієслова, що є звичайним методом для виклику запитів UAC. Нарешті, вони виконують rustdesk.exe щоб забезпечити вторинний канал віддаленого робочого столу. Ця послідовність імітує конкретний поведінковий патерн (підвищення за допомогою UAC + RustDesk + специфічний zip-файл), визначений у правилі детекції.

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

    # Сценарій симуляції: Емуляція TTP Poisson
    
    # 1. Інсценування файлу 'thales.zip' (вимагається логікою детекції)
    $targetZip = "$environment:TEMPthales.zip"
    New-Item -Path $targetZip -ItemType File -Force
    Write-Host "[+] Інсценування $targetZip"
    
    # 2. Симуляція спроби підвищення UAC через PowerShell (вимагається логікою детекції)
    # Зазначення: Це викличе запит UAC в реальному середовищі.
    Write-Host "[+] Спроба підвищення UAC через Start-Process -Verb RunAs..."
    Start-Process powershell.exe -ArgumentList "-Command Write-Host 'Підвищення спробувано'" -Verb RunAs
    
    # 3. Симуляція виконання RustDesk (вимагається логікою детекції)
    # Ми створимо підроблений rustdesk.exe в тимчасовій папці, щоб викликати детекцію без реальної установки
    $rustdeskPath = "$environment:TEMPrustdesk.exe"
    New-Item -Path $rustdeskPath -ItemType File -Force
    Write-Host "[+] Виконання симульованого RustDesk на $rustdeskPath"
    Start-Process $rustdeskPath
  • Команди очищення:

    # Очищення артефактів симуляції
    Remove-Item -Path "$env:TEMPthales.zip" -Force -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:TEMPrustdesk.exe" -Force -ErrorAction SilentlyContinue
    Write-Host "[+] Очищення завершено."