Виявлення Nimbus Manticore та їхніх ланцюжків зараження через сайдлоадінг
Detection stack
- AIDR
- Alert
- ETL
- Query
Резюме
Nimbus Manticore, також відстежуваний як UNC1549, здійснив цільову фішингову кампанію, яка використовувала фальшиві портали з працевлаштування для доставки багатостадійного ланцюга шкідливого програмного забезпечення .NET. Атака зловживала легітимними компонентами Microsoft Visual Studio разом з викраденням AppDomain для завантаження користувацького DLL, який потім розгортав DLL другого етапу та створював стійкість через заплановане завдання. Інфраструктура управління й контролю була розміщена на доменах на базі Azure. Кампанія в основному була спрямована на авіаційну та оборонну промисловість у Середньому Сході та Європі.
Розслідування
Дослідники відновили повний ланцюг інфікування, починаючи з приманки LinkedIn і продовжуючи через ZIP-архів, змінений setup.exe.config файл та зашифрований стагер. Їхній аналіз виявив зловживання перейменованим ServiceHub.VSDetouredHost.exe, TOTPGuard.dll завантажувачем, AES-зашифрованим заголовком PE та запланованим завданням, яке активується при вході в систему, під назвою BackupCheck. Мережні індикатори також вказували на кілька доменів, розміщених в Azure, що використовувались для зв’язків управління-команд.
Зменшення ризиків
Організації повинні навчати працівників розпізнавати соціальну інженерію з темою працевлаштування, блокувати або ретельно перевіряти нещодавно зареєстровані домени та застосовувати AppLocker або еквівалентні контролі на директоріях, що можуть бути змінені користувачами. Захисники також повинні стежити за запланованими завданнями з назвою BackupCheck або виконаннями з використанням аргументу doit . Рекомендується також моніторити поведінку викрадення AppDomain у додатках .NET та підозрілі потоки до доменів командування й управління, розміщених на Azure.
Реакція
Якщо виявлено пов’язані дії, ізолюйте уражений кінцевий пристрій, зберіть шкідливі бінарні файли та визначення запланованих завдань, а також заблокуйте пов’язані домени Azure, а також фальшивий портал з працевлаштування. Слідчі мають провести судово-медичний огляд папки AppData2FAGuard , видалити завдання стійкості та шукати подібну активність на інших системах, використовуючи ті самі підписи YARA. Логіку виявлення слід оновити новими ідентифікаторами індикаторів.
graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef file fill:#ccffcc classDef process fill:#ffdddd %% Nodes action_phishing[“<b>Дія</b> – <b>T1566.002 Spearphishing-посилання</b><br/>Жертви отримують повідомлення LinkedIn, що імітують рекрутера та містять шкідливе посилання на фальшивий портал працевлаштування.”] class action_phishing action action_delivery[“<b>Дія</b> – Доставка через шкідливий ZIP-архів<br/>Фальшивий портал надає ZIP-файл, що містить замаскований виконуваний файл Microsoft та приховані файли.”] class action_delivery action file_malicious_zip[“<b>Файл</b> – <b>Назва</b>: payload.zip<br/><b>Містить</b>: setup.exe та додаткові приховані файли”] class file_malicious_zip file file_setup_exe[“<b>Файл</b> – <b>Назва</b>: setup.exe (перейменований ServiceHub.VSDetouredHost.exe)<br/><b>Підпис</b>: дійсний підпис Microsoft”] class file_setup_exe file action_execution_proxy[“<b>Дія</b> – <b>T1218 Виконання через системні бінарі-проксі</b><br/>Використовується підписаний Microsoft бінарний файл як проксі для запуску шкідливого коду.”] class action_execution_proxy action action_masquerade[“<b>Дія</b> – <b>T1036.001 Маскування підпису коду</b><br/>Перейменування легітимного підписаного бінарного файлу для вигляду безпечного.”] class action_masquerade action action_hijack_path[“<b>Дія</b> – <b>T1574.008 Перехоплення порядку пошуку</b><br/>Файл setup.exe.config змінює порядок пошуку для завантаження компонентів атакувальника.”] class action_hijack_path action action_hijack_appdomain[“<b>Дія</b> – <b>T1574.014 AppDomainManager-перехоплення</b><br/>Примусове завантаження TOTPGuard.dll через конфігурацію .NET AppDomainManager.”] class action_hijack_appdomain action file_totpguard[“<b>Файл</b> – <b>Назва</b>: TOTPGuard.dll<br/><b>Призначення</b>: забезпечує шкідливу функцію 2FA для payload.”] class file_totpguard file action_ide_extension[“<b>Дія</b> – <b>T1176.002 Зловживання IDE-розширеннями</b><br/>Використання хост-компонента Visual Studio для запуску payload.”] class action_ide_extension action action_persistence[“<b>Дія</b> – <b>T1037.001 Планувальник завдань</b><br/>Створення задачі “BackupCheck”, що запускається при вході користувача.”] class action_persistence action action_env_keying[“<b>Дія</b> – <b>T1480.001 Умовне середовищне виконання</b><br/>AES-зашифрований payload із умовою запуску на основі MZ-заголовка.”] class action_env_keying action action_virtual_instance[“<b>Дія</b> – <b>T1564.006 Виконання у віртуальній інстанції</b><br/>Інтеграція легітимного 2FA інтерфейсу для приховування активності.”] class action_virtual_instance action %% Connections action_phishing –>|доставка| action_delivery action_delivery –>|надає| file_malicious_zip file_malicious_zip –>|містить| file_setup_exe file_setup_exe –>|використовується для| action_execution_proxy action_execution_proxy –>|у поєднанні з| action_masquerade action_masquerade –>|дозволяє| action_hijack_path action_hijack_path –>|призводить до| action_hijack_appdomain action_hijack_appdomain –>|завантажує| file_totpguard file_totpguard –>|активує| action_ide_extension action_ide_extension –>|підтримує| action_persistence action_persistence –>|створює| action_env_keying action_env_keying –>|полегшує| action_virtual_instance
Потік атаки
Виявлення
Можливий домен Azurewebsites, з яким зв’язався неочікуваний процес (через dns_query)
Перегляд
Підозріле заплановане завдання (через аудит)
Перегляд
Індикатори компрометації (HashSha256) для виявлення: Виявлення Nimbus Manticore і їх ланцюгів інфікування через бічне навантаження
Перегляд
Індикатори компрометації (SourceIP) для виявлення: Виявлення Nimbus Manticore і їх ланцюгів інфікування через бічне навантаження
Перегляд
Індикатори компрометації (DestinationIP) для виявлення: Виявлення Nimbus Manticore і їх ланцюгів інфікування через бічне навантаження
Перегляд
Виявлення зв’язку С2 Nimbus Manticore через домени Azure [Підключення до мережі Windows]
Перегляд
Виявлення інфекційного ланцюга Nimbus Manticore через бічне навантаження [Створення процесів Windows]
Перегляд
Виконання симуляції
Передумова: Телеметрія та перевірка базового рівня повинні пройти.
Аргументація: Цей розділ деталізує точне виконання техніки противника (TTP), розробленої для запуску правила виявлення. Команди та розповідь МУСЯТЬ безпосередньо відображати виявлені TTP і спрямовані на створення точної телеметрії, очікуваної логікою виявлення.
-
Нарратив атаки та команди:
Нападник отримав копію легітимного Visual Studiosetup.exeбінарний файл, перейменував його наsetup.exe(залишаючи назву незмінною, щоб уникнути підозр), і помістив його в директорію, що може бути записана. Вони створюють шкідливий DLL під назвоюTOTPGuard.dllякий містить навантаження. Щоб захопити AppDomain, вони вбудовують рядокAppDomainInjectionв аргумент шляху PDB. Потім атакуючий запускає виконуваний файл з наступною командою в командному рядку:C:Tempsetup.exe /install /doit /dll "C:TempTOTPGuard.dll" /pdb "C:TempAppDomainInjection.pdb"Ця точна інвокація задовольняє всі три
CommandLine|міститьумови в правилі Sigma, викликаючи спрацювання правила на події ProcessCreate. -
Сценарій регресійного тестування:
# ------------------------------------------------- # Регресійний скрипт для запуску виявлення Nimbus Manticore # ------------------------------------------------- $exePath = "C:Tempsetup.exe" $dllPath = "C:TempTOTPGuard.dll" $pdbPath = "C:TempAppDomainInjection.pdb" # Переконайтеся, що файли існують (створіть пусті файли-заглушки для тесту) New-Item -ItemType File -Path $exePath -Force | Out-Null New-Item -ItemType File -Path $dllPath -Force | Out-Null New-Item -ItemType File -Path $pdbPath -Force | Out-Null # Побудуйте шкідливу команду $arguments = @( "/install" "/doit" "/dll `"$dllPath`"" "/pdb `"$pdbPath`"" ) -join " " Write-Host "Запуск шкідливого setup.exe з аргументами:" Write-Host $arguments # Запустіть процес (завершиться відразу після запуску, тому що пустий exe нічого не робить) Start-Process -FilePath $exePath -ArgumentList $arguments -PassThru | Out-Null -
Команди очищення:
# ------------------------------------------------- # Видалення артефактів, створених для регресійного тесту # ------------------------------------------------- $paths = @( "C:Tempsetup.exe", "C:TempTOTPGuard.dll", "C:TempAppDomainInjection.pdb" ) foreach ($p in $paths) { if (Test-Path $p) { Remove-Item -Path $p -Force Write-Host "Видалено $p" } }