Spazio Dopo il Nome File: Space after Filename (T1036.006)
La tecnica T1036.006 - Space after Filename appartiene alla tattica TA0005 (Defense Evasion) e sfrutta un comportamento sottile ma efficace del sistema operativo nella gestione dei nomi file. L'aggiunta di uno spazio in coda al nome, come nel caso di evil.txt (con spazio finale), altera il modo in cui il sistema determina il file handler da invocare.
Su macOS, in particolare, l'accoppiata Launch Services + Terminal.app produce un effetto controintuitivo: mentre evil.txt verrebbe aperto dall'editor predefinito, la variante con spazio finale forza il sistema a interrogare il magic number reale del file, riconoscendo eventualmente un binario Mach-O ed eseguendolo tramite Terminal. L'utente crede di aprire un documento innocuo, ma innesca un'esecuzione arbitraria.
L'impatto è concentrato nelle fasi di Initial Access e Execution, dove la tecnica supporta payload di phishing o allegati camuffati. Nei dati MITRE risultano associati 1 gruppo APT (APT38) e 1 famiglia malware (Keydnap), entrambi orientati a target macOS o cross-platform. La superficie di attacco è ridotta rispetto ad altre tecniche di masquerading, ma la rilevazione è particolarmente insidiosa perché lo spazio finale è invisibile nella maggior parte delle interfacce grafiche e viene spesso strippato dai tool di analisi che normalizzano i nomi file.
Per riprodurre T1036.006 in laboratorio la procedura è tanto semplice quanto istruttiva. Su un sistema macOS di test, compila un piccolo binario Mach-O con clang, ad esempio partendo da un sorgente C che esegue una reverse shell benigna verso il tuo listener di lab. Il comando base è:
clang -o payload payload.c
A questo punto rinomina il file aggiungendo un'estensione fittizia seguita da uno spazio. Poiché la shell non accetta facilmente spazi finali senza escaping, usa la sintassi con quoting:
mv payload "documento.jpg "
Verifica che lo spazio sia effettivamente presente con ls -la | cat -A, dove il carattere finale apparirà come spazio prima del terminatore. Se ora fai doppio click sul file dal Finder, macOS interrogherà il magic number reale, riconoscerà il Mach-O e lo passerà a Terminal.app per l'esecuzione, esattamente come descritto nel comportamento sfruttato da Keydnap (S0276).
Su Linux la tecnica funziona in modo analogo ma con dinamiche diverse: la maggior parte dei desktop environment (GNOME, KDE) usa MIME sniffing tramite libmagic, e uno script bash rinominato *report.pdf * può ancora venire eseguito se l'utente lo lancia da terminale con completion o da un file manager permissivo. Prova con:
cp /bin/sh "./nota.txt " && chmod +x "./nota.txt "
Per un red team engagement realistico contro utenti macOS, incapsula il payload in un archivio ZIP prima del delivery via phishing, perché lo spazio finale sopravvive alla compressione mentre viene talvolta normalizzato da gateway email. Tool utili per la fase di weaponization includono Mythic (open source) come C2 framework con supporto nativo a payload macOS, e Apfell/Poseidon (open source) per agent Objective-C e Golang che si integrano bene con questo vettore.
Documenta sempre nel report la lunghezza esatta del nome file in byte, perché in fase di remediation il cliente dovrà istruire i propri tool di scansione a non troncare gli spazi finali. Per verifica automatizzata durante il test, uno script Python con os.listdir() seguito da repr() rende visibili i caratteri whitespace nascosti che il Finder non mostra all'operatore.
Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?
Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo