SOC Prime Bias: Mittel

25 Nov. 2025 18:38

DarkGate hinter den Kulissen

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
DarkGate hinter den Kulissen
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

DarkGate ist ein auf Delphi basierender Loader, der als Malware-as-a-Service auf kriminellen Märkten verkauft wird. Er umfasst vollständige RAT-Funktionalität, dynamische API-Auflösung und mehrschichtige Ausweichtechniken wie benutzerdefinierte Base64-Zeichensätze, Union-API–Stil syscall Laden und APC-Injektion. Das Tool, das dem Verkäufer „RastaFarEye“ zugeordnet wird, wurde von Akteuren wie TA577 und Ducktail übernommen. Es kommuniziert mit C2 über HTTP mit verschleierten Nutzlasten und kann Remote-Desktop-Utilities bereitstellen, Discord-Tokens stehlen und eine interaktive Reverse-Shell ausführen.

DarkGate Malware Analyse

Die Veröffentlichung bietet eine ausführliche Rückentwicklung des DarkGate-Executables und erklärt dessen maßgeschneiderte Konfigurationsverschlüsselung, XOR-gesteuerte BotID-Erzeugung und verschlüsselte Protokollierung. Es katalogisiert die Persistenztechniken des Loaders, Wege zur Privilegieneskalation, Token-Diebstahl-Workflows und den Missbrauch legitimer Binärdateien wie PsExec und Extexport für DLL-Sideloaing. Der Beitrag dokumentiert weiter C2-Kommunikationsmuster, Standard-hVNC-Anmeldedaten und die typischen genutzten HTTP-Ports (2351 und 9999).

Abschwächung

Blue Teams sollten auf die Erstellung der referenzierten Dateien und Registry-Run-Einträge achten, die Standard-hVNC-Anmeldedaten sofort ungültig machen oder blockieren und den Einsatz von PsExec und Extexport für nicht genehmigtes DLL-Loading erkennen. Verhaltensanalysen sollten die Union-API-syscall-Nutzung, APC-Injektion über NtTestAlert und Parent-PID-Spoofing abdecken. Netzwerkverteidigungen können ungewöhnliche HTTP-Ports erkennen und versuchen, die benutzerdefinierten Base64-Alphabete von DarkGate zu dekodieren, um C2-Verkehr aufzudecken.

Reaktion

Sobald DarkGate-Aktivität bestätigt ist, sollte der betroffene Endpunkt isoliert, die dokumentierten Artefakte gesammelt, schädliche Prozesse beendet und alle Persistenzstellen bereinigt werden. Alle freigelegten Anmeldedaten sollten geändert und bekannte C2-Domains sowie IP-Bereiche blockiert werden. Eine gründliche forensische Überprüfung sollte alle sekundären Nutzlasten identifizieren und sicherstellen, dass alle über Extexport oder verwandte Loader eingeführten DLLs eradiziert wurden.

