SOC Prime Bias: Mittel

09 Dez. 2025 18:46

Castle RAT Client Malware: Taktiken, Techniken und Handel

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
Castle RAT Client Malware: Taktiken, Techniken und Handel
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

CastleRAT ist ein Fernzugriffstrojaner, der erstmals im März 2025 beobachtet wurde und sowohl in Python- als auch in kompilierten C-Varianten ausgeliefert wird. Er sammelt Systemmetadaten, Tastenanschläge, Zwischenablageinhalte, Screenshots und Details von Mediengeräten und exfiltriert diese Informationen dann mithilfe von RC4-Verschlüsselung zu einem C2-Server. Die Malware kann zusätzliche Nutzlasten abrufen, sie über rundll32 starten und durch geplante Tasks und UAC-Umgehungsmethoden Persistenz herstellen.

Untersuchung

Das Splunk Threat Research Team hat die Python- und C-Implementierungen rückentwickelt und deren Verhalten auf MITRE ATT&CK-Techniken abgebildet, einschließlich Systemerkennung, Tastenprotokollierung, Bildschirmaufnahme, Audio-/Videogerätezählung, toter Ziel-Resolver und Handle-Duplizierung zur Rechteausweitung. Die Forschung betonte CastleRATs Abhängigkeit von legitimen Windows-Binaries (rundll32, ComputerDefaults.exe) und seine Nutzung von www.ip-api.com, um die öffentliche IP-Adresse zu erhalten.

Minderung

Verteidiger sollten verdächtige ausgehende Verbindungen zu unbekannten Domains, RC4-verschlüsselte Verkehrsmuster und Ausführungen von rundll32 unter Verwendung von ordinalen DLL-Loads erkennen. Überwachen Sie auf geplante Tasks, die zur Start von CastleRAT erstellt wurden, UAC-Umgehungsversuche unter Nutzung von ComputerDefaults.exe und Prozesse, die mit stummgeschaltetem Audio-Browser-Flags gestartet werden. Blockieren Sie den Zugriff auf bekannte Orte von toten Ziel-Resolvern, einschließlich missbrauchter Steam-Community-Seiten.

Reaktion

Wenn CastleRAT-Aktivität erkannt wird, isolieren Sie den betroffenen Host, beenden Sie die bösartigen Prozesse und entfernen Sie alle zugehörigen geplanten Tasks oder Persistenzartefakte. Sammeln Sie forensische Beweise wie Prozesshierarchien, Kommandozeilenargumente und Registrierungsänderungen. Führen Sie eine umfassende Suche nach zusätzlichen DLL-Plug-ins und C2-Kanälen durch und führen Sie dann Maßnahmen zur Fehlerbehebung und Härtung in der gesamten Umgebung ein.

