SOC Prime Bias: Moyen

27 Avr 2026 18:22

RAT Telegram basé sur Rebex ciblant le Vietnam

Author Photo
Ruslan Mikhalov Chef de la Recherche sur les Menaces chez SOC Prime linkedin icon Suivre
RAT Telegram basé sur Rebex ciblant le Vietnam
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Un fichier CHM malveillant livré dans une archive ZIP déploie un exécutable Python véreux ainsi qu’un DLL C++ qui déchiffre une charge utile intégrée. Cette charge établit une persistance via un détournement de la shell Winlogon, une tâche planifiée et l’abus de MSBuild, puis lance un RAT Telegram basé sur .NET. Le malware communique avec un bot Telegram à l’aide d’un jeton codé en dur et supporte l’exécution de commandes, le remplacement de jeton et le téléchargement de fichiers. La campagne a été observée ciblant des victimes au Vietnam sans détections actuelles sur VirusTotal.

Enquête

L’analyse du fichier CHM a révélé un script qui a décompilé l’archive, effacé PYTHONHOME, et lancé un exécutable Python renommé avec un fichier de bytecode compilé. Le bytecode a ensuite chargé un DLL qui a déchiffré un blob DOCX crypté, extrait des composants supplémentaires et les a écrits dans des emplacements temporaires. Le DLL a créé des entrées dans le registre, planifié une tâche nommée Doute, et exécuté un MSBuild fichier XML pour charger un second DLL, qui a finalement déployé le RAT Telegram .NET. Le RAT reposait sur des identifiants de bot Telegram codés en dur pour le commandement et le contrôle.

Atténuation

Les défenseurs doivent bloquer l’exécution de fichiers CHM provenant de sources non fiables et restreindre l’utilisation de hh.exe, msbuild.exe, et PowerShell pour les scripts non signés ou suspects. La surveillance devrait se concentrer sur les modifications du registre Shell de Winlogon, la création de tâches planifiées inhabituelles, et les nouveaux DLL déposés dans les répertoires temporaires. Les organisations devraient également examiner le trafic API Telegram via les contrôles de proxy et appliquer un accès de moindre privilège pour les utilisateurs finaux.

et la tâche planifiée doivent être supprimées, les fichiers déposés effacés, et les paramètres du registre modifiés rétablis à un état sain connu. Tout jeton de bot Telegram exposé doit être immédiatement remplacé, et les défenseurs doivent continuer à surveiller toute activité supplémentaire de commandement et de contrôle. Une enquête judiciaire complète est recommandée pour déterminer si des données ont été exfiltrées.

Les équipes de sécurité doivent identifier et isoler les hôtes affectés, collecter les preuves volatiles, extraire les DLLs et scripts malveillants pour analyse. La valeur de modifications du registre Shell Winlogon

"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccccff classDef registry fill:#ffddaa %% Nodes initial_access_phishing["<b>Action</b> – <b>T1566.001 Spearphishing Attachment</b><br/>Email with malicious CHM disguised as Word document sent to victim."] class initial_access_phishing action file_chm["<b>Malware</b> – <b>File</b>: CV – Vu PLPC KT nam 2026.chm<br/>Disguised with doubleu2011extension to appear as .doc."] class file_chm malware defense_masquerade["<b>Action</b> – <b>T1036.008 Masquerading</b><br/>CHM file masquerades as Word document using double extension."] class defense_masquerade action defense_obfuscation["<b>Action</b> – <b>T1027.006 Obfuscated Files or Information</b><br/>HTML smuggling hides malicious code inside CHM."] class defense_obfuscation action execution_user["<b>Action</b> – <b>T1204.002 User Execution</b><br/>Victim opens CHM, HTML/JS runs OBJECT tag launching cmd.exe."] class execution_user action process_cmd["<b>Process</b> – cmd.exe<br/>Launched by CHM via OBJECT tag."] class process_cmd process execution_msbuild["<b>Action</b> – <b>T1127.001 Trusted Developer Utilities Proxy Execution</b><br/>Script drops mechaniSm.xml and calls msbuild.exe to load malicious .NET DLL."] class execution_msbuild action tool_msbuild["<b>Tool</b> – msbuild.exe<br/>Used to load ioy24euj.dll."] class tool_msbuild tool file_dll["<b>Malware</b> – <b>DLL</b>: ioy24euj.dll<br/>Contains .NET code for persistence and payload delivery."] class file_dll malware persistence_autostart["<b>Action</b> – <b>T1547.014 Active Setup</b><br/>DLL modifies HKCUSoftwareMicrosoftWindows NTCurrentVersionWinlogonShell to point to renamed msbuild wrapper."] class persistence_autostart action registry_mod["<b>Registry</b> – HKCUSoftwareMicrosoftWindows NTCurrentVersionWinlogonShell<br/>Set to custom msbuild wrapper for autou2011run."] class registry_mod registry persistence_event["<b>Action</b> – <b>T1546.009 AppCert DLLs</b><br/>DLL loaded via ctypes.CDLL and later executed to decrypt further payloads."] class persistence_event action dll_load["<b>Process</b> – ctypes.CDLL load<br/>Loads the malicious DLL into process space."] class dll_load process privilege_injection["<b>Action</b> – <b>T1055.001 Process Injection</b><br/>DLL injects code into cmd.exe to run payloads."] class privilege_injection action process_injection["<b>Process</b> – DLL injection into cmd.exe<br/>Enables execution of further malicious routines."] class process_injection process command_and_control["<b>Action</b> – <b>T1573 Encrypted Channel</b><br/>.NET RAT communicates with Telegram bot using XORu2011encrypted and base64 encoded messages."] class command_and_control action c2_telegram["<b>Tool</b> – Telegram bot<br/>Receives commands and exfiltrates data via encrypted channel."] class c2_telegram tool impact_shutdown["<b>Action</b> – <b>T1529 System Shutdown/Reboot</b><br/>Scheduled task u201cDoubtu201d created to shut down system every Friday at midnight."] class impact_shutdown action scheduled_task["<b>Process</b> – Scheduled Task u201cDoubtu201d<br/>Triggers system shutdown on schedule."] class scheduled_task process %% Connections initial_access_phishing –>|delivers| file_chm file_chm –>|uses| defense_masquerade file_chm –>|uses| defense_obfuscation file_chm –>|triggers| execution_user execution_user –>|launches| process_cmd process_cmd –>|enables| execution_msbuild execution_msbuild –>|uses| tool_msbuild tool_msbuild –>|loads| file_dll file_dll –>|enables| persistence_autostart persistence_autostart –>|modifies| registry_mod file_dll –>|enables| persistence_event persistence_event –>|loads via| dll_load dll_load –>|performs| privilege_injection privilege_injection –>|injects into| process_injection process_injection –>|facilitates| command_and_control command_and_control –>|uses| c2_telegram command_and_control –>|leads to| impact_shutdown impact_shutdown –>|creates| scheduled_task "

