SharpViewStateKing und die Anatomie eines heimlichen Implantat-Frameworks
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Das Canadian Centre for Cyber Security identifizierte SharpViewStateKing als ein modulares Implantat-Framework, das für die unauffällige Zielerfassung von ASP.NET-Umgebungen entwickelt wurde. Durch die missbräuchliche Verwendung kompromittierter ViewState-Parameter führt das Framework Plugins vollständig im Speicher aus, was ihm erlaubt, in einer effektiv zustandslosen Weise zu arbeiten und traditionelle dateibasierte Erkennung zu umgehen. Sein verschlüsselter HTTP- und HTTPS-Datenverkehr trägt weiter dazu bei, die Aktivitäten in legitime Webkommunikationen einzubetten.
Untersuchung
Die Untersuchung begann, nachdem Analysten eine Web-Shell auf einem öffentlich zugänglichen Microsoft IIS-Server entdeckten. Die Prüfung der Endpunkten-Telemetrie und des Prozesspeichers zeigte, dass das Implantat dynamisch generierte C#-Plugins nutzte, um Aktionen wie Dateiupload, Remote-Befehlsausführung und Host-Aufklärung durchzuführen. Die Forscher stützten sich auf die Assemblyline-Plattform, um den C#-Bytecode zu dekompilieren und die interne Logik des Frameworks offenzulegen.
Minderung
Verteidiger sollten alle möglicherweise betroffenen Hosts neu aufbauen und die mit ASP.NET-Anwendungen verbundenen Verschlüsselungs- und Validierungsschlüssel ersetzen. Auch die Behebung relevanter Schwachstellen, einschließlich der im Bericht erwähnten, die SharePoint betreffen, ist entscheidend. Die Überwachung von durch den IIS w3wp.exe Arbeitsprozess gestarteten Kindprozessen kann helfen, unautorisierte Aktivitäten in Verbindung mit dem Implantat aufzudecken.
Reaktion
Wenn SharpViewStateKing-Aktivitäten identifiziert werden, sollten Organisationen EDR- und NDR-Telemetrie auf Anzeichen für laterale Bewegungen überprüfen, einschließlich der Erstellung neuer Konten oder des Einsatzes von Tools wie SoftEther VPN. Alle mit dem kompromittierten System verbundenen Passwörter und Zugangsdaten sollten als gefährdet betrachtet und sofort geändert werden. Sicherheitsteams sollten auch prüfen, ob Microsoft Defender-Ausschlüsse ohne Autorisierung geändert wurden.
Angriffsverlauf
Erkennungen
Mögliche Impacket SecretDump Remote-Aktivität (via zeek)
Anzeigen
Mögliche Webserver- oder WebApp-Ausnutzung [Windows] (via cmdline)
Anzeigen
Verdächtige Modifikation der Defender-Ausschlüsse via WMIC (via cmdline)
Anzeigen
Mögliche Impacket SecretDump-Aktivität (via Prüfung)
Anzeigen
Erkennung von Remote-Ausführungs- und Spurenlösch-Plugins [Windows Sysmon]
Anzeigen
Erkennen Sie Anomalien von SharpViewStateKing HTTP-Anfragen [Webserver]
Anzeigen
Erkennung von Stealth-Befehlsausführung über versteckte Fenster [Windows Prozess-Erstellung]
Anzeigen
Simulation Ausführung
Voraussetzung: Der Telemetrie- & Baseline-Pre-Flight-Check muss bestanden haben.
Begründung: Dieser Abschnitt beschreibt die präzise Ausführung der Angreifertechnik (TTP), die darauf ausgelegt ist, die Erkennungsregel auszulösen. Die Befehle und Erzählungen MÜSSEN die identifizierten TTPs direkt widerspiegeln und zielen darauf ab, genau die von der Erkennungslogik erwartete Telemetrie zu erzeugen. Abstrakte oder nicht zusammenhängende Beispiele führen zu Fehldiagnosen.
-
Angriffserzählung & Befehle: Ein Angreifer hat eine verwundbare ASP.NET-Anwendung identifiziert und beabsichtigt, das SharpViewStateKing-Framework einzusetzen, um Persistenz zu erhalten und Sitzungsdaten abzufangen. Dazu sendet der Angreifer eine Reihe von HTTP-Anfragen, die die
__VIEWSTATEand__SCROLLPATHParameter nutzen, um eine Exploit-Nutzlast zu liefern. Durch die Verwendung dieser spezifischen Parameter versucht der Angreifer, mit dem Standard-ASP.NET-Verkehr zu verschmelzen, in der Hoffnung, signaturbasierte Erkennungen zu umgehen, die nur nach traditionellen Web-Shell-Pfaden suchen. -
Regressionstest-Skript:
# Simulationsskript zur Auslösung der SharpViewStateKing-Erkennungsregel $targetUri = "http://localhost/Login.aspx" # Nutzlast 1: Testen der Erkennung des __VIEWSTATE-Parameters Write-Host "[*] Simulation des Exploit-Versuchs mit __VIEWSTATE..." $payload1 = "__VIEWSTATE=MZ................[Simuliertes_Bösartiges_Nutzlast]" Invoke-WebRequest -Uri "$targetUri?$payload1" -Method Get # Nutzlast 2: Testen der Erkennung des __SCROLLPATH-Parameters Write-Host "[*] Simulation des Exploit-Versuchs mit __SCROLLPATH..." $payload2 = "__SCROLLPATH=/etc/passwd" Invoke-WebRequest -Uri "$targetUri?$payload2" -Method Get Write-Host "[+] Simulation abgeschlossen. SIEM auf Alarme prüfen." -
Bereinigungskommandos:
# Keine spezifische Bereinigung erforderlich, da es sich um zustandslose HTTP GET-Anfragen handelt. # Sollten jedoch während eines tatsächlichen Angriffs Dateien abgelegt worden sein, sollten diese entfernt werden. Write-Host "[*] Bereinigung der Simulation: Keine persistenten Artefakte erstellt."