SOC Prime Bias: Mittel

27 Apr 2026 15:22 UTC

Rebex-basierte Telegram RAT zielt auf Vietnam ab

Author Photo
SOC Prime Team linkedin icon Folgen
Rebex-basierte Telegram RAT zielt auf Vietnam ab
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Zusammenfassung

Eine bösartige CHM-Datei, die innerhalb eines ZIP-Archivs geliefert wird, bringt eine betrügerische Python-Laufzeitumgebung zusammen mit einer C++-DLL, die eine eingebettete Nutzlast entschlüsselt. Diese Nutzlast etabliert Persistenz durch eine Winlogon-Shell-Übernahme, eine geplante Aufgabe und den Missbrauch von MSBuild, dann startet sie einen .NET-basierten Telegram-RAT. Die Malware kommuniziert mit einem Telegram-Bot unter Verwendung eines fest codierten Tokens und unterstützt die Ausführung von Befehlen, den Austausch von Tokens und das Herunterladen von Dateien. Die Kampagne wurde beobachtet, wie sie Opfer in Vietnam ins Visier nimmt, und zeigt derzeit keine Erkennungen auf VirusTotal.

Untersuchung

Die Analyse der CHM-Datei enthüllte ein Skript, das das Archiv dekompilierte, PYTHONHOMElöschte und ein umbenanntes Python-Executable mit einer kompilierten Bytecode-Datei startete. Der Bytecode lud dann eine DLL, die einen verschlüsselten DOCX-Blob entschlüsselte, zusätzliche Komponenten extrahierte und sie an temporäre Orte schrieb. Die DLL erstellte Registrierungseinträge, plante eine Aufgabe namens Doubtund führte eine MSBuild XML-Datei aus, um eine zweite DLL zu laden, die letztendlich den .NET Telegram RAT bereitstellte. Der RAT verließ sich auf hart codierte Telegram-Bot-Anmeldedaten für die Kommando- und Kontrollfunktion.

Minderung

Verteidiger sollten die Ausführung von CHM-Dateien aus unzuverlässigen Quellen blockieren und die Verwendung von hh.exe, msbuild.exeund PowerShell für nicht signierte oder verdächtige Skripte einschränken. Das Monitoring sollte sich auf Winlogon Shell Registrierungsänderungen, ungewöhnliche Erstellung von geplanten Aufgaben und neu abgelegte DLLs in temporären Verzeichnissen konzentrieren. Organisationen sollten auch den Telegram-API-Verkehr über Proxy-Kontrollen inspizieren und den Zugriff mit minimalen Rechten für Endnutzer durchsetzen.

Antwort

Sicherheitsteams sollten betroffene Hosts identifizieren und isolieren, flüchtige Beweise sammeln sowie die bösartigen DLLs und Skripte zur Analyse extrahieren. Der Winlogon Shell Wert und die geplante Aufgabe sollten entfernt, abgelegte Dateien gelöscht und geänderte Registrierungseinstellungen auf einen bekannten, guten Zustand zurückgesetzt werden. Alle offengelegten Telegram-Bot-Tokens sollten sofort ersetzt werden, und Verteidiger sollten weiterhin auf zusätzliche Kommando- und Kontrollaktivitäten überwachen. Eine vollständige forensische Untersuchung wird empfohlen, um festzustellen, ob Daten exfiltriert wurden.