mermaid graph TB %% Class definitions classDef technique fill:#ffcc99 classDef tool fill:#c2e0ff classDef action fill:#d9ffd9 %% Nodes – Techniques step_initial_infection[„<b>Technik</b> – <b>T1055.001: Initialer Zugriff über AutoIt-Skript</b><br />AutoIt-Skript wird verwendet, um die Malware-Nutzlast auf das Zielsystem zu liefern.“] class step_initial_infection technique step_dynamic_api[„<b>Technik</b> – <b>T1027.007: Obfuskierte/Gespeicherte Dateien – Dynamische API-Auflösung</b><br />Bösartiger Code löst benötigte Windows-APIs zur Laufzeit auf, um statische Analysen zu umgehen.“] class step_dynamic_api technique step_union_syscall[„<b>Technik</b> – <b>T1106: Native API</b><br />Union API syscall-Ausweichmanöver wird ausgeführt, um bösartiges Verhalten vor Überwachungstools zu verbergen.“] class step_union_syscall technique step_process_injection[„<b>Technik</b> – <b>T1055.004: Prozessinjektion – APC</b><br />Asynchroner Prozeduraufruf zur Injektion wird verwendet, um bösartigen Code in einem legitimen Prozess auszuführen.“] class step_process_injection technique step_token_manipulation[„<b>Technik</b> – <b>T1134: Zugriffstoken-Manipulation</b><br />Der Angreifer stiehlt oder modifiziert Zugriffstoken, um erhöhte Privilegien zu erlangen.“] class step_token_manipulation technique step_priv_esc_psexec[„<b>Technik</b> – <b>T1548.002: Missbrauch der Steuermechanismen – PsExec</b><br />PsExec wird genutzt, um Befehle als höherprivilegierter Benutzer auf Remote-Systemen auszuführen.“] class step_priv_esc_psexec technique step_persistence[„<b>Technik</b> – <b>T1547.001: Start- oder Anmeldeskripte – LNK und Registry-Run</b><br />Verknüpfungsdateien und Run-Registryschlüssel werden erstellt, um sicherzustellen, dass die Malware beim Starten aktiviert wird.“] class step_persistence technique step_keylogging[„<b>Technik</b> – <b>T1056.001: Eingabeerfassung – Keylogging</b><br />Benutzertastenanschläge werden aufgezeichnet, um Anmeldeinformationen und sensible Daten zu erfassen.“] class step_keylogging technique step_remote_vnc[„<b>Technik</b> – <b>T1021.005: Remote-Dienste – VNC</b><br />Ein versteckter VNC-Server bietet dem Angreifer interaktiven Remote-Desktop-Zugriff.“] class step_remote_vnc technique step_command_execution[„<b>Technik</b> – <b>T1059.001: Befehls- und Skriptinterpreter – PowerShell</b> und <b>T1059.003: Befehls- und Skriptinterpreter – Windows-Befehlszeile</b><br />PowerShell und cmd werden verwendet, um zusätzliche Angreiferbefehle auszuführen.“] class step_command_execution technique step_c2_communication[„<b>Technik</b> – <b>T1102.002/T1102.003: Anwendungsschichtprotokoll – Webprotokolle (HTTP/HTTPS)</b> und <b>T1132.002: Datenkodierung – Standardkodierung</b><br />C2-Datenverkehr wird über HTTP mit benutzerdefinierter Kodierung gesendet, um sich im normalen Webverkehr zu tarnen.“] class step_c2_communication technique step_environment_checks[„<b>Technik</b> – <b>T1497.001: Virtualisierung/Sandbox-Ausweichmanöver – Systemüberprüfungen</b> und <b>T1112: Registry verändern</b><br />Die Malware untersucht die Umgebung und ändert Registrierungswerte, um ihre Präsenz zu verbergen.“] class step_environment_checks technique %% Nodes – Tools tool_autoit[„<b>Tool</b> – <b>Name</b>: AutoIt<br /><b>Beschreibung</b>: Skriptsprache, die verwendet wird, um das initiale Infektionsskript zu erstellen.“] class tool_autoit tool tool_psexec[„<b>Tool</b> – <b>Name</b>: PsExec<br /><b>Beschreibung</b>: Remote-Ausführungsdienstprogramm, das Prozesse mit erhöhten Privilegien ausführt.“] class tool_psexec tool tool_vnc[„<b>Tool</b> – <b>Name</b>: Versteckter VNC-Server<br /><b>Beschreibung</b>: Bietet dem Angreifer eine versteckte Remote-Desktop-Funktionalität.“] class tool_vnc tool %% Connections – Attack Flow step_initial_infection u002du002d>|benutzt| tool_autoit step_initial_infection u002du002d>|führt zu| step_dynamic_api step_dynamic_api u002du002d>|führt zu| step_union_syscall step_union_syscall u002du002d>|führt zu| step_process_injection step_process_injection u002du002d>|führt zu| step_token_manipulation step_token_manipulation u002du002d>|führt zu| step_priv_esc_psexec step_priv_esc_psexec u002du002d>|benutzt| tool_psexec step_priv_esc_psexec u002du002d>|führt zu| step_persistence step_persistence u002du002d>|führt zu| step_keylogging step_keylogging u002du002d>|führt zu| step_remote_vnc step_remote_vnc u002du002d>|benutzt| tool_vnc step_remote_vnc u002du002d>|führt zu| step_command_execution step_command_execution u002du002d>|führt zu| step_c2_communication step_c2_communication u002du002d>|führt zu| step_environment_checks

Angriffsfluss

Simulation Ausführung

