RUSTGate: Приманка з роєм дронів вказує на потенційне націлення на оборонний сектор
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Нововиявлений RAT-троян, створений на базі Rust і названий RUSTGate, використовує тему дослідження рою дронів як приманку для соціальної інженерії. Шкідливе ПЗ виконує багатоступеневий ланцюг зараження, що включає шкідливі LNK-файли, пакетні завантажувачі та заплановані завдання для розгортання кінцевого імпланта. Після активації RUSTGate зосереджується на широкомасштабному викраденні файлів та їх ексфільтрації через зашифровані HTTP-комунікації з C2.
Розслідування
Розслідування було зосереджено на сервері попереднього етапу, виявленому через Hunt.io, який виявив повний ланцюг зараження. Дослідники взаємодіяли з протоколом C2 за допомогою синтетичних запитів і ідентифікували AES-256-GCM для обфускації повідомлень разом із бекендом на основі Python Flask. Аналіз також показав файлозосереджену логіку крадіжок RUSTGate та автоматизовані процедури збору даних.
Пом’якшення
Захисники повинні пріоритетно моніторити підозрілі LNK-файли, які використовують rundll32.exe для запуску командних оболонок. Важливо також встановити жорсткі обмеження на завантаження в каталоги Temp і стежити за несанкціонованим створенням запланованих завдань. Сегментація мережі та виявлення вихідного HTTP-трафіку на незвичайні IP-адреси через нестандартні порти можуть додатково порушити активність C2.
Реакція
Якщо активність RUSTGate виявлено, реагуючі повинні негайно ізолювати уражений хост і зберегти файл upload_state.json для визначення, які дані могли бути скомпрометовані. Повні захоплення пакетів трафіку на ідентифіковані IP C2 повинні бути зібрані для ретроспективного розшифрування. Системи також мають бути перевірені на заплановане завдання NetworkDiagnostics та залишкові файли у C:WindowsTemp.
Потік атаки
Ми все ще оновлюємо цю частину.
Виявлення
Можливий шкідливий LNK-файл з подвійним розширенням (через cmdline)
Підозріла використання CURL (через cmdline)
Підозріле завантаження файлу безпосередньо з IP (через проксі)
IOC (HashSha256) для виявлення: RUSTGate: Приманка з роїв дронів вказує на можливе націлювання на оборонний сектор
IOC (SourceIP) для виявлення: RUSTGate: Приманка з роїв дронів вказує на можливе націлювання на оборонний сектор
IOC (DestinationIP) для виявлення: RUSTGate: Приманка з роїв дронів вказує на можливе націлювання на оборонний сектор
Виявлення командно-контрольних комунікацій RUSTGate [Підключення до мережі Windows]
Виявлення діяльності імпланта RUSTGate [Подія файлу Windows]
Виявлення виконання команд RUSTGate через Rundll32, Cmd, Curl та PowerShell [Створення процесу Windows]
Виконання симуляції
-
Наратив атаки та команди: Супротивник успішно закріпився на робочій станції Windows. Для підтримки контролю та отримання подальших інструкцій malware RUSTGate повинно виконати “heartbeat” або “check-in” з своїм Command-and-Control (C2) сервером. Шкідливе ПЗ запрограмоване на звернення до жорстко закодованого IP
5.252.177.210на порті8090. Щоб відрізнити свій трафік від стандартного веб-серфінгу, вона додає специфічний URI шлях, такий як/register, до запиту. Ця симуляція використовує PowerShell для імітації цієї конкретної мережевої перевірки, щоб перевірити, чи спрацьовує логіка виявлення SOC на цій конкретній моделі C2. -
Скрипт регресійного тестування:
# Симуляційний скрипт перевірки входження RUSTGate C2 # Цей скрипт імітує мережевий підпис RUSTGate для перевірки на виявлення. $TargetIP = "5.252.177.210" $TargetPort = "8090" $TargetURI = "/register" $Url = "http://$($TargetIP):$($TargetPort)$($TargetURI)" Write-Host "[*] Імітація RUSTGate комунікації C2 до $Url" -ForegroundColor Cyan try { # Використання Invoke-WebRequest для генерування специфічної URI та телеметрії порту $Response = Invoke-WebRequest -Uri $Url -Method Get -ErrorAction SilentlyContinue Write-Host "[+] Запит успішно надіслано (очікувана помилка підключення, якщо IP неактивний)." -ForegroundColor Green } catch { Write-Host "[!] Запит завершено (як очікувалося для неіснуючого C2 вузла)." -ForegroundColor Yellow } -
Команди очищення:
# Сталих артефактів ця симуляція не створює. # Просто підтвердження завершення процесу. Write-Host "[*] Симуляція завершена. Очищення не потрібно." -ForegroundColor White