Erkennung von Nimbus Mantikore und deren Sideloading-Infektionsketten
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Nimbus Manticore, auch verfolgt als UNC1549, führte eine gezielte Phishing-Kampagne durch, die gefälschte Rekrutierungsportale nutzte, um eine mehrstufige .NET-Malware-Kette auszuliefern. Der Angriff missbrauchte legitime Microsoft Visual Studio-Komponenten zusammen mit AppDomain-Hijacking, um eine benutzerdefinierte DLL zu laden, die dann eine zweite Stufe DLL bereitstellte und durch eine geplante Aufgabe Persistenz schuf. Die Command-and-Control-Infrastruktur wurde auf Azure-basierten Domains gehostet. Die Kampagne zielte hauptsächlich auf Luft- und Raumfahrt- sowie Verteidigungsorganisationen im Nahen Osten und Europa ab.
Untersuchung
Forscher rekonstruierten die vollständige Infektionskette, beginnend mit dem LinkedIn-Köder und weiter über das ZIP-Archiv, die veränderte setup.exe.config Datei und den verschlüsselten Stager. Ihre Analyse zeigte den Missbrauch eines umbenannten ServiceHub.VSDetouredHost.exe, des TOTPGuard.dll Loaders, eines AES-verschlüsselten PE-Headers und eine beim Logon getriggerten geplanten Aufgabe namens BackupCheck. Netzwerk-Indikatoren wiesen auch auf mehrere Azure-gehostete Domains hin, die für Command-and-Control-Kommunikation verwendet wurden.
Minderung
Organisationen sollten Mitarbeiter schulen, um rekrutierungsthematische Social-Engineering-Taktiken zu erkennen, neu registrierte Domains blockieren oder genau überwachen und AppLocker oder gleichwertige Kontrollen auf benutzerbeschreibbaren Verzeichnissen durchsetzen. Verteidiger sollten auch nach geplanten Aufgaben mit dem Namen BackupCheck oder Ausführungen mit dem doit Argument Ausschau halten. Es wird auch empfohlen, das Verhalten von AppDomain-Hijacking in .NET-Anwendungen sowie verdächtigen Traffic zu Azure-gehosteten Command-and-Control-Domains zu überwachen.
Reaktion
Wenn verwandte Aktivitäten erkannt werden, isolieren Sie den betroffenen Endpunkt, sammeln Sie die schädlichen Binärdateien und die Definition der geplanten Aufgab, und blockieren Sie die zugehörigen Azure-Domains sowie das gefälschte Rekrutierungsportal. Ermittler sollten eine forensische Überprüfung des AppData2FAGuard Verzeichnisses durchführen, die Persistenzaufgabe entfernen und nach ähnlichen Aktivitäten auf anderen Systemen mit den gleichen YARA-Regeln suchen. Die Erkennungslogik sollte dann mit den neu identifizierten Indikatoren aktualisiert werden.
graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef file fill:#ccffcc classDef process fill:#ffdddd %% Nodes action_phishing[„<b>Aktion</b> – <b>T1566.002 Spearphishing-Link</b><br/>Die Opfer erhalten LinkedIn-Nachrichten, die sich als Recruiter ausgeben und einen bösartigen Link zu einem gefälschten Bewerbungsportal enthalten.“] class action_phishing action action_delivery[„<b>Aktion</b> – Verteilung über bösartige ZIP-Datei<br/>Das gefälschte Portal stellt eine ZIP-Datei bereit, die ein getarntes Microsoft-Binary und versteckte Dateien enthält.“] class action_delivery action file_malicious_zip[„<b>Datei</b> – <b>Name</b>: payload.zip<br/><b>Enthält</b>: setup.exe und zusätzliche versteckte Dateien“] class file_malicious_zip file file_setup_exe[„<b>Datei</b> – <b>Name</b>: setup.exe (umbenannt in ServiceHub.VSDetouredHost.exe)<br/><b>Signatur</b>: gültige Microsoft-Code-Signatur“] class file_setup_exe file action_execution_proxy[„<b>Aktion</b> – <b>T1218 System-Binary-Proxy-Ausführung</b><br/>Verwendet ein signiertes Microsoft-Binary als Proxy zur Ausführung schädlichen Codes.“] class action_execution_proxy action action_masquerade[„<b>Aktion</b> – <b>T1036.001 Tarnung von Code-Signaturen</b><br/>Ein legitim signiertes Binary wird umbenannt, um harmlos zu wirken und Erkennung zu umgehen.“] class action_masquerade action action_hijack_path[„<b>Aktion</b> – <b>T1574.008 Hijacking der Suchreihenfolge</b><br/>Die Datei setup.exe.config manipuliert die Suchreihenfolge, um Angreifer-Komponenten zu laden.“] class action_hijack_path action action_hijack_appdomain[„<b>Aktion</b> – <b>T1574.014 AppDomainManager-Hijacking</b><br/>Erzwingt das Laden von TOTPGuard.dll durch die .NET AppDomainManager-Konfiguration.“] class action_hijack_appdomain action file_totpguard[„<b>Datei</b> – <b>Name</b>: TOTPGuard.dll<br/><b>Zweck</b>: Bereitstellung einer manipulierten 2FA-Funktion.“] class file_totpguard file action_ide_extension[„<b>Aktion</b> – <b>T1176.002 Missbrauch von IDE-Erweiterungen</b><br/>Missbraucht den Visual-Studio-Hostprozess zur Ausführung der Nutzlast.“] class action_ide_extension action action_persistence[„<b>Aktion</b> – <b>T1037.001 Geplante Aufgabe</b><br/>Erstellt eine geplante Aufgabe „BackupCheck“, die beim Login ausgeführt wird.“] class action_persistence action action_env_keying[„<b>Aktion</b> – <b>T1480.001 Umweltabhängige Ausführung</b><br/>AES-verschlüsselte Nutzlast mit bedingter Ausführung über MZ-Header.“] class action_env_keying action action_virtual_instance[„<b>Aktion</b> – <b>T1564.006 Virtuelle Instanz-Ausführung</b><br/>Integriert eine legitime 2FA-Oberfläche zur Tarnung der Aktivität.“] class action_virtual_instance action %% Connections action_phishing –>|liefert| action_delivery action_delivery –>|stellt bereit| file_malicious_zip file_malicious_zip –>|enthält| file_setup_exe file_setup_exe –>|wird verwendet für| action_execution_proxy action_execution_proxy –>|kombiniert mit| action_masquerade action_masquerade –>|ermöglicht| action_hijack_path action_hijack_path –>|führt zu| action_hijack_appdomain action_hijack_appdomain –>|lädt| file_totpguard file_totpguard –>|ermöglicht| action_ide_extension action_ide_extension –>|unterstützt| action_persistence action_persistence –>|etabliert| action_env_keying action_env_keying –>|ermöglicht| action_virtual_instance
Angriffsfluss
Erkennungen
Möglicher Azurewebsites-Domänenkontakt durch ungewöhnlichen Prozess (via dns_query)
Ansehen
Verdächtige geplante Aufgabe (via Audit)
Ansehen
IOCs (HashSha256), um zu erkennen: Ermittlung von Nimbus Manticore und deren Sideloading-Infektionsketten
Ansehen
IOCs (SourceIP), um zu erkennen: Ermittlung von Nimbus Manticore und deren Sideloading-Infektionsketten
Ansehen
IOCs (DestinationIP), um zu erkennen: Ermittlung von Nimbus Manticore und deren Sideloading-Infektionsketten
Ansehen
Erkennung der Nimbus Manticore C2-Kommunikation über Azure-Domains [Windows-Netzwerkverbindung]
Ansehen
Erkennung der Nimbus Manticore Sideloading-Infektionskette [Windows-Prozesserstellung]
Ansehen
Simulation ausführen
Voraussetzung: Der Telemetrie- und Vorflug-Check muss bestanden haben.
Begründung: In diesem Abschnitt wird die genaue Ausführung der Opponententechnik (TTP) beschrieben, die die Erkennungsregel auslöst. Die Befehle und Erzählungen MÜSSEN die identifizierten TTPs direkt reflektieren und sollen die genaue Telemetrie erzeugen, die von der Erkennungslogik erwartet wird.
-
Angriffserzählung & Befehle:
Ein Angreifer hat eine Kopie des legitimen Visual Studiosetup.exeBinärdatei erhalten, diese umbenannt insetup.exe(den Namen unverändert lassen, um keinen Verdacht zu erregen), und in einem beschreibbaren Verzeichnis abgelegt. Sie erstellen eine bösartige DLL namensTOTPGuard.dll, die die Nutzlast enthält. Um die AppDomain zu hijacken, betten sie den StringAppDomainInjectionim PDB-Pfadargument ein. Der Angreifer startet dann die ausführbare Datei mit der folgenden Befehlszeile:C:Tempsetup.exe /install /doit /dll "C:TempTOTPGuard.dll" /pdb "C:TempAppDomainInjection.pdb"Diese genaue Ausführung erfüllt alle drei
CommandLine|containsBedingungen in der Sigma-Regel, wodurch die Regel beim ProcessCreate-Ereignis ausgelöst wird. -
Regression Test-Skript:
# ------------------------------------------------- # Regressionsskript, um die Nimbus Manticore-Erkennung auszulösen # ------------------------------------------------- $exePath = "C:Tempsetup.exe" $dllPath = "C:TempTOTPGuard.dll" $pdbPath = "C:TempAppDomainInjection.pdb" # Sicherstellen, dass die Dateien existieren (Dummys für den Test erstellen) 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 # Den bösartigen Befehlszeilenbefehl bauen $arguments = @( "/install" "/doit" "/dll `"$dllPath`"" "/pdb `"$pdbPath`"" ) -join " " Write-Host "Starte bösartige setup.exe mit Argumenten:" Write-Host $arguments # Den Prozess ausführen (wird sofort beendet, da Dummy-Exe nichts tut) Start-Process -FilePath $exePath -ArgumentList $arguments -PassThru | Out-Null -
Bereinigungskommandos:
# ------------------------------------------------- # Bereinigungsartefakte, die für den Regressionstest erstellt wurden # ------------------------------------------------- $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 "Entfernt $p" } }