Comment les téléchargements de logiciels légitimes peuvent dissimuler des portes dérobées à distance
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
Détections
Le fichier journal RustDesk a été créé (via file_event)
Voir
Activité possible de Commandement et Contrôle par tentative de communication de Domaine de Logiciel d’Accès à Distance (via dns)
Voir
Alternative à distance / Logiciel de gestion (via process_creation)
Voir
IOCs (SourceIP) à détecter : Comment les téléchargements de logiciels réels peuvent cacher des portes dérobées à distance
Voir
IOCs (HashSha256) à détecter : Comment les téléchargements de logiciels réels peuvent cacher des portes dérobées à distance
Voir
IOCs (DestinationIP) à détecter : Comment les téléchargements de logiciels réels peuvent cacher des portes dérobées à distance
Voir
Détection de l’activité réseau de Winos4.0 via serveur de Commandement-et-Contrôle malveillant [Connexion réseau Windows]
Voir
Installateur RustDesk Trojanisé avec Backdoor Winos4.0 [Création de Processus Windows]
Voir
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:
- 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. - Dépôt de Charge: À l’exécution, l’installateur extrait deux binaires malveillants—
logger.exeandLibserver.exe—dans le même répertoire et les lance immédiatement en tant que processus enfants. - 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. - Injection de Code (T1574.005 / T1055.005):
Libserver.exeinjecte une DLL réfléchissante dansexplorer.exepour obtenir une exécution avec privilège élevé et ouvre un shell inversé au C2 de l’attaquant. - Évasion (Usurpation – T1036.011): Tous les binaires conservent la convention de nommage “RustDesk” pour se fondre dans le logiciel légitime.
- Livraison & Exécution: Un attaquant livre un installateur RustDesk trojanisé (
-
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é."