Flux d’attaque

Exécution de simulation

Prérequis : Le Check pré-vol du télémetrie & baseline doit avoir été réussi.

Justification : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit reflètent directement les TTPs identifiés et visent à générer la télémetrie exacte attendue par la logique de détection.

  • Narratif d’attaque & Commandes

    1. Livraison : L’attaquant livre un fichier .chm (nommé UpdateHelp.chm) au destinataire.

    2. Décompilation : La victime (ou un script malveillant) exécute hh.exe avec le -decompile flag pour extraire la charge intégrée :

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

      Cela génère l’événement de création de processus que la règle surveille (hh.exe + -decompile).

    3. Exécution de charge utile – Interprète renommé : Parmi les fichiers extraits se trouve un interprète Python renommé (_pJifgWSwPi.exe). L’attaquant le lance via cmd.exe pour rester discret :

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

      Cela remplit la cmd.exe condition de la règle.

    4. Proxy de binaire signé – Msbuild : La charge utile Python écrit un fichier .proj malveillant, puis invoque msbuild.exe pour l’exécuter, atteignant la persistance ou l’exécution de code ultérieure :

      msbuild.exe C:TempPayloadsmalicious.proj /target:Build
  • Script de test de régression

    #=============================================================
    # Simulation d'attaque basée sur CHM – Déclenche la règle Sigma
    #=============================================================
    
    # Variables
    $chmPath   = "C:UsersPublicUpdateHelp.chm"
    $outFolder = "C:TempPayloads"
    $renamedPy = "_pJifgWSwPi.exe"
    $projFile  = "malicious.proj"
    
    # 1. Assurez-vous que le dossier de sortie existe
    New-Item -ItemType Directory -Force -Path $outFolder | Out-Null
    
    # 2. Simulez la décompilation du fichier CHM
    Write-Host "[*] Décompilation du CHM..."
    hh.exe -decompile $outFolder $chmPath
    
    # 3. Placez une copie de python.exe (ou toute exe bénigne) en tant qu'interprète renommé
    Copy-Item -Path "$env:SystemRootSystem32WindowsPowerShellv1.0powershell.exe" `
              -Destination "$outFolder$renamedPy" -Force
    
    # 4. Exécutez l'interprète renommé via cmd.exe
    Write-Host "[*] Lancement de l'interprète renommé via cmd.exe..."
    cmd.exe /c "`"$outFolder$renamedPy`" -c `"Write-Host 'Exécution simulée de charge'`""
    
    # 5. Créez un projet msbuild trivial qui affiche un message
    $projContent = @"
    <Project ToolsVersion='4.0' xmlns='http://schemas.microsoft.com/developer/msbuild/2003'>
      <Target Name='Build'>
        <Message Text='Msbuild a exécuté le projet malveillant' Importance='High'/>
      </Target>
    </Project>
    "@
    Set-Content -Path "$outFolder$projFile" -Value $projContent -Encoding ASCII
    
    # 6. Exécutez msbuild.exe sur le projet malveillant
    Write-Host "[*] Exécution de msbuild.exe..."
    msbuild.exe "$outFolder$projFile" /target:Build
    
    Write-Host "[+] Simulation terminée."
  • Commandes de nettoyage

    # Arrêtez tous les processus restants (s'il en existe encore)
    Get-Process -Name "_pJifgWSwPi","hh","msbuild","cmd" -ErrorAction SilentlyContinue |
      Stop-Process -Force
    
    # Supprimez les fichiers et dossiers générés
    Remove-Item -Recurse -Force -Path "C:TempPayloads"
    # Supprimez éventuellement le fichier CHM s'il a été créé pour le test
    Remove-Item -Force -Path "C:UsersPublicUpdateHelp.chm" -ErrorAction SilentlyContinue
    
    Write-Host "[+] Nettoyage terminé."