SOC Prime Bias: Moyen

24 Mar 2026 15:48

Les Indices de Phishing Cachés dans le Dossier /tmp

Author Photo
Ruslan Mikhalov Chef de la Recherche sur les Menaces chez SOC Prime linkedin icon Suivre
Les Indices de Phishing Cachés dans le Dossier /tmp
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

Un utilisateur macOS a été trompé par une fausse invite « Service de protection macOS » et a saisi son mot de passe, ce qui a déclenché le déploiement du voleur d’informations MacSync. Le malware a collecté les cookies de Chrome et Safari, les enregistrements du trousseau Apple, les données de portefeuille de cryptomonnaie et d’autres fichiers locaux, les stockant sous /tmp/salmonela/. Les informations volées ont ensuite été compressées dans une archive et exfiltrées avec curl vers un domaine de commande et de contrôle caché avant que l’archive ne soit supprimée. Huntress a détecté l’intrusion, isolé le point d’extrémité et arrêté la tentative de vol de données.

Enquête

Le SOC de Huntress a identifié une activité suspecte sur le Mac affecté impliquant le binaire natif curl téléchargeant une archive ZIP. Les analystes ont confirmé que l’attaque reposait sur des LOOBins et ont attribué la charge utile au voleur d’informations MacSync. Le confinement a été réalisé en déconnectant l’hôte du réseau et en supprimant le dossier de mise en scène temporaire. Les enquêteurs n’ont trouvé aucun signe de mouvement latéral supplémentaire après que le point d’extrémité ait été isolé.

Atténuation

Les défenses recommandées incluent la formation des utilisateurs pour repérer les dialogues système factices, la réduction des droits d’administrateur local inutiles, le déploiement d’EDR géré sur macOS et la rotation des identifiants après compromission. La restriction des connexions sortantes non autorisées et la surveillance des grands téléchargements via curl peuvent également réduire l’exposition. Un audit régulier et le renforcement des politiques d’accès au trousseau ajoutent une autre couche de protection.

Réponse

Si cette activité est détectée, isolez immédiatement le point d’extrémité, arrêtez le processus malveillant et supprimez le /tmp/salmonela/ répertoire. Effectuez un examen judiciaire pour identifier tout artefact restant, réinitialisez les identifiants exposés et invalidez les sessions actives. Mettez à jour le contenu de détection pour repérer les abus similaires de LOOBins et surveiller le trafic POST sortant vers des domaines inconnus.

"graph TB %% Définitions de classes classDef action fill:#99ccff classDef tool fill:#cccccc classDef file fill:#aaffaa classDef operator fill:#ff9900 %% Nœuds d’action action_user_execution["<b>Action</b> – <b>T1204 Exécution Utilisateur</b><br/>La victime est trompée par une boîte de dialogue factice du Service de protection macOS et entre son mot de passe de l’appareil."] class action_user_execution action action_input_capture["<b>Action</b> – <b>T1056.002 Capture d’Entrée : Capture d’Entrée GUI</b><br/>L’invite malveillante capture le mot de passe entré."] class action_input_capture action action_cred_dump["<b>Action</b> – <b>T1555.001 Informations d’Identifiants : Trousseau</b><br/>Le malware utilise le mot de passe capturé pour extraire les identifiants stockés depuis le Trousseau macOS."] class action_cred_dump action action_browser_discovery["<b>Action</b> – <b>T1217 Découverte d’Informations de Navigateur</b><br/>Le voleur collecte les cookies de Chrome et Safari, les identifiants enregistrés et d’autres données du navigateur."] class action_browser_discovery action action_archive["<b>Action</b> – <b>T1560.001 Archiver les Données Collectées : Archiver via l’Utilitaire</b><br/>Les fichiers collectés sont compressés dans une archive zip dans /tmp/salmonela/."] class action_archive action action_obfuscate["<b>Action</b> – <b>T1027.015 Fichiers ou Informations Obfusqués : Compression</b><br/>L’archive est utilisée pour masquer les données collectées."] class action_obfuscate action action_exfil["<b>Action</b> – <b>T1071.001 Protocole de Couche Application : Protocoles Web</b><br/>L’archive zip est envoyée à un serveur C2 distant via curl sur HTTP/HTTPS."] class action_exfil action action_cleanup["<b>Action</b> – <b>T1070.004 Suppression d’Indicateurs : Suppression de Fichiers</b><br/>Après exfiltration, le malware supprime l’archive pour couvrir ses traces."] class action_cleanup action %% Nœud d’outil tool_curl["<b>Outil</b> – <b>Nom</b>: curl<br/><b>Description</b>: utilitaire de ligne de commande utilisé pour transférer des données sur HTTP/HTTPS."] class tool_curl tool %% Nœud de fichier file_archive["<b>Fichier</b> – <b>Chemin</b>: /tmp/salmonela/archive.zip<br/><b>Type</b>: archive ZIP contenant des données récoltées."] class file_archive file %% Connexions de flux action_user_execution –>|aboutit à| action_input_capture action_input_capture –>|capture le mot de passe pour| action_cred_dump action_cred_dump –>|permet d’accéder à| action_browser_discovery action_browser_discovery –>|fournit des données à| action_archive action_archive –>|crée| file_archive action_obfuscate –>|s’applique à| file_archive action_exfil –>|exfiltre| file_archive action_exfil –>|utilise| tool_curl action_cleanup –>|supprime| file_archive "

