🔍 Contexte
Publié le 21 avril 2026 par Cisco Talos Intelligence, cet article de recherche documente des techniques Living-Off-The-Land (LOTL) natives à macOS, comblant un manque documentaire significatif par rapport aux équivalents Windows. Il s’adresse aux défenseurs et chercheurs en sécurité opérant dans des environnements macOS d’entreprise.
🎯 Surface d’attaque ciblée
macOS représente désormais plus de 45 % des postes en entreprise, notamment chez les développeurs, ingénieurs DevOps et administrateurs systèmes. Ces machines constituent des points de pivot critiques vers des dépôts de code source, des credentials cloud et des clés SSH de production.
⚙️ Techniques d’exécution à distance
- Remote Application Scripting (RAS / eppc://) : utilisé comme outil de déploiement logiciel (T1072) via
Terminal.appcomme proxy d’exécution avec encodage Base64 en deux étapes (déploiement + invocation) - Contournement de l’erreur -10016 : en ciblant
Terminal.appplutôt queSystem Eventspour exécuter des commandes shell distantes - osascript via SSH : accès à l’automatisation GUI et manipulation Finder via Apple Events IPC, créant un angle mort dans la télémétrie
- socat : établissement d’un shell interactif avec allocation PTY, opérant entièrement hors de l’écosystème SSH (pas de logs sshd, pas d’événements PAM)
📦 Staging furtif via métadonnées Spotlight
- Abus du champ Finder Comment (
kMDItemFinderComment) : stockage de payloads Base64 dans les métadonnées Spotlight (attributs étendus), invisible aux scanners de fichiers statiques et aux EDR standards - Extraction et exécution :
mdlslit le commentaire,base64 -Ddécode, le résultat est pipé versbash - Persistance via LaunchAgent : plist dans
~/Library/LaunchAgentsappelantosascriptpour lire le commentaire Finder au login — le plist ne contient aucun payload, rendant l’analyse statique inefficace
🔄 Transfert latéral d’outils (T1570)
Plusieurs protocoles natifs validés pour le transfert de fichiers :
| Protocole | Méthode |
|---|---|
| SCP/SFTP | Via Remote Login SSH |
| SMB | Montage de partages via osascript (contourne la dépendance GUI) |
| Netcat (nc) | Listener pipé vers sh, transfert de fichiers ad hoc |
| Git | git push avec receive.denyCurrentBranch updateInstead |
| TFTP | Activation du serveur natif via launchd (port UDP 69), variante sans root sur port non standard |
| SNMP traps | Encodage Base64, découpage en chunks, transmission via OID personnalisé 1.3.6.1.4.1.99999, réassemblage sur cible |
| socat heredoc | Injection de fichiers via session bash interactive |
🛡️ Indicateurs de détection
- Trafic TCP entrant sur port 3031 (eppc)
- Trafic SNMP/TFTP inhabituel sur LAN interne
- Arbres de processus :
launchd → AppleEventsD → Terminal → sh/bash - Appels fréquents à
mdlsou écritures verscom.apple.metadata:kMDItemFinderComment - Commandes
base64 --decodeissues d’applications GUI - Arguments
osascriptcontenantof machine "eppc://..."
📋 Type d’article
Il s’agit d’une publication de recherche technique de Talos Intelligence visant à documenter et cartographier les techniques LOTL natives macOS, à enrichir le framework MITRE ATT&CK pour cette plateforme, et à fournir des signatures de détection exploitables.
🧠 TTPs et IOCs détectés
TTP
- T1072 — Software Deployment Tools (Execution)
- T1021.005 — Remote Services: VNC (Lateral Movement)
- T1570 — Lateral Tool Transfer (Lateral Movement)
- T1059.002 — Command and Scripting Interpreter: AppleScript (Execution)
- T1564 — Hide Artifacts (Defense Evasion)
- T1027 — Obfuscated Files or Information (Defense Evasion)
- T1543.001 — Create or Modify System Process: Launch Agent (Persistence)
- T1071 — Application Layer Protocol (Command and Control)
- T1048 — Exfiltration Over Alternative Protocol (Exfiltration)
IOC
- Chemins :
~/Library/LaunchAgents - Chemins :
/private/tftpboot - Chemins :
/tmp - Chemins :
~/repos/project/script.sh
Malware / Outils
- socat (tool)
- netcat (tool)
- osascript (tool)
- snmptrap (tool)
- snmptrapd (tool)
- tftpd (tool)
🟢 Indice de vérification factuelle : 70/100 (haute)
- ✅ blog.talosintelligence.com — source reconnue (liste interne) (20pts)
- ✅ 23472 chars — texte complet (fulltext extrait) (15pts)
- ✅ 4 IOCs (IPs/domaines/CVEs) (10pts)
- ⬜ pas d’IOC vérifié (0pts)
- ✅ 9 TTPs MITRE identifiées (15pts)
- ✅ date extraite du HTML source (10pts)
- ⬜ aucun acteur de menace nommé (0pts)
- ⬜ pas de CVE à vérifier (0pts)
🔗 Source originale : https://blog.talosintelligence.com/bad-apples-weaponizing-native-macos-primitives-for-movement-and-execution/