Campagne macOS ClickFix : Voleurs AppleScript & Nouvelles Protections Terminal
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Netskope Threat Labs a identifié une campagne ClickFix multiplateforme qui cible les utilisateurs de macOS avec un infostealer basé sur AppleScript. Le malware est distribué via une page de social engineering trompeuse qui persuade les victimes de copier et coller une commande malveillante dans le Terminal. Une fois exécuté, le script collecte le contenu du trousseau, les cookies du navigateur, les données d’extension et les fichiers de portefeuille de crypto-monnaie, puis envoie les informations volées via des requêtes HTTP POST. La campagne utilise également des boîtes de dialogue persistantes pour tromper les utilisateurs et les inciter à entrer leur mot de passe système.
Enquête
Le rapport explique que la page d’atterrissage malveillante filtre d’abord les visiteurs par agent utilisateur avant de servir un chargeur AppleScript spécialement conçu pour les systèmes macOS. Après l’exécution, le malware crée un répertoire de mise en scène temporaire, rassemble les identifiants et les données liées au portefeuille, compresse les fichiers collectés avec la commande ditto , et télécharge l’archive vers une adresse de commande et de contrôle codée en dur. Les chercheurs ont également documenté l’abus des services de répertoire macOS pour valider en temps réel le mot de passe de la victime, ainsi que la large gamme de navigateurs et d’applications de portefeuille de crypto-monnaie ciblés.
Atténuation
Netskope recommande aux utilisateurs de macOS de mettre à jour vers les dernières versions macOS Tahoe 26.4 ou macOS Sequoia, qui introduisent des avertissements dans le Terminal pour les commandes collées. Les utilisateurs doivent également éviter d’exécuter des commandes copiées depuis des sites web non fiables, vérifier soigneusement toutes les demandes d’identification, et activer l’authentification multifactorielle partout où cela est possible. Les organisations sont encouragées à surveiller les dialogues AppleScript suspects et le trafic HTTP POST inhabituel dirigé vers une infrastructure inconnue.
Réponse
Les défenseurs doivent détecter et bloquer l’exécution de fichiers AppleScript inconnus et surveiller la création du répertoire de mise en scène /tmp/xdivcmp/ . Des alertes doivent également être configurées pour l’activité HTTP POST des systèmes macOS vers des domaines ou adresses IP peu communs. Toute boîte de dialogue récurrente demandant des mots de passe système doit être considérée comme suspecte, et les terminaux concernés doivent être isolés rapidement pour une enquête médico-légale.
"graph TB %% Définitions de classes classDef technique fill:#ffcc99 %% Définitions de nœud t_phish["<b>Technique</b> – <b>T1566 Hameçonnage</b><br/><b>Description</b>: Envoyer des emails malveillants contenant une commande de copier-coller pour appâter la victime."] class t_phish technique t_userexec["<b>Technique</b> – <b>T1204.004 Exécution Utilisateur : Copie et Collage Malveillant</b><br/><b>Description</b>: La victime copie et colle la commande malveillante dans une session terminal."] class t_userexec technique t_unixshell["<b>Technique</b> – <b>T1059.004 Interprète de Commandes et Scripts : Unix Shell</b><br/><b>Description</b>: Exécuter une commande shell qui télécharge et exécute un payload AppleScript."] class t_unixshell technique t_obfusc["<b>Technique</b> – <b>T1027 Fichiers ou Informations Obfusqué(e)s</b><br/><b>Description</b>: Encoder la commande shell pour masquer son intention malveillante."] class t_obfusc technique t_inputcap["<b>Technique</b> – <b>T1056 Capture d’Entrée</b><br/><b>Description</b>: Dialogue AppleScript persistant capture le mot de passe utilisateur macOS."] class t_inputcap technique t_oscred["<b>Technique</b> – <b>T1003 Vidage des Identifiants OS</b><br/><b>Description</b>: Utiliser le mot de passe capturé pour déchiffrer le Trousseau macOS."] class t_oscred technique t_passmgr["<b>Technique</b> – <b>T1555.005 Identifiants des Gestionnaires de Mots de Passe</b><br/><b>Description</b>: Extraire les données de coffre-fort stockées à partir des gestionnaires de mots de passe installés."] class t_passmgr technique t_webbrowser["<b>Technique</b> – <b>T1555.003 Identifiants des Navigateurs Web</b><br/><b>Description</b>: Voler les mots de passe enregistrés et les données de remplissage automatique des magasins de navigateurs."] class t_webbrowser technique t_webcookie["<b>Technique</b> – <b>T1539 Vol de Cookies de Session Web</b><br/><b>Description</b>: Récolter les cookies de session de douze navigateurs web."] class t_webcookie technique t_altauth["<b>Technique</b> – <b>T1550.004 Utiliser un Matériel d’Authentification Alternatif : Cookie de Session Web</b><br/><b>Description</b>: Réu2011utilisez des cookies volés pour contourner l’authentification multi-facteurs."] class t_altauth technique t_browserdisc["<b>Technique</b> – <b>T1217 Découverte d’Informations de Navigateur</b><br/><b>Description</b>: Localiser les répertoires de profils de navigateur sur le système hôte."] class t_browserdisc technique t_staging["<b>Technique</b> – <b>T1074.001 Données Misent en Scène : Mise en Scène de Données Locales</b><br/><b>Description</b>: Agréger les données collectées dans /tmp/xdivcmp."] class t_staging technique t_archive["<b>Technique</b> – <b>T1560 Archives des Données Collectées</b><br/><b>Description</b>: Compresser les données mises en scène dans un fichier zip en utilisant ditto."] class t_archive technique t_exfil["<b>Technique</b> – <b>T1041 Exfiltration via Canal C2</b><br/><b>Description</b>: Transférer l’archive zip via HTTP POST à un serveur de commande et de contrôle."] class t_exfil technique t_filedel["<b>Technique</b> – <b>T1070.004 Suppression d’Indicateurs : Suppression de Fichiers</b><br/><b>Description</b>: Supprimer le répertoire de mise en scène après une exfiltration réussie."] class t_filedel technique t_diskwipe["<b>Technique</b> – <b>T1561 Effacement de Disque</b><br/><b>Description</b>: Écraser les secteurs de disque pour retirer les traces médico-légales."] class t_diskwipe technique %% Connexions montrant le flux t_phish –>|conduit_à| t_userexec t_userexec –>|conduit_à| t_unixshell t_unixshell –>|utilise| t_obfusc t_unixshell –>|utilise| t_inputcap t_unixshell –>|utilise| t_browserdisc t_inputcap –>|active| t_oscred t_inputcap –>|active| t_passmgr t_inputcap –>|active| t_webbrowser t_inputcap –>|active| t_webcookie t_webcookie –>|active| t_altauth t_browserdisc –>|fournit| t_staging t_staging –>|crée| t_archive t_archive –>|exfiltre| t_exfil t_exfil –>|déclenche| t_filedel t_filedel –>|déclenche| t_diskwipe "
Flux d’attaque
Détections
Tentative de découverte de mot de passe de navigateur MacOS possible (via ligne de commande)
Voir
Validation des identifiants MacOS via Dscl Authonly (via ligne de commande)
Voir
Tentative d’exécution suspecte de Curl [MacOS] (via ligne de commande)
Voir
IOCs (HashMd5) pour détecter : Campagne macOS ClickFix : Stealers AppleScript & Nouvelles protections Terminal
Voir
IOCs (SourceIP) pour détecter : Campagne macOS ClickFix : Stealers AppleScript & Nouvelles protections Terminal
Voir
IOCs (DestinationIP) pour détecter : Campagne macOS ClickFix : Stealers AppleScript & Nouvelles protections Terminal
Voir
Infostealer ClickFix macOS ciblant le trousseau et le répertoire temporaire [Événement de fichier Linux]
Voir
Détection d’infostealer ClickFix macOS [Création de processus Linux]
Voir
Exécution de simulation
Prérequis : Le contrôle préalable de la télémétrie et de la base de référence doit être réussi.
-
Narratif et commandes de l’attaque :
- Reconnaissance : L’attaquant énumère d’abord le trousseau de l’utilisateur actuel pour identifier les éléments stockés.
- Exfiltration d’identifiants : En utilisant
security dump-keychain, l’attaquant extrait l’intégralité de la base de données du trousseau vers un fichier temporaire. - Mise en scène : Le dump est copié dans un répertoire de mise en scène caché
/tmp/.xdivcmp/(miroir du chemin de la règle/tmp/xdivcmp/). - Obfuscation : Le répertoire de mise en scène est marqué comme caché (
chflags hidden). - Préparation à l’exfiltration : Les fichiers sont compressés dans
payload.zipprêt pour le transfert sortant.
-
Script de test de régression :
#!/bin/bash set -euo pipefail # 1. Créer un répertoire de mise en scène caché (correspond au chemin de la règle) STAGING_DIR="/tmp/.xdivcmp" mkdir -p "$STAGING_DIR" chflags hidden "$STAGING_DIR" # 2. Vider le trousseau (nécessite l'interaction de l'utilisateur ; simulé avec une copie de la DB) KEYCHAIN_SRC="/Users/$(whoami)/Library/Keychains/login.keychain-db" KEYCHAIN_DUMP="${STAGING_DIR}/login.keychain-db.dump" # Simuler le dump en copiant la DB (un véritable attaquant utiliserait `security dump-keychain`) cp "$KEYCHAIN_SRC" "$KEYCHAIN_DUMP" # 3. Compresser pour exfil zip -j "${STAGING_DIR}/payload.zip" "$KEYCHAIN_DUMP" echo "[+] Simulation ClickFix complète – artefacts de mise en scène placés dans $STAGING_DIR" -
Commandes de nettoyage :
#!/bin/bash set -euo pipefail STAGING_DIR="/tmp/.xdivcmp" if [[ -d "$STAGING_DIR" ]]; then rm -rf "$STAGING_DIR" echo "[+] Répertoire de mise en scène nettoyé."