Середина SHADOW-WATER-063: від Banana RAT до шахрайства з банкінгом
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Banana RAT – це банківський троян, який використовується загрозливою акторною групою SHADOW-WATER-063 для викрадення облікових даних та здійснення шахрайських транзакцій, націлених на бразильські банки. Шкідливе програмне забезпечення доставляється через шкідливий пакетний файл та покладається на багатошарову обфускацію PowerShell, виконання в пам’яті та AES-256 шифрування для уникнення виявлення. Воно зберігає стійкість через приховане заплановане завдання та спілкується з сервером команд та управління через HTTP і TLS. Кампанія також включає функцію перехоплення QR-кодів Pix, спрямованої на систему миттєвих платежів Бразилії.
Розслідування
Аналітики Trend Micro MDR отримали як інструменти серверної сторони, так і корисні навантаження клієнтської сторони, що дозволило їм відновити повний ланцюг атаки від поліморфного кріптера на базі FastAPI до PowerShell stager та фінальної етапу компіляції C# в пам’яті. Їхній аналіз виявив інфраструктуру нападника, робочий процес обфускації та набір можливостей, які включали трансляцію екрану, маніпуляцію з введенням та підробку QR-кодів. Операцію було пов’язано з ширшою екосистемою банківських троянів Tetrade, хоча дослідники відзначили кілька архітектурних відмінностей.
Захист
Захисники повинні блокувати початковий HTTP GET запит до точки доставки шкідливого ПЗ на межі мережі, моніторити поведінку специфічного схованого запланованого завдання та запровадити суворий контроль над PowerShell і csc.exe виконанням. Захист на кінцевих точках повинен також виявляти активність PowerShell без файлів, завантаження DLL в пам’ять та створення файлів у оманливих шляхах, таких як ProgramDataMicrosoftDiagnosisETW. Навчання користувачів також повинно охоплювати шкідливі пакетні файли та фішингові посилання, розповсюджувані через такі канали, як WhatsApp.
Відповідь
Якщо виявлено активність Banana RAT, негайно ізолюйте уражену кінцеву точку, завершіть шкідливий процес PowerShell, видаліть приховане заплановане завдання та видаліть усі скинуті файли з публічних і підробних каталогів. Слідчі повинні зібрати повну команду PowerShell, зберегти будь-які артефакти компіляції C# і переглянути мережевий трафік, підключений до доменів команд та керування. Викриті облікові дані слід скинути, а фінансові команди повинні бути попереджені про ознаки шахрайської банківської активності.
"graph TB %% Class definitions classDef technique fill:#99ccff %% Node definitions step_A["<b>Техніка</b> – <b>T1204.001 Виконання користувачем</b>: Шкідливе посилання доставлено через WhatsApp або електронну пошту для завантаження пакетного файлу."] class step_A technique step_B["<b>Техніка</b> – <b>T1027.014 Обфусковані файли</b>: Пакетний файл запускає обфускований код PowerShell."] class step_B technique step_C["<b>Техніка</b> – <b>T1027.016 Вставка сміттєвого коду</b>: Дев’ять шарів обфускації на замовлення, перейменування змінних, XOR, AES."] class step_C technique step_D["<b>Техніка</b> – <b>T1036.008 Маскування</b>: Скидає msedge.txt у загальних документах, імітуючи шлях Microsoft ETW."] class step_D technique step_E["<b>Техніка</b> – <b>T1564.005 Приховування артефактів</b>: Записує шкідливий файл у ProgramData Microsoft Diagnosis ETW, щоб змішати з легітимними файлами."] class step_E technique step_F["<b>Техніка</b> – <b>T1620 Завантаження віддзеркаленого коду</b>: Використовує csc.exe для компіляції C# DLL у пам’яті."] class step_F technique step_G["<b>Техніка</b> – <b>T1134.001 Імітація токену</b>: Дублює токен SYSTEM та запускає PowerShell в інтерактивній сесії."] class step_G technique step_H["<b>Техніка</b> – <b>T1134.002 Створення процесу з токеном</b>: Запускає процес з дубльованим токеном."] class step_H technique step_I["<b>Техніка</b> – <b>T1571 Нестандартний порт</b>: C2 комунікація через HTTPS порт 443 з використанням кастомного AES-256-CBC протоколу."] class step_I technique step_J["<b>Техніка</b> – <b>T1048.002 Експільтрація через альтернативний протокол</b>: Експільтрація зашифрованих даних з використанням асиметричного зашифрованого не-C2 протоколу."] class step_J technique step_K["<b>Техніка</b> – <b>T1140 Деобфускація декодування</b>: PowerShell розшифровує AES-загорнуте корисне навантаження у пам’яті."] class step_K technique step_L["<b>Техніка</b> – <b>T1659 Ін’єкція контенту</b>: PowerShell використовує Net.WebClient або Start-BitsTransfer для отримання корисного навантаження з вебсервера нападника."] class step_L technique step_M["<b>Техніка</b> – <b>T1566 Фішинг</b>: Шкідливе посилання доставлено через WhatsApp/електронну пошту для завантаження пакетного файлу."] class step_M technique %% Connections step_A –>|призводить до| step_B step_B –>|призводить до| step_C step_C –>|призводить до| step_D step_D –>|призводить до| step_E step_E –>|призводить до| step_F step_F –>|призводить до| step_G step_G –>|призводить до| step_H step_H –>|призводить до| step_I step_I –>|призводить до| step_J step_J –>|призводить до| step_K step_K –>|призводить до| step_L step_L –>|призводить до| step_M "
Потік атаки
Виявлення
Підозріле заплановане завдання (via audit)
Перегляд
Виклик підозрілих методів .NET з Powershell (via powershell)
Перегляд
Можливість виконання через сховані командні рядки PowerShell (via cmdline)
Перегляд
Підозрілі рядки PowerShell (via powershell)
Перегляд
Виклик підозрілих функцій API Windows з Powershell (via powershell)
Перегляд
Підозрілі файли у загальному профілі користувача (via file_event)
Перегляд
Підозріле завантаження файлів безпосередньо за IP-адресою (via proxy)
Перегляд
ІВП (HashSha256) для виявлення: В межах SHADOW-WATER-063’s Banana RAT: Від сервера Build до банківського шахрайства
Перегляд
ІВП (SourceIP) для виявлення: В межах SHADOW-WATER-063’s Banana RAT: Від сервера Build до банківського шахрайства
Перегляд
ІВП (DestinationIP) для виявлення: В межах SHADOW-WATER-063’s Banana RAT: Від сервера Build до банківського шахрайства
Перегляд
Виявлення комунікації SHADOW-WATER-063 C2 [Windows Network Connection]
Перегляд
Виявлення початкового доступу і виконання Banana RAT [Windows Powershell]
Перегляд
Симуляція виконання
Передумова: Повинна пройти перевірка телеметрії та базовий політ.
Обґрунтування: Цей розділ деталізує точне виконання техніки противника (C2 комунікація), яке призначене для запуску правила виявлення. Команди та наратив безпосередньо відображають ідентифіковані TTP та прагнуть згенерувати точну телеметрію, очікувану логікою виявлення.
-
Атака: наратив і команди:
Загрозливий актор розгорнув Banana RAT на кінцевій точці жертви. Щоб зберегти стійкість та отримати команди, RAT ініціює вихідну комунікацію зі своєю заздалегідь заданою інфраструктурою C2:- HTTP маяк (IP 24.199.90.58:80): Відкриває сирий сокет TCP і відправляє мінімальний HTTP GET запит.
- HTTPS маяк (IP 162.141.111.227:443): Використовує
Invoke-WebRequestз TLS до сервера C2. - Маяк на основі домену: Виконує DNS-запит для
c.windowsk-cdn.com, який C2 моніторить на обсяг запитів.
Усі три дії виконуються послідовно, щоб максимізувати шанс на влучання хоча б в один з Sigma-правил.
-
Регресійний тестовий скрипт:
# ------------------------------------------------- # Симуляція комунікації C2 Banana RAT (TC-20260522-A1B2C) # ------------------------------------------------- # 1. HTTP маяк до 24.199.90.58:80 try { $httpClient = New-Object System.Net.Sockets.TcpClient("24.199.90.58",80) $stream = $httpClient.GetStream() $writer = New-Object System.IO.StreamWriter($stream) $writer.WriteLine("GET / HTTP/1.1") $writer.WriteLine("Host: 24.199.90.58") $writer.WriteLine("Connection: Close") $writer.WriteLine() $writer.Flush() $reader = New-Object System.IO.StreamReader($stream) $response = $reader.ReadToEnd() $writer.Dispose() $reader.Dispose() $httpClient.Close() } catch { Write-Error "HTTP маяк не вдався: $_" } # 2. HTTPS маяк до 162.141.111.227:443 try { Invoke-WebRequest -Uri "https://162.141.111.227" -UseBasicParsing -TimeoutSec 10 } catch { Write-Error "HTTPS маяк не вдався: $_" } # 3. DNS запит для шкідливого домену try { Resolve-DnsName -Name "c.windowsk-cdn.com" -Type A -ErrorAction Stop } catch { Write-Error "DNS запит не вдався: $_" } # Кінець симуляції -
Команди очищення:
# ------------------------------------------------- # Очищення - видалити будь-які залишкові сокети або тимчасові файли # ------------------------------------------------- # Постійні артефакти симуляцією не створюються. # Переконайтеся, що не залишилося залишкових мережевих з'єднань: Get-NetTCPConnection -RemotePort 80,443 ` | Where-Object {$_.RemoteAddress -in @("24.199.90.58","162.141.111.227")} ` | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force } # Очистіть кеш DNS, щоб уникнути впливу на подальші тести Clear-DnsClientCache