mermaid graph TB %% Class definitions classDef technique fill:#e6f7ff %% Node definitions t1016_001[„<b>Technik</b> – T1016.001 Systemnetzwerkkonfigurationserkennung<br />Sammelt Systemdetails wie Computernamen, Benutzernamen, Maschinen-GUID, Betriebssystemversion und öffentliche IP-Adresse, um sie an C2 zu senden“] class t1016_001 technique t1115[„<b>Technik</b> – T1115 Zwischenablagedaten<br />Erntet Daten aus der Windows-Zwischenablage und exfiltriert sie, oft unter Verwendung simulierter Einfügeaktionen“] class t1115 technique t1036[„<b>Technik</b> – T1036 Verkleidung<br />Benennte abgelegte Dateien und Umgebungsvariablen, sodass sie als legitime Python- oder Java-Komponenten erscheinen“] class t1036 technique t1056_001[„<b>Technik</b> – T1056.001 Eingabeauffangung: Tastenprotokollierung<br />Fängt Tastenanschläge ab, schreibt sie in eine lokale Datei, verschlüsselt die Datei mit RC4 und sendet sie an den Angreifer“] class t1056_001 technique t1559[„<b>Technik</b> – T1559 Kommunikation zwischen Prozessen<br />Startet einen versteckten Shell-Prozess mit umgeleiteten Standardstreams durch anonyme Pipes, wodurch eine remote Befehlausführung ohne sichtbare Konsole möglich wird“] class t1559 technique t1123[„<b>Technik</b> – T1123 Audioaufzeichnung<br />Zählt Medienaufnahmegeräte über Media Foundation“] class t1123 technique t1125[„<b>Technik</b> – T1125 Videoaufnahme<br />Zählt Medienaufnahmegeräte über Media Foundation“] class t1125 technique t1218_011[„<b>Technik</b> – T1218.011 System-Binärproxy-Ausführung: Rundll32<br />Lädt bösartige DLL-Exportfunktion nach Ordinal“] class t1218_011 technique t1055_001[„<b>Technik</b> – T1055.001 Prozessinjektion: Dynamik-Link-Bibliotheksinjektion<br />Verwendet rundll32.exe, um eine bösartige DLL zu laden“] class t1055_001 technique t1547_010[„<b>Technik</b> – T1547.010 Autostart bei Booten oder Anmelden: Portmonitore<br />Lädt zusätzliches DLL-Plugin von C2 herunter, entschlüsselt sie mit RC4 und lädt sie“] class t1547_010 technique t1053[„<b>Technik</b> – T1053 Geplante Aufgaben/Jobs<br />Erstellt eine geplante Aufgabe, um Malware beim Start auszuführen“] class t1053 technique t1113[„<b>Technik</b> – T1113 Bildschirmaufnahme<br />Erfasst regelmäßig Screenshots und exfiltriert sie“] class t1113 technique t1102_001[„<b>Technik</b> – T1102.001 Web Service: Dead Drop Resolver<br />Ruft Konfigurationen oder Nutzlasten von unbedenklichen externen Websites ab“] class t1102_001 technique t1127[„<b>Technik</b> – T1127 Vertrauenswürdige Entwicklerdienstprogrammen-Proxy-Ausführung<br />Verwendet ComputerDefaults.exe und Handle-Duplizierung, um UAC zu umgehen und Code mit erhöhten Rechten auszuführen“] class t1127 technique t1027[„<b>Technik</b> – T1027 Verschleierte Dateien oder Informationen<br />Verwendet RC4-Verschlüsselung für Befehls- und Daten-Nutzlasten“] class t1027 technique t1048_001[„<b>Technik</b> – T1048.001 Exfiltration über alternatives Protokoll: Symmetrisch verschlüsseltes Nicht-C2-Protokoll<br />Sendet verschlüsselte Daten an C2“] class t1048_001 technique t1132_001[„<b>Technik</b> – T1132.001 Datenkodierung: Standardkodierung<br />Kodiert Daten vor der Übertragung“] class t1132_001 technique %% Verbindungen, die den Angriffsfluss zeigen t1016_001 u002du002d>|leads_to| t1115 t1115 u002du002d>|leads_to| t1036 t1036 u002du002d>|leads_to| t1056_001 t1056_001 u002du002d>|leads_to| t1559 t1559 u002du002d>|leads_to| t1123 t1123 u002du002d>|leads_to| t1125 t1125 u002du002d>|leads_to| t1218_011 t1218_011 u002du002d>|leads_to| t1055_001 t1055_001 u002du002d>|leads_to| t1547_010 t1547_010 u002du002d>|leads_to| t1053 t1053 u002du002d>|leads_to| t1113 t1113 u002du002d>|leads_to| t1102_001 t1102_001 u002du002d>|leads_to| t1127 t1127 u002du002d>|leads_to| t1027 t1027 u002du002d>|leads_to| t1048_001 t1048_001 u002du002d>|leads_to| t1132_001

Angriffsfluss

Simulation der Ausführung

Voraussetzung: Der Telemetrie- & Basislinien-Pre-Flight-Check muss bestanden sein.