Voraussetzung: Der Telemetrie- & Baselinedurchlauf muss bestanden sein.

  • Angriffserzählung & Befehle:
    Der simulierte Angreifer hat bereits den Endpunkt infiltriert und versucht, dauerhaften RDP-Zugang zu etablieren. Zuerst sammeln sie Anmeldeinformationen, indem sie diese mit cmdkey speichern, dann verwenden sie psexec.exe, um sich seitlich zu bewegen, und schließlich eine PowerShell-Nutzlast zu starten, die einen Keylogger-Stub dropt. Jeder Schritt ist darauf ausgelegt, dass genau die Prozess-Erstellungsereignisse generiert werden, die die Erkennungsregel überwacht.

    1. Anmeldeinformationsaufzeichnung (T1552.001) – Erstellen Sie einen gestalteten Anmeldeeintrag, der das Muster der Regel selection_cmdkey trifft.
    2. Seitliche Bewegung (T1219) – Führen Sie psexec.exe gegen einen Remote-Host aus, indem ein Befehl aufgerufen wird, der eine neue PowerShell-Sitzung erzeugt.
    3. PowerShell-Ausführung (T1059.001) – Führen Sie einen PowerShell-Befehl aus, der ein bösartiges Skript lädt (hier mit einem harmlosen, Base64-kodierten Befehl simuliert).
    4. Keylogger-Bereitstellung (T1056.001) – Kompilieren und führen Sie eine kleine C-Binärdatei aus, die GetAsyncKeyState aufruft, was zu einem API -Feldvergleich führt.
  • Regressionstestskript:

    # DarkGate-Simulationsskript – PowerShell
    # --------------------------------------------------
    # 1. Cmdkey-Anmeldeeinstieg (entspricht dem Erkennungsmuster)
    $generic = '""'                         # Leeres generisches wie bei DarkGate verwendet
    $user    = 'SafeMode'                   # Benutzername, den die Regel erwartet
    $pass    = 'darkgatepassword0'          # Passwort, das die Regel erwartet
    cmd.exe /c cmdkey /generic:$generic /user:$user /pass:$pass
    
    # 2. PsExec seitliche Bewegung (Binärdatei muss im PATH existieren oder vollständigen Pfad angeben)
    $remoteHost = '10.0.0.5'
    $psexecPath = "$env:SystemRootSystem32psexec.exe"
    if (Test-Path $psexecPath) {
        & $psexecPath \$remoteHost -accepteula cmd /c "whoami"
    } else {
        Write-Host "PsExec nicht gefunden bei $psexecPath – überspringe diesen Schritt."
    }
    
    # 3. PowerShell-Ausführung (Base64-kodierter harmloser Befehl)
    $psCommand = 'Write-Output "PowerShell-Nutzlast ausgeführt"'
    $encoded = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($psCommand))
    powershell.exe -EncodedCommand $encoded
    
    # 4. Keylogger-Stummel-Kompilierung & Ausführung
    $cSource = @"
    #include <windows.h>
    int main() {
        // Einfacher Aufruf von GetAsyncKeyState, um den API-Vergleich zu erfüllen
        GetAsyncKeyState(VK_RETURN);
        return 0;
    }
    "@
    $srcPath = "$env:TEMPkeylog_stub.c"
    $exePath = "$env:TEMPkeylog_stub.exe"
    $cSource | Set-Content -Path $srcPath -Encoding ASCII
    # Kompilieren mit Visual C++ (cl.exe muss im PATH sein)
    cl.exe /nologo /O2 /Fe:$exePath $srcPath
    if (Test-Path $exePath) {
        & $exePath
    }
  • Bereinigungsanweisungen:

    # Entfernen Sie den Anmeldeeinstieg
    cmd.exe /c cmdkey /delete:$generic
    
    # Temporäre Dateien löschen
    Remove-Item -Force -ErrorAction SilentlyContinue "$env:TEMPkeylog_stub.c"
    Remove-Item -Force -ErrorAction SilentlyContinue "$env:TEMPkeylog_stub.exe"
    
    # Optional: Beenden Sie alle verirrten psexec- oder powershell-Prozesse, die von dem Skript gestartet wurden
    Get-Process -Name psexec, powerShell -ErrorAction SilentlyContinue | Stop-Process -Force