SOC Prime Bias: Critique

16 Jan 2026 16:25

Comment les téléchargements de logiciels légitimes peuvent dissimuler des portes dérobées à distance

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Suivre
Comment les téléchargements de logiciels légitimes peuvent dissimuler des portes dérobées à distance
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Les attaquants exploitent un site de téléchargement RustDesk ressemblant (rustdesk.work) qui fournit un installateur trojanisé : une configuration RustDesk légitime avec un chargeur malveillant surnommé Winos4.0. Lorsqu’il est exécuté, le dropper implante logger.exe and Libserver.exe, puis charge la porte dérobée en mémoire pour réduire les artefacts sur le disque. L’implant établit une commande et un contrôle sur 207.56.13.76 via TCP/5666, permettant un accès distant persistant. Cette activité est menée par l’ingénierie sociale et l’imitation de marque, et non par une vulnérabilité du logiciel RustDesk.

Enquête

Les analystes ont obtenu le binaire malveillant rustdesk-1.4.4-x86_64.exe et observé qu’il écrivait un installateur RustDesk légitime ainsi qu’une version armée logger.exe sur le disque. Le logger.exe composant génère Libserver.exe, qui met ensuite en scène WinosStager DLLs et une large charge utile en mémoire sans persister ces modules sur le disque. La télémétrie réseau a confirmé des communications sortantes vers 207.56.13.76:5666, évalué comme étant le canal C2 de la campagne. Les enquêteurs ont extrait des IOCs clés, y compris le domaine usurpé (rustdesk.work), les noms de fichiers déposés, et les hachages de fichiers associés.

Atténuation

Renforcez les pratiques d’acquisition de logiciels vérifiées et téléchargez RustDesk uniquement depuis la source officielle (rustdesk.com). Appliquez une allowlist d’application (ou des contrôles équivalents) pour empêcher l’exécution de binaires non fiables, en particulier les fichiers d’“installation” provenant de répertoires accessibles en écriture par l’utilisateur. Surveillez et restreignez le trafic sortant vers TCP/5666, et ajoutez des règles de détection/blocage pour les connexions vers rustdesk.work. Bloquez 207.56.13.76 et le domaine malveillant à travers les contrôles DNS, proxy, et pare-feu.

Réponse

Créez des détections pour l’exécution de logger.exe and Libserver.exe, et alertez sur toute connexion réseau vers 207.56.13.76:5666. Faites une chasse proactive à travers les points de terminaison pour l’installateur trojanisé (et tout indicateurs SHA-256 disponibles) et validez si RustDesk a été installé à partir de sources non approuvées. Si le compromis est confirmé, isolez les hôtes affectés, terminez l’arborescence des processus malveillants, retirez les artefacts associés, et changez les identifiants potentiellement exposés (surtout tout compte utilisé lors de l’installation ou de sessions à distance ultérieures).

