Nouvelle variante de PureRAT découverte dans un lecteur vidéo IA
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Une campagne de logiciels malveillants utilise un faux téléchargeur vidéo à thème Google Drive pour lancer une chaîne d’exécution en plusieurs étapes. L’infection passe d’un chargeur basé sur Python au shellcode, puis à un assemblage .NET protégé identifié comme PureRAT. Le malware s’appuie sur une obfuscation lourde, un chiffrement personnalisé et des communications WebSocket authentifiées pour gérer le trafic de commande et de contrôle.
Enquête
L’enquête a analysé un flux d’exécution par étapes qui a commencé par un chargeur de bytecode Python. Les chercheurs ont observé un décodage Base85, zlib décompression, et une injection de shellcode via VirtualAlloc. Une analyse plus poussée a révélé un chargeur .NET fortement protégé, Ykzrh/smveo-csharp-agent.exe, qui utilisait la virtualisation et la reconstruction à l’exécution pour entraver l’analyse.
Atténuation
Les utilisateurs doivent être avertis contre le téléchargement de fichiers à partir de leurres vidéo non officiels ou suspects. Les organisations devraient surveiller les exécutions non autorisées de Python et le comportement inhabituel des assemblages .NET dans les répertoires locaux de données d’application. Une liste blanche stricte des applications et une surveillance des changements suspects de clés de registre peuvent également réduire le risque de compromission.
Réponse
Si cette activité est détectée, isolez immédiatement les points d’extrémité affectés pour perturber le trafic de commande et de contrôle basé sur WebSocket. Les enquêteurs doivent effectuer une analyse judiciaire de la mémoire pour capturer la charge utile .NET déchiffrée et déterminer l’étendue de l’infection. Les journaux réseau doivent également être revus pour les connexions à l’infrastructure smveo.com , et tout identifiant potentiellement exposé doit être changé.
Flux d’Attaque
Détections
Points de Persistance Possibles [ASEPs – Software/NTUSER Hive] (via événement de registre)
Voir
Communication C2 Variante PureRAT via WebSocket Authentifié [Connexion Réseau Windows]
Voir
Persistance via la Clé de Registre Run de Windows [Événement de Registre Windows]
Voir
Exécution de Simulation
Prérequis : Le contrôle préalable de télémétrie et de ligne de base doit avoir réussi.
Raison : 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 les récits DOIVENT refléter directement les TTP identifiés et viser à générer exactement la télémétrie attendue par la logique de détection. Les exemples abstraits ou non liés entraîneront des erreurs de diagnostic.
-
Récit & Commandes d’Attaque : L’adversaire a déployé avec succès une variante de PureRAT. Pour maintenir le contrôle, le malware établit un canal de Commande et Contrôle (C2) persistant. Au lieu de l’interrogation HTTP standard, il utilise une connexion WebSocket authentifiée pour contourner les proxys web traditionnels qui pourraient ne pas inspecter les flux WebSocket de longue durée. L’objectif de l’attaquant est d’établir un tunnel stable et à faible latence vers
agent.sm-veo.comsur le port8443. Cette simulation utilisera un script PowerShell pour imiter ce comportement réseau en initiant une connexion à l’URI malveillant. -
Script de Test de Régression :
# Simulation de C2 Variante PureRAT via WebSocket # Objectif : Déclencher la règle de détection via le domaine ou l'URL de destination. $targetUrl = "wss://agent.sm-veo.com:8443/v1/ws" $targetDomain = "agent.sm-veo.com" Write-Host "[+] Début de la Simulation C2 PureRAT..." -ForegroundColor Cyan try { Write-Host "[+] Tentative d'établissement de connexion WebSocket à $targetUrl" # Utilisation d'un client WebSocket .NET pour simuler le comportement du protocole spécifique $ws = New-Object System.Net.WebSockets.ClientWebSocket $uri = New-Object System.Uri($targetUrl) $ct = New-Object System.Threading.CancellationTokenSource # Nous n'avons pas besoin d'une négociation réussie pour que la télémétrie réseau se déclenche, # juste la tentative de connexion à la destination spécifiée. $task = $ws.ConnectAsync($uri, $ct.Token) # Attendre brièvement pour que la tentative de connexion génère de la télémétrie Start-Sleep -Seconds 5 Write-Host "[!] Tentative de connexion terminée. Vérifiez SIEM pour la télémétrie." -ForegroundColor Green } catch { Write-Host "[!] Connexion échouée (Attendu si le domaine est sinkhole/non réel), mais la télémétrie devrait avoir été générée." -ForegroundColor Yellow } finally { if ($ws) { $ws.Dispose() } } -
Commandes de Nettoyage :
# Aucun fichier persistant ou clé de registre n'a été modifié par ce script de simulation spécifique. # Si la persistance (T1547.001) a été simulée, utilisez ce qui suit : # Remove-ItemProperty -Path 'HKCU:SoftwareMicrosoftWindowsCurrentVersionRun' -Name 'PureRAT_Update' Write-Host "[+] Nettoyage terminé. Aucun artefact laissé par la simulation réseau." -ForegroundColor Cyan