Шкідливе ПЗ CoinMiner продовжує поширюватися через USB-накопичувачі
Detection stack
- AIDR
- Alert
- ETL
- Query
РЕЗЮМЕ
Шкідливе програмне забезпечення CoinMiner продовжує розповсюджуватися через USB-накопичувачі в Південній Кореї, використовуючи прихований ярлик, який запускає скрипти VBS та BAT, що, у свою чергу, встановлюють кілька компонентів, які зрештою доставляють шкідливу програму для майнінгу криптовалюти.
Розслідування
Звіт описує структуру каталогів на зараженому USB, ланцюг виконання від ярлика через кілька стадій дроппера, реєстрацію під службою DcomLaunch та розгорнення криптомайнерів PrintMiner і XMRig.
Пом’якшення
Користувачі повинні тримати ОС і програмне забезпечення в актуальному стані, блокувати виконання ненадійних файлів ярликів, використовувати антивірусні засоби з оновленими базами та забороняти доступ до відомої шкідливої інфраструктури.
Реакція
Виявляйте шкідливий ярлик та пов’язані з ним скрипти, здійснюйте моніторинг створення файлів-дропперів та DCOM реєстрацій, блокуйте мережевий трафік до виявлених доменів і IP-адрес командування та контролю майнінгу.
Потік Атаки
Виявлення
Виявлення активностей USB-ярликів та BAT-шкідливого програмного забезпечення [Події файлів Windows]
Перегляд
Виявлення комунікацій XMRig з C&C сервером через специфічне ім’я хоста [Мережева підключення Windows]
Перегляд
Виконання шкідливих файлів через printui.exe та svcinsty64.exe [Створення процесу Windows]
Перегляд
Індикатори компрометації (HashMd5) для виявлення: CoinMiner, що постійно розповсюджується через USB
Перегляд
Індикатори компрометації (DestinationIP) для виявлення: CoinMiner, що постійно розповсюджується через USB
Перегляд
Виконання Симуляції
Передумова: Телеметрія та базовий передпольотний контроль повинні бути успішними.
Обґрунтування: У цьому розділі детально описується точне виконання техніки противника (TTP), розробленої для спрацьовування правила виявлення. Команди та наратив ПОВИННІ безпосередньо відображати ідентифіковані TTP та мають генерувати точну телеметрію, яку очікує логіка виявлення. Абстрактні або не пов’язані приклади призведуть до неправильного діагностування.
-
Наратив атаки та команди:
-
Етап 1 – Скидання шкідливої DLL: Зловмисник копіює створений
printui.dllв ту ж каталог, що іprintui.exe(імітує доставку драйвера через USB-пристрій). -
Етап 2 – Виконання
printui.exe: Викликомprintui.exeз ключем/ml(шкідливе завантаження), шкідлива DLL завантажується, генеруючи подію створення процесу, що відповідає вибору (Image endswith printui.exe), одночасно задовольняючи фільтр умови (Image contains printui.dll). Правило виключає цей випадок, тому зловмисник додає другий крок, щоб його обійти. -
Етап 3 – Виконання
svcinsty64.exe: Зловмисник реєструє нову службу, що вказує на двійковий файл навантаження (payload.exe), що зберігається на USB-накопичувачі. Ця дія викликає подію створення процесу дляsvcinsty64.exe, що відповідає вибору правила без спрацювання фільтра, що призводить до генерації сповіщення.
-
Етап 1 – Скидання шкідливої DLL: Зловмисник копіює створений
-
Скрипт регресійного тесту: Наведений нижче сценарій автоматизує три етапи, забезпечуючи відтворюваність.
# ------------------------------------------------- # Регресійний тест – Спрацювання Sigma правила для printui.exe / svcinsty64.exe # ------------------------------------------------- $dllPath = "$env:TEMPprintui.dll" $exePath = "$env:SystemRootSystem32printui.exe" $svcInstPath = "$env:SystemRootSystem32svcinsty64.exe" $payloadPath = "$env:TEMPpayload.exe" # 1️⃣ Скидання фіктивної шкідливої DLL (бінарний вміст не важливий для виявлення) Write-Host "[*] Створення фіктивної шкідливої DLL у $dllPath" Set-Content -Path $dllPath -Value ([byte[]](0..255)) -Encoding Byte # 2️⃣ Виконання printui.exe (безпечне завантаження) – не повинно спрацьовувати через фільтр Write-Host "[*] Запуск безпечного printui.exe (буде відфільтровано)" Start-Process -FilePath $exePath -ArgumentList "/p" -Wait # 3️⃣ Виконання printui.exe з шкідливим DLL – відфільтровано (очікуване) Write-Host "[*] Запуск printui.exe з шкідливим DLL (відфільтровано)" Start-Process -FilePath $exePath -ArgumentList "/ml `$dllPath`" -Wait # 4️⃣ Підготовка фіктивного виконуваного файлу навантаження (простий CMD скрипт, перекомпільований в exe) Write-Host "[*] Створення фіктивного виконуваного файлу навантаження" $payloadSource = @" @echo off echo Payload виконано > $env:TEMPpayload_output.txt "@ $payloadScript = "$env:TEMPpayload.bat" $payloadSource | Set-Content -Path $payloadScript -Encoding ASCII # Конвертація .bat в .exe з використанням iexpress (вбудований) $iexpress = "$env:SystemRootSystem32iexpress.exe" $config = "$env:TEMPiexpress.sed" @" [Version] Version=3.0 [Options] ExtractTitle=Payload ExtractLocation=%TEMP% ShowProgress=0 HideExtractWindow=1 [SourceFiles] SourceFiles=0 %TEMP%payload.bat [Run] RunCommand="%TEMP%payload.bat" "@ | Set-Content -Path $config -Encoding ASCII & $iexpress /N /Q /M $config Move-Item -Path "$env:TEMPPayload.exe" -Destination $payloadPath -Force # 5️⃣ Реєстрація шкідливої служби з використанням svcinsty64.exe – ПОВИННО SPAATYUVATY Write-Host "[*] Реєстрація шкідливої служби через svcinsty64.exe" $svcName = "ШкідливаСлужба" $svcDisplay = "Шкідлива служба" $svcCmd = "`"$payloadPath`"" $svcArgs = "/install `$svcName` `$svcDisplay` `$svcCmd`" Start-Process -FilePath $svcInstPath -ArgumentList $svcArgs -Wait # 6️⃣ Видалення служби Write-Host "[*] Видалення шкідливої служби" $removeArgs = "/uninstall `$svcName`" Start-Process -FilePath $svcInstPath -ArgumentList $removeArgs -Wait # 7️⃣ Видалення тимчасових артефактів Write-Host "[*] Видалення тимчасових файлів" Remove-Item -Path $dllPath -Force -ErrorAction SilentlyContinue Remove-Item -Path $payloadPath -Force -ErrorAction SilentlyContinue Remove-Item -Path $payloadScript -Force -ErrorAction SilentlyContinue Write-Host "[+] Тест завершено" -
Команди очищення: (Якщо вище наведений сценарій не вдалося виконати або ви віддаєте перевагу ручному очищенню)
# Видалення шкідливої служби, якщо ще існує $svcName = "MaliciousSvc" $svcInstPath = "$env:SystemRootSystem32svcinsty64.exe" & $svcInstPath /uninstall $svcName # Видалення тимчасової DLL та навантаження Remove-Item -Path "$env:TEMPprintui.dll" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPpayload.exe" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPpayload.bat" -Force -ErrorAction SilentlyContinue # (Необов'язково) Перевірте відсутність залишкових служб Get-Service -Name $svcName -ErrorAction SilentlyContinue