Nel mondo dell’hacking, ci sono momenti in cui il vero divertimento comincia solo dopo aver messo piede nel sistema. Se pensi che ottenere una shell su una macchina target sia già un traguardo, sappi che per un vero black hat — o un pentester con il giusto spirito underground — quello è solo l’inizio. È lì che entra in gioco la privilege escalation, ovvero l’arte (o meglio, la scienza) di trasformarsi da utente qualunque in root, padrone assoluto del sistema.
In questo approfondimento, esploreremo in modo completo e strutturato il mondo della privilege escalation su sistemi GNU/Linux, partendo da uno scenario tipico e analizzando ogni singolo passaggio, tecnica e vulnerabilità da sfruttare. Il tutto accompagnato da un caso pratico reale: l’escalation sulla macchina Sorcerer. Una lettura imperdibile per chi vuole andare oltre la superficie e capire davvero come funziona il gioco.
In termini tecnici, la privilege escalation avviene quando un utente riesce a ottenere privilegi più elevati rispetto a quelli assegnati inizialmente. L’obiettivo è chiaro: conquistare l’accesso root, ovvero la chiave di tutto.
Esistono due principali tipologie di escalation:
Nel contesto del nostro articolo, ci concentreremo sulla prima: scalare fino al root.
Immagina questa scena: sei riuscito a penetrare in un server Linux. Hai una shell attiva, sei dentro, ma… sei un utente “qualsiasi”. Nessun potere reale. Nessuna possibilità di modificare file di sistema, installare software, o interferire coi servizi critici.
È qui che parte la vera sfida: trasformare questo primo accesso in un controllo totale. Ed è qui che si apre la caccia alle vulnerabilità.
Vediamo ora, passo dopo passo, quali sono le tecniche più efficaci per muoversi in un sistema e capire dove colpire per salire di livello.
Prima di tutto, è fondamentale rendere la tua shell interattiva. Un comando Python risolve il problema:
python3 -c 'import pty; pty.spawn("/bin/bash")'
Questo ti darà un ambiente simile a quello di una console vera, permettendoti di usare comandi come su, sudo, clear o ctrl + c con maggiore naturalezza.
viene utilizzato spesso nel mondo dell’ethical hacking e nei Capture The Flag per migliorare l’esperienza di una shell remota ottenuta in modo grezzo. Quando si riesce ad accedere a un sistema Linux tramite una reverse shell, molto spesso quella che si ottiene è una shell estremamente limitata: non supporta comandi interattivi, non riconosce la pressione dei tasti come il tab per l’autocompletamento, e non consente di usare correttamente strumenti come nano, vi o sudo, perché manca un vero terminale a cui appoggiarsi.
Con questo comando, si chiede a Python di importare il modulo pty, che serve per creare pseudoterminali, ovvero simulazioni di terminali reali. Successivamente, con la funzione spawn(“/bin/bash”), si dice al sistema di eseguire una nuova bash – quindi una nuova shell – all’interno di un terminale simulato. Questo trucchetto, che richiede solo che Python3 sia installato sulla macchina target (cosa abbastanza comune), permette di trasformare una shell minimale in qualcosa di molto più usabile.
Non si tratta di un’escalation di privilegi vera e propria, ma è un passaggio fondamentale dopo aver ottenuto l’accesso iniziale, perché permette all’attaccante di interagire meglio con il sistema. È un po’ come passare da una telefonata disturbata a una videochiamata nitida: il contenuto è lo stesso, ma l’esperienza e le possibilità migliorano sensibilmente.
Capire chi sei è il primo passo:
id
Questo comando ti mostra UID, GID e gruppi a cui appartieni. Se sei in sudo, adm o wheel, potresti già avere accessi interessanti.
Conoscere la macchina è cruciale:
uname -a
Ti mostra kernel, architettura e versione di distribuzione. Questo può aiutarti a scovare vulnerabilità note, magari già documentate su ExploitDB.
I file /etc/passwd
e /etc/group
ti dicono chi vive nel sistema:
cat /etc/passwd
grep [nomeutente] /etc/group
Cerca account reali, magari con password deboli o già note da altri leak.
Alcuni percorsi meritano un’occhiata ravvicinata:
ls -al /home/ /var/tmp /dev/shm /opt /srv /var/mail /var/spool/mail
Qui potresti trovare file di configurazione, chiavi SSH, backup o cron job personalizzati. Anche un semplice .bash_history
può rivelarti l’oro.
File critici con permessi errati sono un invito a nozze:
ls -la /etc/passwd
ls -la /root/
Se puoi scrivere su file come /etc/passwd
, puoi aggiungerti un utente root.
ps aux | grep root
ss -tlp
Cerca servizi attivi, porte aperte, processi in ascolto. Magari uno di questi gira come root… ed è vulnerabile.
I cron job sono operazioni pianificate su sistemi Unix/Linux che vengono eseguite automaticamente a intervalli regolari. Il sistema cron è un demone che legge una tabella chiamata crontab, dove sono elencati i comandi da eseguire e quando eseguirli, specificando minuti, ore, giorni, mesi e giorni della settimana. Si usano per automatizzare attività ripetitive, come backup, aggiornamenti o script personalizzati.
Una delle tecniche di escalation più sottovalutate. Se trovi script lanciati da cron come root, e hai modo di modificarli, sei a un passo dal controllo completo.
ls -lsaht /etc/cron*
cat /etc/crontab
Verifica se gli script lanciati sono modificabili. Se sì, hai appena trovato un’autostrada verso root.
Controlla se hai accesso a sudo:
sudo -l
Se puoi eseguire anche un solo comando come root (es. nano, cp, less), puoi facilmente evadere i limiti.
I file con bit SUID/SGID possono essere letali:
find / -perm -u=s -type f 2>/dev/null
Controlla l’elenco su GTFOBins per capire se puoi sfruttarli per eseguire comandi come root. Uno su tutti: start-stop-daemon
.
Due strade:
.bash_history
), prova a usarla su altri account.Uno strumento fondamentale: pspy64 ti mostra in tempo reale cosa viene eseguito nel sistema.
Magari scopri uno script lanciato come root, che puoi modificare…
Scopri porte locali esposte:
ss -tlp
Se scopri un servizio interessante in locale, puoi esportarlo all’esterno con ssh o con un tool come Chisel.
Scalare i privilegi su Linux non è solo questione di comandi e tecnicismi. È un gioco mentale, una sfida contro chi ha configurato il sistema prima di te. Serve pazienza, attenzione, logica e una buona dose di paranoia. Ma soprattutto, serve conoscenza.
E ora che hai letto questa guida completa alla privilege escalation, forse ti starai chiedendo: “e adesso?”.
Beh… prova. Monta una macchina vulnerabile, infilati in una shell… e inizia a scalare. Non c’è miglior modo di imparare, che sporcarti le mani.
Se vuoi altre guide tecniche, tutorial avanzati, case study reali o articoli densi di cultura hacker, continua a seguire Hackerlog.net — l’archivio che nessuno nomina. Ma che tutti dovrebbero leggere.
aaamomo64
This guide mirrors a lot of what I see in CTF challenges—clear structure, smart enumeration steps, and practical tactics like inspecting cron jobs and analyzing user permissions. Super useful to have it all laid out like this in one place.