MedusaHVNC Vole des Sessions Windows Actives à Travers un Bureau Caché
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
MedusaHVNC est un nouveau cheval de Troie d’accès distant (RAT) identifié et distribué via un modèle de Malware-as-a-Service (MaaS). Il utilise un module de Virtual Network Computing caché (HVNC) pour créer une session de bureau Windows séparée et invisible. Cela permet aux attaquants de détourner les sessions de navigation actives, y compris les cookies et les états de session authentifiés, sans alerter la victime.
Enquête
Les chercheurs ont analysé un échantillon de MedusaHVNC et ont découvert une chaîne d’infection en cinq étapes commençant par un lanceur JScript obfusqué. L’enquête a montré qu’AutoIt est utilisé pour le décryptage et l’injection de processus dans l’utilitaire Windows Character Map légitime (charmap.exe). La charge utile finale repose sur le chiffrement ChaCha20 et communique avec un serveur C2 codé en dur via un protocole TCP personnalisé.
Atténuation
L’atténuation efficace inclut le blocage de l’infrastructure C2 connue et la surveillance des endpoints pour des connexions réseau sortantes inhabituelles. Les organisations doivent déployer des contrôles anti-exfiltration de données capables d’inspecter le trafic sortant, quel que soit le processus d’origine. La surveillance des processus enfants suspects ou de l’activité d’injection impliquant des binaires système légitimes tels que charmap.exe peut également améliorer la détection.
Réponse
Si une activité MedusaHVNC est détectée, les équipes de sécurité doivent immédiatement isoler l’endpoint affecté pour mettre fin à la communication avec le serveur C2. Les enquêteurs doivent identifier la voie de livraison initiale du lanceur JScript et vérifier les mécanismes de persistance dans le dossier de démarrage. Les journaux de session et d’authentification doivent également être examinés pour rechercher toute activité non autorisée survenant pendant la fenêtre de compromission.
Flux d’attaque
Détections
LOLBAS WScript / CScript (via création de processus)
Proof of Value
Binaire ou scripts suspects dans l’emplacement de démarrage automatique (via file_event)
Proof of Value
IOC (SourceIP) à détecter : MedusaHVNC : Un bureau caché qui vole des sessions Windows actives
Proof of Value
IOC (DestinationIP) à détecter : MedusaHVNC : Un bureau caché qui vole des sessions Windows actives
Proof of Value
Détection de la communication C2 de MedusaHVNC [Connexion réseau Windows]
Proof of Value
Détection du lanceur JScript et de l’interpréteur AutoIt dans la chaîne d’infection MedusaHVNC [Création de processus Windows]
Proof of Value
Exécution de simulation
Prérequis : La vérification préalable de télémétrie et de base doit avoir réussi.
Rationale : 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 DOIVENT refléter directement les TTP identifiés et viser à générer la télémétrie exacte attendue par la logique de détection. Les exemples abstraits ou non pertinents entraîneront un diagnostic erroné.
-
Narration de l’attaque et commandes : Un adversaire a déployé avec succès MedusaHVNC sur un poste de travail victime. Pour établir le commandement et le contrôle (C2) et commencer l’interaction de bureau à distance, le logiciel malveillant tente de se connecter à son auditeur codé en dur. Dans cette simulation, nous imitons ce comportement en forçant une connexion à un auditeur local sur le port 4444. Cette action vise à simuler la phase « Phone Home » du cycle de vie de MedusaHVNC, générant un journal Sysmon Event ID 3 avec
DestinationPort : 4444. -
Script de test de régression :
# Script de simulation : Émulation de la communication C2 de MedusaHVNC # Objectif : Générer un événement de connexion réseau sur le port 4444 pour déclencher la règle Sigma. $TargetIP = "127.0.0.1" $TargetPort = 4444 Write-Host "[+] Démarrage de la simulation C2 de MedusaHVNC..." -ForegroundColor Cyan # Étape 1 : Créer un auditeur local pour capter la connexion (simule le serveur C2) $Listener = New-Object System.Net.Sockets.TcpListener([System.Net.IPAddress]::Loopback, $TargetPort) $Listener.Start() Write-Host "[+] Auditeur C2 local démarré sur $TargetIP:$TargetPort" -ForegroundColor Green try { # Étape 2 : Émuler la connexion sortante du logiciel malveillant Write-Host "[+] Émulation de la connexion sortante vers le C2..." -ForegroundColor Yellow $Client = New-Object System.Net.Sockets.TcpClient $Client.Connect($TargetIP, $TargetPort) Write-Host "[!] Succès : Connexion établie. Vérifiez SIEM pour les alertes." -ForegroundColor Red } catch { Write-Host "[-] Échec de la connexion : $($_.Exception.Message)" -ForegroundColor Red } finally { # Nettoyage de la connexion if ($Client) { $Client.Close() } $Listener.Stop() Write-Host "[+] Nettoyage de la simulation terminé." -ForegroundColor Cyan } -
Commandes de nettoyage :
# Assurez-vous qu'aucun processus ou auditeur persistant n'existe Stop-Process -Name "powershell" -Force -ErrorAction SilentlyContinue # (Remarque : Dans un environnement réel, vérifiez manuellement que le port 4444 est fermé) Test-NetConnection -ComputerName 127.0.0.1 -Port 4444