Flux d’Attaque

Environnement et Contexte de Simulation

  • TTPs en Test :

    • T1056.002 : Capture d’Entrée – Formulaires Web
    • T1204.004 : Exécution Utilisateur – Fichier Malveillant
    • T1548.004 : Mécanisme de Contrôle d’Élévation – Contournement du Contrôle d’Accès Utilisateur
    • T1555.002 : Identifiants depuis les Navigateurs Web – Extraction de Mot de Passe
    • T1556.004 : Modifier le Processus d’Authentification – Modification de la Confiance de Domaine
  • Contexte & Pertinence TTP :

    • T1056.002 – Le voleur d’informations récolte les identifiants saisis dans les formulaires web et les stocke dans le dossier de mise en scène.
    • T1204.004 – Le binaire malveillant est exécuté par un utilisateur (souvent via un installateur déguisé).
    • T1548.004 – La menace peut tenter d’exécuter l’étape de compression avec des privilèges élevés pour contourner le sandboxing de macOS.
    • T1555.002 – Les mots de passe du navigateur extraits sont écrits dans des fichiers sous /tmp/salmonela/.
    • T1556.004 – Dans des campagnes avancées, l’attaquant peut modifier les paramètres de confiance locaux avant l’exfiltration, mais la règle se concentre sur l’activité de mise en scène des données.
  • Environnement Cible :

    • OS: macOS (Catalina 10.15 ou version ultérieure)
    • Journalisation : Auditd + FSEvents (collecte d’événements de fichier) transmis à un SIEM qui consomme des règles Sigma.
    • Pile de Sécurité : SIEM compatible Sigma générique (par exemple, Elastic Stack, Splunk, Microsoft Sentinel).

Télémétrie et Vérification de la Ligne de Base Avant Vol :

