Всередині проксі на основі Deno та RAT
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Зловмисник розгорнув модульний троян для віддаленого доступу (RAT) та проксі-фреймворк з використанням середовища виконання Deno JavaScript. Атака використовувала флуд пошти та підробку Microsoft Teams для завантаження шкідливого архіву. Імплант працює через кілька модульних JavaScript-файлів, які використовують певні прапори дозволів Deno для здійснення зв’язку з командним центром (C2), виконання локальних команд та переміщення по мережі.
Розслідування
Розслідування виявило початкову фазу доступу, що складалася з флуду електронної пошти і соціальної інженерії через Microsoft Teams. Шкідливе програмне забезпечення було ідентифіковано як нестандартну, модульну систему на базі Deno, яка розділена на чотири скрипти: app.js, back.js, helper.js і webui.js. Виявлення відбулося під час постексплуатаційних розвідувальних дій, а не під час первісного виконання.
Усунення
Організації повинні стежити за виконанням скриптових середовищ, таких як Deno, з каталогів, що можуть бути змінені користувачем, та попереджати про підозрілі прапори дозволів, такі як –allow-run або –allow-net. Рекомендується впроваджувати моніторинг HTTP-сервісів локальної петлі та кореляції попереджень про підробку Teams з аномаліями в електронній пошті. Крім того, обмеження здатності запускати непідписані або не затверджені середовища виконання може зменшити площу атаки.
Відповідь
Після виявлення відповідальні особи повинні ізолювати уражені вузли та розслідувати джерело підробки Teams. Аналіз повинен бути зосереджений на походженні процесу Deno і будь-яких місцевих службах, прив’язаних до портів петлі зворотного зв’язку 10021 або 10022. Перегляд Журналів об’єднаного аудиту Microsoft 365 для подій TeamsImpersonationDetected є критичним для визначення обсягу кампанії соціальної інженерії.
graph TB %% Визначення класів classDef action fill:#99ccff classDef builtin fill:#cccccc classDef malware fill:#ff9999 classDef discovery fill:#ccffcc classDef command_control fill:#ffff99 %% Початкова фаза атаки attack_email_bombing[“<b>Дія</b> – <b>T1667 Бомбардування електронною поштою</b><br/>Опис: Масова кампанія електронних листів,<br/>спрямована на створення втоми та плутанини у користувача.”] class attack_email_bombing action attack_social_eng[“<b>Дія</b> – <b>T1684.001 Соціальна інженерія: Видавання себе за іншу особу</b><br/>Опис: Зловмисники видають себе за працівників ІТ-підтримки<br/>під час дзвінків через Microsoft Teams для завоювання довіри.”] class attack_social_eng action attack_user_exec[“<b>Дія</b> – <b>T1204.002 Виконання користувачем: Шкідливий файл</b><br/>Опис: Жертва завантажує та розпаковує<br/>шкідливий архів.”] class attack_user_exec action file_malicious_archive[“<b>Файл</b>: patch09913.b<br/>Опис: Шкідливий архів, що містить<br/>фреймворк шкідливого ПЗ на базі Deno.”] class file_malicious_archive builtin %% Виконання шкідливого фреймворку malware_deno_framework[“<b>Шкідливе ПЗ</b>: Фреймворк на базі Deno<br/>Опис: Модульне шкідливе ПЗ, яке використовує app.js<br/>як оркестратор.”] class malware_deno_framework malware module_app_js[“<b>Модуль</b>: app.js<br/>Опис: JavaScript-оркестратор,<br/>що запускає спеціалізовані модулі.”] class module_app_js malware action_js_interpreter[“<b>Дія</b> – <b>T1059.007 Інтерпретатор команд і сценаріїв: JavaScript</b><br/>Опис: Використовується app.js для запуску модулів.”] class action_js_interpreter action action_hide_artifacts[“<b>Дія</b> – <b>T1564.011 Приховування артефактів: Ігнорування переривань процесу</b><br/>Опис: Використовує conhost.exe –headless<br/>для приховування вікон консолі.”] class action_hide_artifacts action %% Фаза закріплення module_back_js[“<b>Модуль</b>: back.js<br/>Опис: Відповідає за закріплення та зв’язок із C2.”] class module_back_js malware action_persistence[“<b>Дія</b> – <b>T1037.004 Сценарії ініціалізації під час запуску або входу: RC-скрипти</b><br/>Опис: Змінює ключ реєстру Windows<br/>HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run.”] class action_persistence action %% Фаза розвідки module_helper_js[“<b>Модуль</b>: helper.js<br/>Опис: Виконує збір та перелік системної інформації.”] class module_helper_js malware action_process_discovery[“<b>Дія</b> – <b>T1057 Виявлення процесів</b><br/>Опис: Виконує tasklist для визначення активних процесів.”] class action_process_discovery discovery action_sys_info_discovery[“<b>Дія</b> – <b>T1082 Виявлення системної інформації</b><br/>Опис: Виконує команди ipconfig /all та set<br/>для збору мережевих і системних відомостей.”] class action_sys_info_discovery discovery %% Фаза C2 та внутрішнього переміщення action_c2_protocol[“<b>Дія</b> – <b>T1071.001 Протокол прикладного рівня: Веб-протоколи</b><br/>Опис: Підтримує постійне WebSocket-з’єднання<br/>з C2-вузлом на базі CloudFront.”] class action_c2_protocol command_control module_webui_js[“<b>Модуль</b>: webui.js<br/>Опис: Забезпечує переміщення всередині внутрішньої мережі.”] class module_webui_js malware action_proxy_pivoting[“<b>Дія</b> – <b>T1090 Проксі (Внутрішній півотинг)</b><br/>Опис: Виконує роль посередника доступу,<br/>маршрутизуючи TCP-трафік до внутрішньої мережі.”] class action_proxy_pivoting command_control %% Зв’язки attack_email_bombing –>|створює_плутанину_для| attack_social_eng attack_social_eng –>|призводить_до| attack_user_exec attack_user_exec –>|містить| file_malicious_archive file_malicious_archive –>|запускає| malware_deno_framework malware_deno_framework –>|керується_через| module_app_js module_app_js –>|використовує| action_js_interpreter module_app_js –>|реалізує| action_hide_artifacts module_app_js –>|запускає| module_back_js module_app_js –>|запускає| module_helper_js module_app_js –>|запускає| module_webui_js module_back_js –>|виконує| action_persistence module_back_js –>|встановлює| action_c2_protocol module_helper_js –>|виконує| action_process_discovery module_helper_js –>|виконує| action_sys_info_discovery module_webui_js –>|виконує| action_proxy_pivoting
Потік Атаки
Виявлення
Можливі точки стійкості [ASEPs – Software/NTUSER Hive] (через registry_event)
Переглянути
Можливі точки стійкості [ASEPs – Software/NTUSER Hive] (через cmdline)
Переглянути
Можлива спроба зловживання середовищем виконання Deno (через process_creation)
Переглянути
Можливе виявлення конфігурації мережі системи (через cmdline)
Переглянути
LOLBAS Conhost (через cmdline)
Переглянути
Індикатори компрометації (HashSha256) для виявлення: Анатомія Deno-Based Proxy & RAT
Переглянути
Виявлення виконання команд оболонки за допомогою Deno [Windows Sysmon]
Переглянути
Виявлення виконання Deno-Based RAT з підозрілими прапорами дозволів [Створення процесу Windows]
Переглянути
Виконання симуляції
Попередня умова: Тестування телеметрії та початкової бази повинне пройти успішно.
Підстава: У цьому розділі детально описується точне виконання техніки противника (TTP), призначеної для активації правила виявлення. Команди та наратив ПОВИННІ безпосередньо відображати виявлені TTP та мати на меті створити точну телеметрію, очікувану логікою виявлення. Абстрактні або не пов’язані приклади призведуть до неправильної діагностики.
-
Опис атаки і команди: Зловмисник успішно доставив шкідливий RAT на основі Deno на машину жертви через spearphishing вкладення (T1566.004). Щоб уникнути традиційного антивірусу на основі підписів, зловмисник ховає двійковий файл Deno у глибокій, нестандартній піддиректорії профілю користувача:
C:Usersuser.nameAppDataRoamingDenoJSEnv. Потім зловмисник виконує бінарник за допомогою--allow-runand--allow-netпрапорців. Це дозволяє JavaScript-основаному шкідливому програмному забезпеченню виконувати довільні командні оболонки для виявлення системи (T1082) та здійснювати зв’язок з зовнішнім сервером C2 через HTTPS (T1071.001). -
Сценарій регресійного тестування:
# Увага: Цей скрипт симулює наявність каталогу та двійкового файлу # для активації логіки правила. У реальному тесті файл повинен існувати за точним шляхом. $targetDir = "C:Usersuser.nameAppDataRoamingDenoJSEnv" $targetExe = "$targetDirdeno.exe" # 1. Створіть певну структуру каталогу, необхідну для правила виявлення if (!(Test-Path $targetDir)) { New-Item -ItemType Directory -Force -Path $targetDir } # 2. Створіть фіктивний файл, який буде виступати як 'deno.exe' # У реальній симуляції це був би справжній двійковий файл Deno. New-Item -ItemType File -Force -Path $targetExe # 3. Виконайте 'шкідливу' команду # Ми використовуємо Start-Process, щоб переконатися, що вона з'являється як дочірній процес у логах Sysmon. # Оскільки 'deno.exe' є фіктивним, ми викличемо 'cmd.exe', але замаскуємо командний # рядок, щоб відповідати логіці, АБО якщо тестувати РЕАЛЬНЕ правило, переконайтеся, що двійковий # файл реальний і викличемо його. Для цієї симуляції, ми припускаємо, що користувач надає # реальний двійковий файл Deno у цьому шляхові. Write-Host "[!] Симуляція виконання $targetExe з шкідливими прапорцями..." Start-Process -FilePath "cmd.exe" -ArgumentList "/c echo Активізація правила симуляції..." # Увага: Для щирого виклику правила справжній deno.exe повинен бути присутнім. # Якщо правило суворо шукає шлях до зображення, двійковий файл ПОВИНЕН бути там. # Заради функціонального симуляційного скрипту ми викликаємо шлях: # Start-Process -FilePath $targetExe -ArgumentList "--allow-run --allow-net" -
Команди очищення:
# Видалити змодельований шкідливий каталог і файли Remove-Item -Path "C:Usersuser.nameAppDataRoamingDenoJSEnv" -Recurse -Force Write-Host "[+] Очищення завершено."