graph TB %% Class Definitions classDef technique fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ffeb99 classDef operator fill:#ff9900 %% Nodes – Techniken initial_access[„<b>Technik</b> – <b>T1204.001 Benutzerausführung: Maliziöser Link</b><br/><b>Beschreibung</b>: Opfer klicken auf einen präparierten Link, der schädlichen Inhalt ausführt.“] class initial_access technique delivery_html_smuggling[„<b>Technik</b> – <b>T1027.006 Verschleierte Dateien oder Informationen: HTML-Smuggling</b><br/><b>Beschreibung</b>: JavaScript wird über eine Webseite geliefert und versteckt die Nutzlast in HTML.“] class delivery_html_smuggling technique delivery_compile_after[„<b>Technik</b> – <b>T1027.004 Nach Lieferung kompilieren</b><br/><b>Beschreibung</b>: Nutzlast wird erst auf dem Host zusammengesetzt.“] class delivery_compile_after technique delivery_embedded_payloads[„<b>Technik</b> – <b>T1027.009 Eingebettete Nutzlasten</b><br/><b>Beschreibung</b>: Nutzlast ist in anderen Dateien wie JavaScript versteckt.“] class delivery_embedded_payloads technique delivery_deobfuscate[„<b>Technik</b> – <b>T1140 Deobfuskation/Decodierung</b><br/><b>Beschreibung</b>: Base64-Daten werden im Browser dekodiert.“] class delivery_deobfuscate technique persistence_run_key[„<b>Technik</b> – <b>T1127.002 Trusted-Developer-Tools Proxy-Ausführung</b><br/><b>Beschreibung</b>: Installer erstellt Run-Key für node.exe.“] class persistence_run_key technique persistence_appcert[„<b>Technik</b> – <b>T1546.009 Ereignisgesteuerte Ausführung: AppCert DLLs</b><br/><b>Beschreibung</b>: Vertrauenssignierte DLLs werden geladen.“] class persistence_appcert technique recon_hardware[„<b>Technik</b> – <b>T1592.001 Hostinformationen: Hardware</b>“] class recon_hardware technique recon_firmware[„<b>Technik</b> – <b>T1592.003 Hostinformationen: Firmware</b>“] class recon_firmware technique c2_web_protocols[„<b>Technik</b> – <b>T1071.001 Webprotokolle</b>“] class c2_web_protocols technique c2_bidirectional[„<b>Technik</b> – <b>T1102.002 Webdienst: bidirektionale Kommunikation</b>“] class c2_bidirectional technique c2_oneway[„<b>Technik</b> – <b>T1102.003 Webdienst: unidirektionale Kommunikation</b>“] class c2_oneway technique c2_encrypted[„<b>Technik</b> – <b>T1573 Verschlüsselter Kanal</b>“] class c2_encrypted technique c2_data_encoding[„<b>Technik</b> – <b>T1132 Datenkodierung</b>“] class c2_data_encoding technique c2_config_repo[„<b>Technik</b> – <b>T1602 Konfigurationsrepository</b>“] class c2_config_repo technique asset_drain[„<b>Technik</b> – Token-Genehmigung“] class asset_drain technique %% Tools / Prozesse tool_malicious_link[„<b>Tool</b>: Phishing-Link“] class tool_malicious_link tool tool_js_payload[„<b>Tool</b>: Obfuskierter JavaScript-Payload“] class tool_js_payload tool process_installer[„<b>Prozess</b>: Windows Installer“] class process_installer process tool_node_exe[„<b>Tool</b>: node.exe“] class tool_node_exe tool tool_web3modal[„<b>Tool</b>: Web3Modal UI“] class tool_web3modal tool %% Connections (unchanged) initial_access –>|leads_to| delivery_html_smuggling delivery_html_smuggling –>|uses| tool_malicious_link delivery_html_smuggling –>|uses| tool_js_payload delivery_html_smuggling –>|enables| delivery_compile_after delivery_compile_after –>|enables| delivery_embedded_payloads delivery_embedded_payloads –>|triggers| delivery_deobfuscate delivery_deobfuscate –>|creates| process_installer process_installer –>|drops| persistence_run_key process_installer –>|may_use| persistence_appcert persistence_run_key –>|executes| tool_node_exe persistence_appcert –>|loads| tool_node_exe tool_node_exe –>|collects| recon_hardware tool_node_exe –>|collects| recon_firmware recon_hardware –>|feeds| c2_web_protocols recon_firmware –>|feeds| c2_web_protocols c2_web_protocols –>|supports| c2_bidirectional c2_web_protocols –>|supports| c2_oneway c2_bidirectional –>|uses| c2_encrypted c2_oneway –>|uses| c2_encrypted c2_encrypted –>|encodes| c2_data_encoding c2_data_encoding –>|stores_config_in| c2_config_repo c2_config_repo –>|provides| asset_drain asset_drain –>|uses| tool_web3modal

Angriffsfluss

Simulationsausführung

Voraussetzung: Die Telemetrie- & Basislinien-Vorabprüfung muss bestanden haben.