Raison d’Être : Avant de simuler l’attaque, nous devons confirmer que l’hôte cible est configuré pour générer les logs nécessaires, que ces logs sont ingérés par le SIEM, et que la règle de détection ne se déclenche pas sur une activité bénigne. Sans cette validation, tout résultat de test est peu fiable.

  • 1. Instructions de Configuration de la Télémétrie :

    1. Activer auditd sur macOS pour la journalisation de ligne de commande

      sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.auditd.plist
      sudo audit -s 1 # activer l'audit
      sudo audit -f /etc/security/audit_control
      # S'assurer que "flags:fc,ex" (création de fichier et exécution) sont présents, puis redémarrer auditd
      sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.auditd.plist
      sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.auditd.plist
    2. Activer FSEvents (déjà sur macOS) et transmettre au SIEM – installer le module Elastic Filebeat pour macOS ou l’Universal Forwarder de Splunk avec l’ entrée, en s'assurant que chemin : /tmp/ est inclus. is included.

    3. Valider l’ingestion – dans le SIEM, exécuter une requête simple pour tout événement contenant /tmp/ dans les dernières 5 minutes pour confirmer que le pipeline est en fonctionnement.

  • 2. Validation de l’Ingestion & de la Ligne de Base :

    • Action (Télémétrie Bénigne) : Créer un dossier temporaire sous /tmp et le compresser en utilisant tar (ce qui ne not contient pas la phrase exacte déclenchante).

      # commande bénigne pour générer une télémétrie similaire
      mkdir -p /tmp/salmonela_benign
      echo "données bénignes" > /tmp/salmonela_benign/sample.txt
      tar -czf /tmp/salmonela_benign.tar.gz -C /tmp salmonela_benign
    • Requête de Validation (Ingestion) : (exemple de KQL pour Elastic)

      filebeat-* 
      | where file.path contains "/tmp/salmonela_benign"
      | where process.command_line contains "tar"

      La requête devrait retourner l’événement bénin, confirmant que les logs atteignent le SIEM tout en not correspondant la règle de détection (pas de « Contenu zippé de salmonela/ »).


Exécution de la Simulation

Prérequis : La Vérification de la Ligne de Base & de la Télémétrie Avant Vol doit être réussie.

Raison d’Être : 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. Les exemples abstraits ou non liés mèneront à un mauvais diagnostic.

  • Scénario d’Attaque & Commandes :

    1. Compromission Initiale (T1204.004) : L’attaquant livre un binaire macOS malveillant déguisé en installateur légitime. L’utilisateur l’exécute, accordant au processus binaire les droits d’écriture sur /tmp.
    2. Récolte d’Identifiants (T1056.002 & T1555.002) : Le binaire injecte un keylogger dans le navigateur web de l’utilisateur, capture les formulaires de connexion, et écrit les identifiants récoltés dans /tmp/salmonela/creds.txt.
    3. Contournement de l’Élévation de Privilèges (T1548.004) : Le binaire invoque sudo avec une politique pré-configurée qui lui permet d’exécuter l’étape de compression sans inviter.
    4. Mise en Scène des Données & Compression : L’attaquant exécute une bash commande qui enregistre à la fois un message personnalisé and zippe le dossier de mise en scène. La ligne de commande exacte contient la chaîne littérale "Contenu zippé de salmonela/", satisfaisant la condition Sigma.
     sudo bash -c "echo 'Contenu zippé de salmonela/' && zip -r /tmp/salmonela_archive.zip /tmp/salmonela/"
  • Script de Test de Régression : (script Bash autonome qui reproduit les actions décrites ci-dessus)

    #!/usr/bin/env bash
    set -euo pipefail
    
    # 1. Préparer le répertoire de mise en scène
    STAGE_DIR="/tmp/salmonela"
    mkdir -p "$STAGE_DIR"
    
    # 2. Simuler le dump d'identifiants
    echo "user:example@example.com" > "$STAGE_DIR/creds.txt"
    echo "pass:SuperSecret123!" >> "$STAGE_DIR/creds.txt"
    
    # 3. Compresser avec la phrase déclenchante exacte dans la ligne de commande
    sudo bash -c "echo 'Contenu zippé de salmonela/' && zip -r /tmp/salmonela_archive.zip $STAGE_DIR/"
    
    echo "Simulation complète – l'alerte doit se déclencher."
  • Commandes de Nettoyage : (supprime les artefacts et restaure le système)

    #!/usr/bin/env bash
    set -euo pipefail
    
    rm -rf /tmp/salmonela
    rm -f /tmp/salmonela_archive.zip
    echo "Nettoyage terminé."