Esecuzione via AppleScript: AppleScript (T1059.002)
AppleScript è il linguaggio di scripting nativo di macOS pensato per l'automazione inter-applicativa attraverso messaggi chiamati AppleEvents. Questi eventi permettono di controllare finestre, inviare sequenze di tasti, pilotare applicazioni locali o remote già in esecuzione e interagire con componenti profondi del sistema operativo. La tecnica T1059.002 rientra nella tattica TA0002 (Execution) del framework MITRE ATT&CK e copre l'abuso di questo linguaggio come vettore di esecuzione di codice arbitrario sugli endpoint Apple.
L'invocazione più comune avviene tramite l'utility a riga di comando osascript, che accetta sia il percorso di un file (osascript /path/to/script) sia codice inline (osascript -e "..."). Ma AppleScript può essere eseguito anche come shebang (#!/usr/bin/osascript), attivato da regole di Mail, allarmi di Calendar.app, workflow di Automator, oppure caricato programmaticamente da binari Mach-O tramite le API native NSAppleScript e OSAScript, che bypassano completamente l'utility CLI.
Da macOS 10.10 Yosemite in poi, AppleScript può invocare direttamente le Native API, aprendo la porta all'esecuzione di logica sofisticata senza dover compilare un binario. I dati MITRE documentano 5 famiglie malware che sfruttano questa tecnica — da Dok a Cuckoo Stealer — con casi d'uso che spaziano da persistenza via Launch Agent a phishing di credenziali tramite dialog fasulli.
Un red team che opera su parco macOS trova in AppleScript un vettore estremamente flessibile per esecuzione, persistenza e social engineering, spesso trascurato dai controlli di endpoint pensati per Windows. Il punto di partenza è la CLI: osascript -e 'do shell script "id"' esegue un comando shell nel contesto dell'utente corrente, mentre osascript -e 'do shell script "whoami" with administrator privileges' fa apparire un prompt Authorization Services graficamente identico a quello di sistema, tecnica sfruttata anche da Cuckoo Stealer per rubare credenziali.
Per simulare persistenza in stile ThiefQuest o macOS.OSAMiner, si crea un .plist in ~/Library/LaunchAgents/ che invoca osascript con uno script codificato inline o caricato da percorso nascosto. Il payload può registrare un login item con l'AppleScript classico tell application "System Events" to make login item at end with properties {path:"...", hidden:true}, replicando il pattern di Dok.
Per phishing sofisticato di credenziali, il costrutto display dialog "macOS wants to make changes..." default answer "" with hidden answer with icon caution produce una finestra credibile che l'operatore SOC fatica a distinguere da una richiesta legittima. Le UI-scripting API (tell application "System Events" to keystroke ...) permettono di pilotare Terminal, Safari e Keychain Access simulando input umano, aggirando alcuni controlli basati sulla provenienza del processo.
Sul lato tooling, il framework Mythic (open source) con l'agent Apfell/Poseidon (open source) offre payload nativi in JXA e AppleScript pensati proprio per red team macOS. Empire (open source, fork mantenuto da BC Security) include moduli macOS che sfruttano osascript per staging e post-exploitation. Per esplorare le AppleEvent API a basso livello, gli strumenti nativi osadecompile e osacompile permettono di lavorare con script compilati in formato .scpt, utili per offuscamento.
Una catena tipica in laboratorio: consegna di un .dmg firmato con Developer ID sacrificale, esecuzione di un binario che invoca NSAppleScript — bypassando i controlli su osascript CLI — con payload che scrive un LaunchAgent, esfiltra keychain tramite security find-generic-password e stabilisce reverse shell Python. Da testare in VM isolata con SIP attivo per validare quali step attivano TCC prompt.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo