Abuso di Setuid e Setgid: Setuid and Setgid (T1548.001)

La tecnica T1548.001 descrive l'abuso dei bit setuid e setgid su sistemi Linux e macOS per eseguire codice nel contesto di un utente più privilegiato, tipicamente root. Quando un binario ha il bit setuid attivo, viene eseguito con i privilegi del proprietario del file indipendentemente dall'utente che lo lancia; lo stesso vale per setgid rispetto al gruppo.

MITRE ATT&CK colloca questa tecnica in due tattiche complementari: TA0004 (Privilege Escalation), perché consente il salto verticale dei privilegi senza modificare il file sudoers, e TA0005 (Defense Evasion), perché sfrutta funzionalità legittime del sistema operativo mimetizzandosi tra binari SUID di uso comune come passwd, sudo o mount.

L'attaccante può seguire due strade: applicare il bit a un proprio impianto tramite chmod 4755 per garantirsi persistenza privilegiata, oppure enumerare i SUID già presenti cercando versioni vulnerabili o binari con shell escape noti (il progetto GTFOBins cataloga decine di questi casi). Nei dati MITRE risultano associate due famiglie di malware — Keydnap ed Exaramel for Linux — che sfruttano attivamente il meccanismo. L'impatto è significativo perché un singolo binario SUID compromesso apre la strada al controllo completo dell'host, spesso senza generare log di autenticazione tradizionali.

L'operatore red team affronta T1548.001 in due modalità distinte: enumerazione di binari SUID esistenti e weaponizzazione di propri artefatti. La fase di scoperta inizia con:

find / -perm -4000 -type f 2>/dev/null

per i binari setuid, oppure find / -perm -2000 -type f 2>/dev/null per il setgid. Il flag -perm -4000 (con il segno meno) trova file che hanno almeno quel bit impostato, filtrando il rumore. Un'alternativa più selettiva è find / ( -perm -4000 -o -perm -2000 ) -type f -exec ls -la {} ; 2>/dev/null per ottenere direttamente proprietà e owner.

Ottenuta la lista, il confronto va fatto contro il catalogo GTFOBins (open source), che documenta gli abusi noti su binari come find, vim, nmap (versioni legacy), bash, awk, python. Un esempio classico è bash -p eseguito da una copia SUID di bash, che preserva l'EUID root fornendo shell privilegiata.

Per l'enumerazione automatizzata sono standard due tool: LinPEAS (open source) e linux-exploit-suggester (open source), entrambi eseguibili con un singolo script che evidenzia SUID insoliti e kernel exploit correlati. Su macOS l'equivalente è LinPEAS in versione macos o l'ispezione manuale via ls -laO per attributi estesi.

Sulla weaponizzazione, il pattern tipico consiste nel compilare un piccolo wrapper C che invoca setuid(0); setgid(0); system("/bin/bash");, poi rendere il binario setuid con:

chmod u+s /tmp/impianto

dopo averlo posseduto come root (fase che richiede privilegi già acquisiti). Questo è il meccanismo usato da Keydnap su macOS e da Exaramel for Linux per garantirsi rientri privilegiati.

Un secondo scenario è lo shell escape da ambienti ristretti (jail chroot, container mal configurati, restricted shell): individuare un SUID che permetta esecuzione arbitraria consente di bypassare la restrizione. In laboratorio è utile riprodurre catene note con VulnHub (gratuito) o macchine HackTheBox (freemium) marcate come "linux privesc", dove SUID misconfiguration è tra i vettori più frequenti. Documentare owner, permessi e path esatti nel report è essenziale per la remediation.

Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.