Une série d’événements malheureux (RMM)
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Les acteurs malveillants abusent de plus en plus des logiciels de surveillance et de gestion à distance (RMM) légitimes pour obtenir un accès initial et maintenir une persistance dans les environnements ciblés. Le rapport met en évidence des incidents où les opérateurs ont d’abord installé un outil RMM « primaire » — tel que GoTo Resolve ou PDQ — puis ont suivi en déployant des utilitaires RMM supplémentaires comme ScreenConnect, SimpleHelp ou ITarian. Les installateurs initiaux étaient souvent livrés via hameçonnage et ingénierie sociale, souvent hébergés sur des domaines contrôlés par les attaquants. Comme ce sont des outils commerciaux de confiance, leur abus peut se fondre dans l’activité normale de l’administration et soutenir des points d’ancrage durables.
Enquête
Le SOC Huntress a mené une chasse aux menaces rétrospective sur la télémétrie des terminaux et a identifié des chaînes d’exécution commençant par des installateurs livrés par hameçonnage pour GoTo Resolve, PDQ, ou ITarian. Les analystes ont ensuite retracé les étapes de persistance et d’expansion, y compris la création de tâches planifiées, l’installation/démarrage de services, et les chemins du système de fichiers utilisés pour mettre en scène et déployer des binaires RMM secondaires tels que ScreenConnect et SimpleHelp. Des preuves à l’appui — y compris le contexte d’exécution des processus parent sur VirusTotal et les artefacts locaux du système de fichiers — ont été utilisées pour reconstruire le flux d’intrusion en plusieurs étapes.
Atténuation
Mettre en œuvre une liste d’approbation des applications et bloquer explicitement les outils RMM non approuvés, en particulier ceux exécutés à partir de répertoires temporaires ou écrits par l’utilisateur. Surveiller les événements de création de tâches planifiées et de services liés à des produits RMM courants et examiner soigneusement le trafic sortant vers des domaines nouvellement enregistrés ou suspects. Maintenir un inventaire à jour des logiciels RMM approuvés et auditer régulièrement où, comment et par qui ces outils sont utilisés.
Réponse
Si un installateur RMM malveillant est identifié, isoler le terminal, arrêter et supprimer les services et tâches programmées associés, et supprimer les binaires non autorisés. Bloquer ou rediriger les domaines et URL contrôlés par l’attaquant observés lors de la livraison et des communications C2. Effectuer une validation médico-légale complète pour confirmer qu’aucune persistance supplémentaire ne reste, et ajuster les détections pour faire ressortir des modèles de déploiement similaires « primaire-à-secondaire RMM » à l’avenir.
« graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ccffcc %% Nodes u2013 Actions action_phishing[« <b>Action</b> – <b>T1566.001 Hameçonnage : Pièce jointe de spearphishing</b><br /><b>Description</b> : La victime reçoit un e-mail de hameçonnage avec une pièce jointe malveillante telle que Open Revised Contract.exe »] class action_phishing action action_user_exec[« <b>Action</b> – <b>T1204.002 Exécution par l’utilisateur : Fichier malveillant</b><br /><b>Description</b> : La victime exécute manuellement l’installateur RMM téléchargé depuis la pièce jointe »] class action_user_exec action action_sched_task[« <b>Action</b> – <b>T1053 Tâche/Travail Planifié</b><br /><b>Description</b> : L’attaquant crée une tâche planifiée Windows pour maintenir la persistance »] class action_sched_task action action_service_exec[« <b>Action</b> – <b>T1569.002 Services Système : Exécution de Service</b><br /><b>Description</b> : Le service RMM malveillant est installé et démarré via sc.exe »] class action_service_exec action action_rmt_use[« <b>Action</b> – <b>T1219 Outils d’Accès à Distance</b><br /><b>Description</b> : Le RMM installé offre à l’adversaire des capacités d’accès distant »] class action_rmt_use action action_remote_desktop[« <b>Action</b> – <b>T1219.002 Outils d’Accès à Distance : Logiciel de Bureau à Distance</b><br /><b>Description</b> : Un logiciel de bureau à distance spécifique (ScreenConnect) est déployé pour un contrôle furtif »] class action_remote_desktop action action_lateral_transfer[« <b>Action</b> – <b>T1570 Transfert d’Outil Latéral</b><br /><b>Description</b> : L’attaquant utilise le RMM initial pour télécharger et installer des outils RMM supplémentaires »] class action_lateral_transfer action %% Nodes u2013 Tools / Files tool_malicious_attachment[« <b>Outil</b> – <b>Nom</b> : Installateur RMM malveillant<br /><b>Types de Fichiers</b> : .exe (ex., Open Revised Contract.exe) »] class tool_malicious_attachment tool tool_goto_resolve[« <b>Outil</b> – <b>Nom</b> : GoTo Resolve (RMM)<br /><b>Capacité</b> : Gestion et assistance à distance »] class tool_goto_resolve tool tool_pdq[« <b>Outil</b> – <b>Nom</b> : PDQ Deploy (RMM)<br /><b>Capacité</b> : Déploiement et exécution de logiciels »] class tool_pdq tool tool_itarian[« <b>Outil</b> – <b>Nom</b> : ITarian (RMM)<br /><b>Capacité</b> : Administration à distance »] class tool_itarian tool tool_screenconnect[« <b>Outil</b> – <b>Nom</b> : ScreenConnect (Bureau à Distance)<br /><b>Capacité</b> : Partage d’écran et contrôle à distance »] class tool_screenconnect tool tool_simplehelp[« <b>Outil</b> – <b>Nom</b> : SimpleHelp (RMM)<br /><b>Capacité</b> : Assistance à distance »] class tool_simplehelp tool process_sc_exe[« <b>Processus</b> – <b>Nom</b> : sc.exe<br /><b>But</b> : Créer et démarrer des services Windows »] class process_sc_exe process %% Connections u2013 Attack Flow action_phishing u002du002d>|fournit la pièce jointe| tool_malicious_attachment tool_malicious_attachment u002du002d>|exécuté par la victime| action_user_exec action_user_exec u002du002d>|installe| tool_goto_resolve action_user_exec u002du002d>|installe| tool_pdq action_user_exec u002du002d>|installe| tool_itarian tool_goto_resolve u002du002d>|crée| action_sched_task tool_goto_resolve u002du002d>|utilise| process_sc_exe process_sc_exe u002du002d>|démarre le service pour| action_service_exec action_service_exec u002du002d>|active| action_rmt_use action_rmt_use u002du002d>|fournit bureau à distance via| tool_screenconnect action_rmt_use u002du002d>|maintient l’accès avec| tool_goto_resolve action_rmt_use u002du002d>|initie| action_lateral_transfer action_lateral_transfer u002du002d>|télécharge et installe| tool_simplehelp action_lateral_transfer u002du002d>|télécharge et installe| tool_screenconnect «
Flux d’attaque
Détections
GoTo Resolve Service démarré via sc.exe (via cmdline)
Voir
Agent SimpleHelp exécuté depuis le répertoire d’accès à distance JWrapper (via process_creation)
Voir
IOC (HashSha256) pour détecter : Une série d’événements malheureux (RMM)
Voir
Détection d’installations RMM malveillantes induites par hameçonnage [Création de processus Windows]
Voir
Exécution de simulation
Prérequis : Le Vérification de télémétrie & baseline pré-vol doit avoir été réussie.
Justification : 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 la narration 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.
-
Récit d’attaque & Commandes :
Un adversaire envoie un email hameçonnage avec une pièce jointe nommée
Open Revised Contract (2).exe. Un utilisateur, croyant que le fichier est un contrat légitime, clique sur la pièce jointe. L’exécutable dépose un MSI RMM malveillant (276SpecialInvitation9756.msi) dans le%TEMP%répertoire et le lance viamsiexec.exe. Le MSI installe un service RMM malveillant qui ouvre un shell inversé vers le C2 de l’attaquant. Ce flux correspond à :- T1203 – Exécution du client (l’utilisateur exécute l’EXE joint).
- T1027.004 – Charge utile compilée (l’EXE est un binaire malveillant compilé).
- T1218.005 – Msiexec (l’EXE utilise
msiexec.exe /ipour exécuter le MSI). - T1554 – Compromettre le binaire logiciel client (le MSI installe le RMM malveillant).
Les événements de création de processus générés sont :
C:Users<user>AppDataLocalTempOpen Revised Contract (2).exe– l’EXE malveillant initial.C:WindowsSystem32msiexec.exeavec la ligne de commande/i "C:Users<user>AppDataLocalTemp276SpecialInvitation9756.msi" /quiet.
Les deux chemins correspondent aux entrées de la règle Sigma et devraient déclencher une alerte.
-
Script de test de régression :
# ------------------------------------------------------------ # Script de simulation - déclenche la règle Sigma en utilisant # les noms de fichiers exacts définis dans la logique de détection. # ------------------------------------------------------------ $tempDir = "$env:TEMPRMM_Test" New-Item -Path $tempDir -ItemType Directory -Force | Out-Null # 1. Déposer un EXE malveillant factice (simulé en copiant notepad.exe) $malExe = "$tempDirOpen Revised Contract (2).exe" Copy-Item -Path "$env:SystemRootSystem32notepad.exe" -Destination $malExe -Force # 2. Déposer un MSI malveillant factice (simulé en copiant un MSI quelconque - par exemple, le SDK Windows) $malMsi = "$tempDir276SpecialInvitation9756.msi" # Création d'un fichier MSI factice vide New-Item -Path $malMsi -ItemType File -Force | Out-Null # 3. Exécuter l'EXE – il lancera à son tour msiexec pour installer le MSI Write-Host "[*] Exécution de l'EXE malveillant..." Start-Process -FilePath $malExe -Wait # 4. Lancer directement le MSI via msiexec pour assurer la détection (si l'étape 3 a échoué) Write-Host "[*] Lancement du MSI via msiexec..." $msiArgs = "/i `"$malMsi`" /quiet" Start-Process -FilePath "$env:SystemRootSystem32msiexec.exe" -ArgumentList $msiArgs -Wait Write-Host "[+] Simulation complète. Vérifiez le SIEM pour détecter des alertes sur les deux créations de processus." # ------------------------------------------------------------ # Nettoyage (à exécuter séparément si souhaité) # ------------------------------------------------------------ # Remove-Item -Path $tempDir -Recurse -Force -
Commandes de nettoyage :
# Supprimer tous les artefacts créés par la simulation $tempDir = "$env:TEMPRMM_Test" if (Test-Path $tempDir) { Remove-Item -Path $tempDir -Recurse -Force Write-Host "[*] Nettoyage terminé." } else { Write-Host "[!] Aucun artefact trouvé; rien à nettoyer." }