SOC Prime Bias: Critique

16 Jan 2026 13:25 UTC

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).

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é."