Privilege Escalation

Indice dei contenuti

    La privilege escalation (escalation dei privilegi) è la tecnica con cui un attaccante, dopo aver ottenuto un accesso iniziale a un sistema con privilegi limitati (es. un account utente standard), sfrutta vulnerabilità, configurazioni errate o debolezze del sistema operativo per acquisire privilegi più elevati — tipicamente amministratore locale (local admin), root su Linux, o Domain Admin in ambienti Windows Active Directory. È una fase critica nella catena di attacco: la maggior parte delle azioni distruttive — installare rootkit, estrarre hash di password, cifrare file con ransomware, modificare configurazioni di sistema — richiedono privilegi elevati.

    Escalation verticale vs. orizzontale

    Escalation verticale: da un livello di privilegio basso a uno più alto sullo stesso sistema (utente → root, utente → admin). È la forma classica.

    Escalation orizzontale: ottenere l’accesso a risorse di un altro utente con lo stesso livello di privilegio. Es. leggere i file di un altro utente standard. Tecnicamente non è escalation di privilegio nel senso stretto, ma è comunemente inclusa nella categoria.

    Tecniche principali su Linux

    SUID/SGID abuse: file eseguibili con il bit SUID (Set User ID) eseguono sempre con i privilegi del proprietario (spesso root) indipendentemente da chi li lancia. Se un binario SUID ha vulnerabilità o permette l’esecuzione di comandi arbitrari (es. editor di testo con modalità shell), può essere sfruttato per ottenere una shell root. find / -perm -4000 -type f 2>/dev/null elenca i binari SUID presenti.

    Sudo misconfiguration: se un utente ha la voce sudo configurata permissivamente (es. NOPASSWD: ALL o permesso di eseguire un editor), può ottenere una shell root.

    Kernel exploit: vulnerabilità nel kernel Linux permettono di eseguire codice in ring 0. Esempi noti: Dirty COW (CVE-2016-5195), Dirty Pipe (CVE-2022-0847).

    Cron job mal configurati: script eseguiti periodicamente da root che scrivono in directory scrivibili dall’utente possono essere sostituiti con payload malevoli.

    Credential reuse: credenziali trovate in file di configurazione, variabili d’ambiente o log riusate su altri account con privilegi superiori.

    Tecniche principali su Windows

    Unquoted service path: se il percorso di un servizio Windows contiene spazi e non è tra virgolette, Windows cerca l’eseguibile in percorsi intermedi. Un attaccante con accesso in scrittura su uno di questi percorsi può far eseguire il proprio codice con i privilegi del servizio.

    DLL hijacking: Windows cerca le DLL in un ordine predefinito. Se una directory cercata prima di quella corretta è scrivibile dall’utente, è possibile inserire una DLL malevola con lo stesso nome.

    Token impersonation: su Windows, i processi con il privilegio SeImpersonatePrivilege (tipico degli account di servizio) possono impersonare altri utenti. Tecniche come Potato attacks (RottenPotato, JuicyPotato, PrintSpoofer) sfruttano questo privilegio per impersonare SYSTEM.

    UAC bypass: l’User Account Control è un confine di sicurezza debole: esistono numerose tecniche documentate per elevare da utente standard con UAC a processo elevato senza mostrare il prompt UAC.

    Kerberoasting: in Active Directory, richiedere ticket di servizio Kerberos per account con SPN (Service Principal Name), poi craccarli offline per recuperare le credenziali dell’account di servizio (spesso con privilegi elevati).

    Difesa

    Il principio del minimo privilegio è la difesa strutturale: ogni account deve avere solo i privilegi necessari. La gestione degli accessi privilegiati (PAM) centralizza e monitora l’uso di account con privilegi elevati, introducendo rotazione automatica delle credenziali e sessioni registrate. L’EDR rileva le tecniche di escalation più comuni a runtime. Il patching tempestivo del kernel e delle applicazioni riduce la superficie di attacco per gli exploit di escalation.

    Ultimo aggiornamento: