Compétence Malveillante OpenClaw Distribue Remcos RAT et GhostLoader
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Des acteurs malveillants ont publié une compétence OpenClaw malveillante nommée DeepSeek-Claw qui trompe les agents ou développeurs IA pour les inciter à télécharger un installateur MSI armé. Une fois exécuté, l’installateur dépose un binaire GoToMeeting signé qui charge une DLL malveillante, laquelle charge ensuite le RAT Remcos. Un chemin d’infection séparé livre une charge utile Node.js fortement obfusquée qui installe le voleur cross-platform GhostLoader. La campagne souligne comment les plugins compromis du flux de travail IA peuvent être utilisés comme vecteur de la chaîne d’approvisionnement pour un accès distant persistant et le vol de données.
Enquête
Zscaler ThreatLabz a suivi toute la chaîne d’infection depuis le fichier de balisage de la compétence malveillante jusqu’au téléchargement MSI, le chargement de DLL par G2M.exe, et le chargeur en mémoire responsable du patching d’ETW et d’AMSI. Les chercheurs ont récupéré la configuration de Remcos, y compris son adresse de commande et de contrôle, ainsi que le mutex, et ont également identifié l’utilisation de GhostLoader de npm scripts et installateurs basés sur Bash pour les environnements macOS et Linux. Le rapport documente en outre plusieurs techniques d’évasion, y compris l’obfuscation API, le déchiffrement basé sur TEA, et les vérifications de la reconnaissance de sandbox.
Atténuation
Les défenseurs devraient bloquer l’accès au MSI malveillant et aux URLs associées, surveiller les DLL non signées chargées par les processus GoToMeeting légitimes, et appliquer une validation stricte du contenu des compétences OpenClaw avant utilisation. Les protections des points de terminaison devraient également détecter les tentatives de patching d’ETW et d’AMSI et restreindre l’exécution de PowerShell or msiexec dans des contextes non-administratifs. Les organisations devraient vérifier les signatures de code pour tous les binaires et appliquer des contrôles de moindre privilège aux intégrations d’agents IA et de plugins.
Réponse
Si cette activité est détectée, isolez immédiatement le point de terminaison affecté, terminez tous les processus Remcos ou GhostLoader, et retirez du système les artefacts DLL et MSI malveillants. Collectez des vidages de mémoire et conservez la configuration de Remcos pour l’analyse légale, puis réinitialisez les identifiants compromis et renouvelez tous les certificats ou secrets affectés. Les équipes de sécurité devraient également mettre à jour les flux de renseignement sur les menaces avec les indicateurs identifiés et renforcer les contrôles de la chaîne d’approvisionnement concernant l’utilisation des plugins IA.
"graph TB %% Class definitions classDef technique fill:#cfe2f3 classDef tool fill:#e2efda classDef malware fill:#f9cb9c classDef process fill:#ffd966 %% Technique nodes tech_user_exec_copypaste["<b>Technique</b> – <b>T1204.004 Exécution de l’utilisateur : Copie et collage malveillants</b><br/><b>Description</b> : Tromper les utilisateurs ou les agents IA pour les inciter à exécuter un one-liner PowerShell copié."] class tech_user_exec_copypaste technique tech_user_exec_link["<b>Technique</b> – <b>T1204.001 Exécution de l’utilisateur : Lien malveillant</b><br/><b>Description</b> : La victime clique sur un lien de téléchargement malveillant qui démarre la même chaîne."] class tech_user_exec_link technique tech_msiexec["<b>Technique</b> – <b>T1218.007 Exécution de proxy binaire système : Msiexec</b><br/><b>Description</b> : Utilisation de msiexec pour télécharger et installer silencieusement un package MSI distant."] class tech_msiexec technique tech_dll_hijack["<b>Technique</b> – <b>T1574.001 Détournement du flux d’exécution : Chargement délibéré de DLL</b><br/><b>Description</b> : Chargement d’une DLL malveillante en la plaçant à côté d’un exécutable légitime."] class tech_dll_hijack technique tech_active_scanning["<b>Technique</b> – <b>T1595 Balayage actif</b><br/><b>Description</b> : Patching d’EtwEventWrite et d’AmsiScanBuffer pour échapper à la télémétrie et au balayage anti-malware."] class tech_active_scanning technique tech_virt_user_check["<b>Technique</b> – <b>T1497.002 Evasion de virtualisation : Vérifications de l’activité des utilisateurs</b><br/><b>Description</b> : Détecte l’activité dirigée par l’utilisateur pour déterminer s’il s’agit d’une exécution dans un bac à sable."] class tech_virt_user_check technique tech_virt_time_check["<b>Technique</b> – <b>T1497.003 Evasion de virtualisation : Vérifications temporelles</b><br/><b>Description</b> : Introduit des latences et des délais basés sur le temps pour contourner l’analyse."] class tech_virt_time_check technique tech_obfusc_embedded["<b>Technique</b> – <b>T1027.009 Fichiers ou informations obfusqués : Charges utiles intégrées</b><br/><b>Description</b> : Charge utile finale RAT chiffrée avec TEAu2011CBC et décryptée uniquement en mémoire."] class tech_obfusc_embedded technique tech_keylogging["<b>Technique</b> – <b>T1056.001 Capture d’entrée : Enregistreur de frappe</b><br/><b>Description</b> : Capture les frappes du système compromis."] class tech_keylogging technique tech_clipboard["<b>Technique</b> – <b>T1115 Données du presse-papiers</b><br/><b>Description</b> : Lit le contenu du presse-papiers pour l’exfiltration."] class tech_clipboard technique tech_steal_cookie["<b>Technique</b> – <b>T1539 Voler le cookie de session Web</b><br/><b>Description</b> : Extracte les cookies de navigateur actifs pour contourner le MFA."] class tech_steal_cookie technique tech_alt_auth["<b>Technique</b> – <b>T1550.004 Utiliser un matériel d’authentification alternatif : Cookie de session Web</b><br/><b>Description</b> : Réutilise les cookies récoltés comme jetons d’authentification valides."] class tech_alt_auth technique tech_forge_cookie["<b>Technique</b> – <b>T1606.001 Forger des identifiants Web : Cookies Web</b><br/><b>Description</b> : Construit des identifiants Web forgés basés sur des cookies volés."] class tech_forge_cookie technique tech_private_keys["<b>Technique</b> – <b>T1552.004 Identifiants des magasins de mots de passe : Clés privées</b><br/><b>Description</b> : Récolte des clés privées SSH depuis le système de fichiers."] class tech_private_keys technique tech_cred_files["<b>Technique</b> – <b>T1552.001 Identifiants dans les fichiers</b><br/><b>Description</b> : Recherche des fichiers contenant des identifiants en texte clair."] class tech_cred_files technique tech_browser_creds["<b>Technique</b> – <b>T1555.003 Identifiants depuis les navigateurs Web</b><br/><b>Description</b> : Vide les mots de passe enregistrés des navigateurs installés."] class tech_browser_creds technique tech_code_repo["<b>Technique</b> – <b>T1213.003 Données des dépôts d’information : Dépôts de code</b><br/><b>Description</b> : Collecte des portefeuilles de cryptomonnaie et des jetons API depuis les fichiers de code source."] class tech_code_repo technique tech_trusted_dev_util["<b>Technique</b> – <b>T1127 Exécution de proxy utilitaires de développeur de confiance</b><br/><b>Description</b> : Exécute une charge utile malveillante via des scripts de cycle de vie npm et Node.js sur macOS/Linux."] class tech_trusted_dev_util technique tech_input_injection["<b>Technique</b> – <b>T1674 Injection d’entrée</b><br/><b>Description</b> : Le Markdown dans la compétence injecte des commandes que les agents IA analysent et exécutent."] class tech_input_injection technique %% Tool / Malware / Process nodes process_powershell["<b>Processus</b> – Exécution d’un one-liner PowerShell initiée par le copier-coller utilisateur."] class process_powershell process tool_msiexec["<b>Outil</b> – Msiexec<br/><b>But</b> : Installation silencieuse du MSI malveillant."] class tool_msiexec tool tool_g2m_exe["<b>Outil</b> – Exécutable GoToMeeting (binaire signé légitime)."] class tool_g2m_exe tool tool_g2m_dll["<b>Outil</b> – DLL malveillante g2m.dll chargée via un chargement délibéré."] class tool_g2m_dll tool malware_remcos["<b>Maliciel</b> – Remcos RAT<br/><b>Capacités</b> : Accès distant, enregistrement des frappes, exfiltration de données."] class malware_remcos malware tool_npm["<b>Outil</b> – scripts de cycle de vie npm"] class tool_npm tool tool_nodejs["<b>Outil</b> – environnement d’exécution Node.js"] class tool_nodejs tool malware_ghostloader["<b>Maliciel</b> – GhostLoader<br/><b>Cible</b> : macOS/Linux"] class malware_ghostloader malware %% Connections – Main execution path tech_user_exec_copypaste –>|triggers| process_powershell process_powershell –>|uses| tech_msiexec tech_msiexec –>|executes| tool_msiexec tool_msiexec –>|installs MSI that drops| tool_g2m_exe tool_msiexec –>|installs MSI that drops| tool_g2m_dll tool_g2m_exe –>|facilitates| tech_dll_hijack tool_g2m_dll –>|loaded by| tech_dll_hijack tech_dll_hijack –>|leads to| tech_active_scanning tech_active_scanning –>|combined with| tech_virt_user_check tech_active_scanning –>|combined with| tech_virt_time_check tech_virt_user_check –>|enables| tech_virt_time_check tech_dll_hijack –>|delivers| tech_obfusc_embedded tech_obfusc_embedded –>|decrypts to| malware_remcos malware_remcos –>|performs| tech_keylogging malware_remcos –>|performs| tech_clipboard malware_remcos –>|exfiltrates| tech_steal_cookie tech_steal_cookie –>|enables| tech_alt_auth tech_alt_auth –>|enables| tech_forge_cookie malware_remcos –>|harvests| tech_private_keys malware_remcos –>|harvests| tech_cred_files malware_remcos –>|harvests| tech_browser_creds malware_remcos –>|collects from| tech_code_repo %% Alternative delivery path tool_npm –>|runs| tool_nodejs tool_nodejs –>|drops| malware_ghostloader malware_ghostloader –>|uses| tech_trusted_dev_util %% Input injection path tech_input_injection –>|initiates| tech_user_exec_copypaste %% Malicious link path tech_user_exec_link –>|triggers| process_powershell "
Flux d’Attaque
Détections
Tentatives d’installation cachée suspectes du programme d’installation distant MsiExec (via cmdline)
Voir
Tentative possible de chargement dynamique de bibliothèque G2m (via image_load)
Voir
Pointage de l’utilitaire d’archive MacOS vers un répertoire suspect (via cmdline)
Voir
Tentative d’exécution suspecte de Curl [MacOS] (via cmdline)
Voir
IOC (HashMd5) à détecter : Compétence malveillante OpenClaw distribue Remcos RAT et GhostLoader
Voir
IOC (SourceIP) à détecter : Compétence malveillante OpenClaw distribue Remcos RAT et GhostLoader
Voir
IOC (DestinationIP) à détecter : Compétence malveillante OpenClaw distribue Remcos RAT et GhostLoader
Voir
Commande et contrôle de Remcos RAT via TLS [Connexion réseau Windows]
Voir
Chargement de DLL malveillante via GoToMeeting [Chargement d’image Windows]
Voir
Détecter le déploiement de Remcos RAT via une commande PowerShell malveillante [Windows Powershell]
Voir
Exécution de Simulation
Prérequis : La vérification pré-vol 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 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. Des exemples abstraits ou sans rapport entraîneront un mauvais diagnostic.
-
Narratif d’Attaque & Commandes :
- Préparation : L’attaquant obtient une charge utile DLL malveillante (par exemple, un RAT) et la renomme g2m.dll pour imiter une bibliothèque légitime.
- Placement : La DLL est copiée dans le même répertoire que le binaire légitime GoToMeeting (
C:Program FilesGoToMeeting). Parce que Windows suit l’ordre de recherche de DLL (répertoire d’application en premier),G2M.exesera chargég2m.dllau lieu de la bibliothèque attendue. - Exécution : L’attaquant lance
G2M.exe. Lors de la création du processus, Sysmon enregistreImage = *G2M.exe. Peu de temps après, Sysmon enregistreImageLoaded = *g2m.dll.
Ce modèle exact satisfait la condition de la règle Sigma (
sélection1 et sélection2), provoquant une alerte. -
Script de Test de Régression : (PowerShell – autonome)
# ------------------------------------------------- # Script de régression pour le chargement délibéré de DLL via GoToMeeting # ------------------------------------------------- $g2mPath = "C:Program FilesGoToMeeting" $exe = Join-Path $g2mPath "G2M.exe" $malDll = Join-Path $g2mPath "g2m.dll" # 1. Vérifiez que l'exécutable légitime existe if (-not (Test-Path $exe)) { Write-Error "G2M.exe non trouvé à $exe. Installez d'abord GoToMeeting." exit 1 } # 2. Déployez un DLL de remplissage bénin (simulant la charge utile malveillante) # Ici, nous copions n'importe quel DLL système existant juste pour avoir un fichier avec le nom correct. $sourceDll = "$env:SystemRootSystem32kernel32.dll" Copy-Item -Path $sourceDll -Destination $malDll -Force Write-Host "[+] Placed malicious DLL as $malDll" # 3. Lancez le binaire signé – cela déclenche le chargement Write-Host "[+] Launching G2M.exe to trigger DLL load..." $proc = Start-Process -FilePath $exe -PassThru # 4. Attendre un court instant pour que l'événement ImageLoaded soit enregistré Start-Sleep -Seconds 5 # 5. Nettoyage – terminez le processus et retirez le DLL if ($proc.HasExited -eq $false) { Stop-Process -Id $proc.Id -Force Write-Host "[+] Terminated G2M.exe (PID $($proc.Id))" } Remove-Item -Path $malDll -Force Write-Host "[+] Cleaned up malicious DLL" # ------------------------------------------------- -
Commandes de Nettoyage : (Si l’attaquant veut seulement enlever les artefacts)
# Enlevez la DLL malveillante si elle existe encore $dllPath = "C:Program FilesGoToMeetingg2m.dll" if (Test-Path $dllPath) { Remove-Item -Path $dllPath -Force Write-Host "Removed $dllPath" } # Éteindre éventuellement tous les processus G2M.exe restants Get-Process -Name "G2M" -ErrorAction SilentlyContinue | Stop-Process -Force Write-Host "Killed any remaining G2M.exe processes"