Begründung: Dieser Abschnitt beschreibt die präzise Ausführung der gegnerischen Technik (TTP), die darauf abzielt, die Erkennungsregel auszulösen. Die Befehle und Narrative MÜSSEN direkt der identifizierten TTPs entsprechen und darauf abzielen, die genaue Telemetrie zu generieren, die durch die Erkennungslogik erwartet wird. Abstrakte oder nicht verwandte Beispiele führen zu Fehldiagnosen.

  • Angriffsgeschichte & Befehle:

    1. Phase 1 – Bereitstellen der CastleRAT-Binärdatei:Der Angreifer kopiert CastleRAT.exe in das Verzeichnis %APPDATA% des Opfers, um mit Benutzerdaten zu verschmelzen.
    2. Phase 2 – Ausführen der Tastenprotokollierung: Mithilfe eines kleinen In-Memory-Loaders in C# ruft der Angreifer SetWindowsHookEx auf, um einen Low-Level-Tastatur-Hook zu installieren, wodurch Sysmon die API im CallTrace des Prozessereintragungsereignisses aufnimmt.
    3. Phase 3 – Rechteausweitung: Der gleiche Loader ruft dann DuplicateHandle auf, um einen Handle aus einem privilegierten Systemprozess (z.B. lsass.exe) zu duplizieren, was der Malware ermöglicht, mit SYSTEM-Rechten ausgeführt zu werden. Beide API-Aufrufe erscheinen im gleichen Sysmon CallTrace, wodurch die Kriterien für die Erkennungsregel erfüllt werden.
  • Regressionstestskript:

    # -------------------------------------------------
    # CastleRAT-Simulation – Ruft SetWindowsHookEx und DuplicateHandle auf
    # -------------------------------------------------
    $castlePath = "$env:APPDATACastleRAT.exe"
    
    # 1. Lassen Sie eine minimale Stube fallen, die die echte Nutzlast lädt (hier simuliert)
    $payload = @"
    using System;
    using System.Runtime.InteropServices;
    public class Loader {
        [DllImport("user32.dll")]
        public static extern IntPtr SetWindowsHookEx(int idHook, IntPtr lpfn, IntPtr hMod, uint dwThreadId);
        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern bool DuplicateHandle(IntPtr hSourceProcessHandle,
                                                  IntPtr hSourceHandle,
                                                  IntPtr hTargetProcessHandle,
                                                  out IntPtr lpTargetHandle,
                                                  uint dwDesiredAccess,
                                                  bool bInheritHandle,
                                                  uint dwOptions);
        public static void Execute() {
            // Installieren Sie einen Low-Level-Tastaturhook (WH_KEYBOARD_LL = 13)
            SetWindowsHookEx(13, IntPtr.Zero, IntPtr.Zero, 0);
            // Duplizieren Sie einen Handle aus dem aktuellen Prozess (simuliert)
            IntPtr dupHandle;
            DuplicateHandle((IntPtr)-1, (IntPtr)0x1234, (IntPtr)-1, out dupHandle, 0, false, 0);
        }
    }

„@

# Kompilieren Sie den C#-Code on-the-fly
Add-Type -TypeDefinition $payload -Language CSharp

# Kopieren Sie den aktuellen PowerShell-Prozess (agiert als CastleRAT.exe) in den Zielpfad
Copy-Item -Path $PSCommandPath -Destination $castlePath -Force

# Führen Sie die bösartige Nutzlast aus
[Loader]::Execute()

# Halten Sie den Prozess kurzzeitig am Leben, um sicherzustellen, dass Sysmon den Aufrufstapel protokolliert
Start-Sleep -Seconds 5
  • Bereinigungsebefehle:

    # Entfernen Sie die simulierte CastleRAT-Binärdatei
    Remove-Item -Path "$env:APPDATACastleRAT.exe" -Force
    
    # Optional Haken entladen (nicht für die Stube benötigt, aber vollständigkeitshalber)
    # Kein explizites Entladen für den SetWindowsHookEx-Aufruf mit NULL-Callback erforderlich, der oben verwendet wurde.