« graph TB %% Définitions des classes classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ffdd99 classDef tool fill:#cccccc classDef operator fill:#ff9900 %% Noeuds action_initial_access[« <b>Action</b> – Accès initial<br/><b>Technique</b> : T1204 Exécution par l’utilisateur »] class action_initial_access action tech_user_execution[« <b>Technique</b> – T1204 Exécution par l’utilisateur<br/>La victime exécute un contenu malveillant »] class tech_user_execution technique tech_malicious_link[« <b>Technique</b> – T1204.001 Lien malveillant<br/>Le lien mène au téléchargement d’un installateur malveillant »] class tech_malicious_link technique tech_trojanized_installer[« <b>Technique</b> – T1204.002 Installateur trojanisé<br/>L’installateur semble légitime mais contient une charge utile »] class tech_trojanized_installer technique malware_logger_exe[« <b>Malware</b> – logger.exe<br/>Capte les entrées et effectue des actions de privilège »] class malware_logger_exe malware tech_process_masquerade[« <b>Technique</b> – T1036.011 Mascarade<br/>Le nom du processus est falsifié pour sembler légitime »] class tech_process_masquerade technique tech_argument_spoof[« <b>Technique</b> – T1564.010 Détournement d’arguments<br/>Les arguments de la ligne de commande sont falsifiés »] class tech_argument_spoof technique tech_tls_injection[« <b>Technique</b> – T1055.005 Injection de stockage local de thread<br/>Code injecté via TLS »] class tech_tls_injection technique tech_appcert_dll[« <b>Technique</b> – T1546.009 Exécution DLL AppCert<br/>Utilise des DLL AppCert pour l’exécution automatique »] class tech_appcert_dll technique tech_permission_hijack[« <b>Technique</b> – T1574.005 Détournement du flux d’exécution<br/>Exploite la faiblesse des permissions des fichiers d’installation »] class tech_permission_hijack technique action_defense_evasion[« <b>Action</b> – Évasion de détection<br/>Multiples techniques pour éviter la détection »] class action_defense_evasion action action_persistence[« <b>Action</b> – Persistance<br/>Établit une présence à long terme »] class action_persistence action tech_registry_rc[« <b>Technique</b> – T1037.004 Scripts RC du registre<br/>Exécute des scripts via le registre »] class tech_registry_rc technique tech_active_setup[« <b>Technique</b> – T1547.014 Configuration active<br/>Démarrage automatique via la configuration active »] class tech_active_setup technique tech_preos_boot[« <b>Technique</b> – T1542 Démarrage avant OS<br/>S’intègre dans le processus de démarrage »] class tech_preos_boot technique action_credential_access[« <b>Action</b> – Accès aux informations d’identification<br/>Vole les informations d’identification de l’utilisateur »] class action_credential_access action tech_keylogging[« <b>Technique</b> – T1056.001 Keylogging<br/>Enregistre les frappes au clavier »] class tech_keylogging technique tech_credential_dump[« <b>Technique</b> – T1003 Extraction d’identifiants OS<br/>Extrait les hachages de mots de passe »] class tech_credential_dump technique action_collection[« <b>Action</b> – Collecte<br/>Collecte de données utilisateur »] class action_collection action tech_screen_capture[« <b>Technique</b> – T1113 Capture d’écran<br/>Prend des captures d’écran »] class tech_screen_capture technique tech_video_capture[« <b>Technique</b> – T1125 Capture vidéo<br/>Enregistre des vidéos »] class tech_video_capture technique tech_audio_capture[« <b>Technique</b> – T1123 Capture audio<br/>Enregistre de l’audio »] class tech_audio_capture technique action_c2[« <b>Action</b> – Commande et contrôle<br/>Communique avec un serveur distant »] class action_c2 action tech_nonstandard_port[« <b>Technique</b> – T1571 Port non standard<br/>Utilise le port TCP 5666 »] class tech_nonstandard_port technique tech_ftp_style[« <b>Technique</b> – T1071.002 Protocole de type FTP<br/>Encode le trafic comme FTP »] class tech_ftp_style technique tech_port_knocking[« <b>Technique</b> – T1205.001 Port Knocking<br/>Signale la C2 via une séquence de ports »] class tech_port_knocking technique malware_memory_resident[« <b>Malware</b> – Charge utile résidente en mémoire<br/>Charge directement dans la RAM »] class malware_memory_resident malware tech_registry_hide[« <b>Technique</b> – Configuration cachée dans le registre<br/>Stocke les paramètres dans le registre »] class tech_registry_hide technique %% Connexions action_initial_access u002du002d>|utilise| tech_user_execution tech_user_execution u002du002d>|inclut| tech_malicious_link tech_user_execution u002du002d>|inclut| tech_trojanized_installer tech_malicious_link u002du002d>|délivre| malware_logger_exe tech_trojanized_installer u002du002d>|regroupe| malware_logger_exe malware_logger_exe u002du002d>|effectue| tech_process_masquerade malware_logger_exe u002du002d>|effectue| tech_argument_spoof malware_logger_exe u002du002d>|injecte via| tech_tls_injection malware_logger_exe u002du002d>|utilise| tech_appcert_dll malware_logger_exe u002du002d>|exploite| tech_permission_hijack malware_logger_exe u002du002d>|active| action_defense_evasion action_defense_evasion u002du002d>|établit| action_persistence action_persistence u002du002d>|utilise| tech_registry_rc action_persistence u002du002d>|utilise| tech_active_setup action_persistence u002du002d>|utilise| tech_preos_boot action_defense_evasion u002du002d>|active| action_credential_access action_credential_access u002du002d>|utilise| tech_keylogging action_credential_access u002du002d>|utilise| tech_credential_dump action_defense_evasion u002du002d>|active| action_collection action_collection u002du002d>|capture| tech_screen_capture action_collection u002du002d>|capture| tech_video_capture action_collection u002du002d>|capture| tech_audio_capture action_defense_evasion u002du002d>|active| action_c2 action_c2 u002du002d>|communique via| tech_nonstandard_port tech_nonstandard_port u002du002d>|utilise le protocole| tech_ftp_style action_c2 u002du002d>|utilise| tech_port_knocking malware_logger_exe u002du002d>|réside dans| malware_memory_resident malware_memory_resident u002du002d>|stocke la config dans| tech_registry_hide « 

Flux d’attaque

Exécution de Simulation

