SOC Prime Bias: Moyen

09 Apr 2026 15:30 UTC

ClickFix à MaaS : À l’intérieur d’un RAT Windows modulaire et de son panneau de contrôle

Author Photo
SOC Prime Team linkedin icon Suivre
ClickFix à MaaS : À l’intérieur d’un RAT Windows modulaire et de son panneau de contrôle
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Netskope Threat Labs a observé une campagne ClickFix délivrant un RAT Windows personnalisé construit sur Node.js via des installateurs MSI malveillants. Le payload conserve les modules clés en mémoire et utilise le streaming gRPC sur Tor pour le C2. Une erreur d’OPSEC a exposé le protocole du panneau d’administration, pointant vers un modèle de malware-as-a-service avec suivi des portefeuilles. La persistance est définie via une valeur Run au niveau de l’utilisateur HKCU.

Investigation

Les chercheurs ont capturé le MSI, décodé le bootstrap PowerShell et suivi le chargement dynamique des modules Node.js. Ils ont extrait et déchiffré le blob de configuration pour récupérer une adresse .onion C2. Un fichier admin.proto divulgué a révélé des fonctions de MaaS telles que la gestion multi-opérateurs et la surveillance des portefeuilles, et les analystes ont noté un watchdog auto-réparateur ainsi que l’utilisation de Tor pour un trafic anonymisé.

Atténuation

Bloquer l’exécution de MSI non signés provenant de sources non fiables et surveiller HKCU…Run pour de nouvelles entrées suspectes. Détecter PowerShell qui télécharge des payloads MSI à partir de domaines comme cloud-verificate.com. Alerter sur conhost.exe ou node.exe lancés avec des arguments cachés et sur tor.exe apparaissant sur des points de terminaison qui n’en ont pas besoin.

Réponse

Isoler les hôtes affectés, collecter la mémoire pour l’analyse des modules en mémoire, et supprimer la persistance Run HKCU. Examiner %LOCALAPPDATA%LogicOptimizer pour les artefacts de mise en scène et toute activité planifiée de tor.exe, puis bloquer le point de terminaison onion et les domaines/IPs associés. Chasser dans toute l’entreprise les mêmes artefacts d’installateur et chaînes de processus.

Flux du Attaque

Exécution de Simulation

Prérequis : Le Contrôle Pré-Vol de Télémétrie & Baseline doit avoir réussi.

Raisonnement : 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 TTPs identifiés et viser à générer la télémétrie exacte attendue par la logique de détection.

  • Narration & Commandes d’Attaque :

    1. Objectif : L’attaquant veut amorcer un payload Node.js malveillant (bootstrap.js) sans éveiller les soupçons.
    2. Méthode : Utiliser un binaire Windows signé (conhost.exe) comme proxy pour lancer node.exe en mode tête basse, passant le script bootstrap comme argument.
    3. Étapes :
      • Déposer un bootstrap.js malveillant dans un répertoire accessible en écriture (par exemple, %TEMP%).
      • Invoquer conhost.exe avec la chaîne d’arguments exacte que la règle surveille.
      • La commande s’exécute dans le contexte de l’utilisateur actuel, imitant le lancement d’un processus légitime.
    # 1. Déposer bootstrap.js malveillant (contenu inoffensif simulé pour le test)
    $bootstrapPath = "$env:TEMPbootstrap.js"
    Set-Content -Path $bootstrapPath -Value "// espace réservé de bootstrap malveillant"
    
    # 2. Exécuter conhost.exe pour lancer node.exe avec les drapeaux requis
    $conhost = "$env:windirsystem32conhost.exe"
    $args = '--headless "node.exe" "bootstrap.js"'
    Start-Process -FilePath $conhost -ArgumentList $args -WorkingDirectory $env:TEMP
  • Script de Test de Régression :

    # -------------------------------------------------
    # Test de Régression : Déclencher Conhost → Node Bootstrap
    # -------------------------------------------------
    # Assurez-vous que Sysmon est en cours d'exécution et journalise les événements ProcessCreate.
    
    # Déposer un script bootstrap factice
    $bootstrap = "$env:TEMPbootstrap.js"
    Set-Content -Path $bootstrap -Value "// contenu de test bootstrap"
    
    # Définir la ligne de commande exacte que la règle de détection recherche
    $conhostPath = "$env:windirsystem32conhost.exe"
    $cmdLine = '--headless "node.exe" "bootstrap.js"'
    
    # Lancer conhost avec les arguments à apparence malveillante
    Start-Process -FilePath $conhostPath -ArgumentList $cmdLine -WorkingDirectory $env:TEMP
    
    Write-Host "Simulation terminée – vérifiez SIEM pour l'alerte."
  • Commandes de Nettoyage :

    # Arrêter tous les processus node ou conhost restants lancés par le test
    Get-Process -Name node, conhost -ErrorAction SilentlyContinue | Stop-Process -Force
    
    # Retirer le script bootstrap temporaire
    Remove-Item -Path "$env:TEMPbootstrap.js" -Force -ErrorAction SilentlyContinue
    
    Write-Host "Nettoyage terminé."