Rationale: Dieser Abschnitt beschreibt die präzise Ausführung der Angreifertechnik (TTP), die darauf abzielt, die Erkennungsregel auszulösen. Die Befehle und die Erzählung spiegeln direkt die identifizierten TTPs wider und zielen darauf ab, die genaue Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird.

  • Angriffserzählung & Befehle

    1. Zustellung: Der Angreifer liefert eine bösartige .chm Datei (benannt UpdateHelp.chm) an das Opfer.

    2. Dekomprimierung: Das Opfer (oder ein bösartiges Skript) führt hh.exe mit dem -decompile Flag aus, um die eingebettete Nutzlast zu extrahieren:

      hh.exe -decompile C:TempPayloads C:UsersPublicUpdateHelp.chm

      Dies erzeugt das Ereignis der Prozesserstellung auf das die Regel achtet (hh.exe + -decompile).

    3. Nutzlastausführung – Umbenannter Interpreter: In den extrahierten Dateien befindet sich ein umbenannter Python-Interpreter (_pJifgWSwPi.exe). Der Angreifer startet ihn über cmd.exe um unauffällig zu bleiben:

      cmd.exe /c "C:TempPayloads_pJifgWSwPi.exe -c "import os; os.system('whoami')""

      Dies erfüllt die cmd.exe Bedingung der Regel.

    4. Signierte-Binary-Proxy – Msbuild: Die Python-Nutzlast schreibt eine bösartige .proj Datei und ruft dann msbuild.exe auf, um sie auszuführen und Persistenz oder weitere Codeausführung zu erreichen:

      msbuild.exe C:TempPayloadsmalicious.proj /target:Build
  • Regressionstestskript

    #=============================================================
    # CHM-basierte Angriffssimulation – Löst Sigma-Regel aus
    #=============================================================
    
    # Variablen
    $chmPath   = "C:UsersPublicUpdateHelp.chm"
    $outFolder = "C:TempPayloads"
    $renamedPy = "_pJifgWSwPi.exe"
    $projFile  = "malicious.proj"
    
    # 1. Sicherstellen, dass der Ausgabeordner existiert
    New-Item -ItemType Directory -Force -Path $outFolder | Out-Null
    
    # 2. Simulation der Dekomprimierung der CHM-Datei
    Write-Host "[*] Dekomprimierung CHM..."
    hh.exe -decompile $outFolder $chmPath
    
    # 3. Eine Kopie von python.exe (oder einer beliebigen harmlosen exe) als umbenannten Interpreter platzieren
    Copy-Item -Path "$env:SystemRootSystem32WindowsPowerShellv1.0powershell.exe" `
              -Destination "$outFolder$renamedPy" -Force
    
    # 4. Den umbenannten Interpreter über cmd.exe ausführen
    Write-Host "[*] Umbenannten Interpreter über cmd.exe starten..."
    cmd.exe /c "`"$outFolder$renamedPy`" -c `"Write-Host 'Simulierte Nutzlast ausgeführt'`""
    
    # 5. Ein triviales msbuild-Projekt erstellen, das eine Nachricht ausgibt
    $projContent = @"
    <Project ToolsVersion='4.0' xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>
      <Target Name='Build'>
        <Message Text='Msbuild hat bösartiges Projekt ausgeführt' Importance='High'/>
      </Target>
    </Project>
    "@
    Set-Content -Path "$outFolder$projFile" -Value $projContent -Encoding ASCII
    
    # 6. Msbuild.exe auf dem bösartigen Projekt ausführen
    Write-Host "[*] Msbuild.exe ausführen..."
    msbuild.exe "$outFolder$projFile" /target:Build
    
    Write-Host "[+] Simulation abgeschlossen."
  • Bereinigungsbefehle

    # Stoppen aller verbleibenden Prozesse (falls noch laufend)
    Get-Process -Name "_pJifgWSwPi","hh","msbuild","cmd" -ErrorAction SilentlyContinue |
      Stop-Process -Force
    
    # Entfernen der generierten Dateien und Ordner
    Remove-Item -Recurse -Force -Path "C:TempPayloads"
    # Optional kann die CHM-Datei gelöscht werden, wenn sie für den Test erstellt wurde
    Remove-Item -Force -Path "C:UsersPublicUpdateHelp.chm" -ErrorAction SilentlyContinue
    
    Write-Host "[+] Bereinigung abgeschlossen."