Prérequis : Le Vérification Pré‑départ de Télémétrie et de Base doit avoir réussi.

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

  • Narrative d’Attaque & Commandes:

    1. Livraison & Exécution: Un attaquant livre un installateur RustDesk trojanisé (rustdesk-1.4.4-x86_64.exe) via un courriel de phishing. Le fichier est enregistré dans %TEMP% et exécuté avec des privilèges élevés.
    2. Dépôt de Charge: À l’exécution, l’installateur extrait deux binaires malveillants—logger.exe and Libserver.exe—dans le même répertoire et les lance immédiatement en tant que processus enfants.
    3. Persistance (T1546.016): logger.exe écrit une entrée de clé Run‑key (HKCUSoftwareMicrosoftWindowsCurrentVersionRun) pointant vers lui-même, assurant la persistance après redémarrage.
    4. Injection de Code (T1574.005 / T1055.005): Libserver.exe injecte une DLL réfléchissante dans explorer.exe pour obtenir une exécution avec privilège élevé et ouvre un shell inversé au C2 de l’attaquant.
    5. Évasion (Usurpation – T1036.011): Tous les binaires conservent la convention de nommage “RustDesk” pour se fondre dans le logiciel légitime.
  • Script de Test de Régression: Le script ci-dessous automatise les étapes 1‑3, produisant les trois événements requis de création de processus. Il utilise PowerShell pour copier les binaires malveillants pré‑stagés (simulés avec des substituts bénins pour la sécurité) et les lance avec la bonne relation parent‑enfant.

    # -------------------------------------------------
    # Script de Simulation – Installateur Trojanisé RustDesk
    # -------------------------------------------------
    # Prérequis : Deux exécutables de substitution bénins placés dans C:Malware (nommés logger.exe & Libserver.exe)
    #   Dans un véritable test d'équipe rouge, ceux-ci seraient les charges utiles réellement malveillantes.
    # -------------------------------------------------
    
    $installerPath = "$env:TEMPrustdesk-1.4.4-x86_64.exe"
    $payloadDir    = "$env:TEMPrustdesk_payload"
    $loggerPath    = "$payloadDirlogger.exe"
    $libserverPath = "$payloadDirLibserver.exe"
    
    # 1. Déployez un installateur factice (simplement une copie d'un exe bénin)
    Write-Host "[*] Déploiement de l'installateur RustDesk factice..."
    New-Item -ItemType Directory -Path $payloadDir -Force | Out-Null
    Copy-Item -Path "C:WindowsSystem32notepad.exe" -Destination $installerPath -Force
    
    # 2. Simulez le dépôt de charge – copiez les binaires de substitution
    Write-Host "[*] Dépôt des charges..."
    Copy-Item -Path "C:Malwarelogger.exe"    -Destination $loggerPath    -Force
    Copy-Item -Path "C:MalwareLibserver.exe" -Destination $libserverPath -Force
    
    # 3. Exécutez l'installateur (crée le processus parent)
    Write-Host "[*] Exécution de l'installateur..."
    $installer = Start-Process -FilePath $installerPath -PassThru
    
    # 4. Lancez logger.exe en tant qu'enfant de l'installateur
    Write-Host "[*] Lancement de logger.exe (enfant de l'installateur)..."
    Start-Process -FilePath $loggerPath -ArgumentList "--parent $($installer.Id)" -NoNewWindow
    
    # 5. Lancez Libserver.exe en tant qu'enfant de l'installateur
    Write-Host "[*] Lancement de Libserver.exe (enfant de l'installateur)..."
    Start-Process -FilePath $libserverPath -ArgumentList "--parent $($installer.Id)" -NoNewWindow
    
    Write-Host "[+] Simulation terminée. Vérifiez les alertes dans SIEM."
  • Commandes de Nettoyage: Supprimez les fichiers temporaires et terminez tous les processus restants.

    # -------------------------------------------------
    # Script de nettoyage – Supprimer les artefacts de simulation
    # -------------------------------------------------
    $installerPath = "$env:TEMPrustdesk-1.4.4-x86_64.exe"
    $payloadDir    = "$env:TEMPrustdesk_payload"
    
    Write-Host "[*] Arrêt des processus engendrés..."
    Get-Process -Name "logger","Libserver","rustdesk-1.4.4-x86_64" -ErrorAction SilentlyContinue |
        Stop-Process -Force
    
    Write-Host "[*] Suppression des fichiers..."
    Remove-Item -Path $installerPath -Force -ErrorAction SilentlyContinue
    Remove-Item -Recurse -Force -Path $payloadDir -ErrorAction SilentlyContinue
    
    Write-Host "[+] Nettoyage terminé."