TLDR

  • La privilege escalation è il passo che trasforma un accesso limitato in controllo totale: da un utente qualsiasi a root. In un attacco reale è dove si gioca tutto.
  • Su Linux quasi mai dipende da un exploit esotico: nasce da configurazioni sbagliate. Un permesso troppo largo, un programma SUID, una regola sudo, un cron scritto male.
  • Il metodo è l'enumerazione: prima di provare qualsiasi cosa, raccogli informazioni sulla macchina. Chi sei, cosa puoi eseguire, cosa gira, dove ci sono permessi anomali.
  • È una lezione difensiva mascherata da attacco: ogni via di escalation che impari è una checklist di hardening per i tuoi server.

Perché conta ora

Hai bucato un servizio e ottenuto una shell. Ma sei www-data, o un utente qualsiasi, con poteri minimi. Non puoi leggere i file importanti, non controlli la macchina. In un attacco reale, è qui che comincia il lavoro vero: trasformare quel punto d'appoggio in controllo totale. Si chiama privilege escalation, ed è il passo che separa "sono entrato" da "comando io".

Su Linux ha una caratteristica che sorprende chi inizia: quasi mai serve un exploit raffinato. La strada verso root è già sulla macchina, lasciata lì da una configurazione sbagliata. Un programma con privilegi troppo alti, un permesso dimenticato aperto, un'operazione automatica scritta male. L'attaccante non crea la falla: la trova.

Il confine, come sempre: tutto questo vale in palestra. Macchine di HackTheBox, VulnHub, le VM vulnerabili del tuo laboratorio. Sono fatte perché tu arrivi a root imparando. Su un sistema altrui, gli stessi comandi sono un reato.

Il principio: prima enumera

C'è una sola regola d'oro: prima di provare, guarda. La via di escalation è nascosta nella configurazione della macchina, e la trovi raccogliendo informazioni con metodo. Chi prova exploit a caso gira a vuoto; chi enumera con pazienza trova, quasi sempre, la cosa sbagliata lasciata aperta.

Le domande dell'enumerazione sono poche e sempre le stesse.

Chi sono e a cosa appartengo.

id
whoami

Il gruppo a cui appartieni può già essere una via: certi gruppi danno accesso a cose che portano lontano.

Cosa posso eseguire come root. Questa è spesso la domanda che risolve tutto:

sudo -l

Elenca cosa il tuo utente può lanciare con sudo. Se puoi eseguire anche un solo programma come root, e quel programma permette in qualche modo di aprire una shell o scrivere un file, la escalation è servita.

Quali programmi hanno privilegi speciali. Cerchi i binari SUID, quelli che girano con i poteri del proprietario:

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

La lista normale contiene programmi attesi. Il tuo lavoro è notare l'intruso: un binario che non dovrebbe avere il SUID, o uno noto per poter essere piegato.

Il cuore della questione: configurazioni, non magia

Le vie di escalation più comuni su Linux si contano sulle dita, e sono tutte errori di configurazione. Vale la pena conoscerle come categorie, perché sono le stesse che dovrai evitare sui tuoi server.

  • SUID sul binario sbagliato. Un programma pensato per compiti innocui, se ha il SUID di root e sa leggere o scrivere file, può essere usato per leggere file protetti o scrivere dove non si dovrebbe. Esiste una mappa di quali binari si prestano a cosa: si chiama GTFOBins, ed è la prima consultazione dopo aver trovato un SUID sospetto.
  • Regole sudo troppo larghe. sudo -l che ti concede di eseguire come root un editor, un interprete o un programma che può lanciare comandi, è una via diretta. Il permesso era comodo per l'amministratore; è una porta per te.
  • Operazioni automatiche (cron) scritte male. Un compito pianificato che gira come root ed esegue uno script su cui tu hai il permesso di scrittura: modifichi lo script, aspetti che il sistema lo esegua, e il gioco è fatto. L'errore è il permesso sullo script, non il cron in sé.
  • File sensibili con permessi sbagliati. Un file di configurazione leggibile da tutti che contiene una password, un file di sistema scrivibile da chi non dovrebbe. Capita più di quanto si creda.

Il filo comune: non stai sfruttando un bug nel codice di Linux. Stai usando, nel modo in cui funzionano, strumenti legittimi che qualcuno ha configurato con la mano troppo leggera.

Il momento root

Quando una di queste vie va a segno, il risultato è sempre lo stesso: una shell con uid=0.

id
uid=0(root) gid=0(root)

Da utente qualsiasi a padrone della macchina. In un pentest reale, è il momento in cui documenti non solo che sei arrivato a root, ma come: perché quel "come" è esattamente la raccomandazione che consegnerai al cliente.

Cosa hai imparato davvero

La privilege escalation su Linux non è un torneo di exploit, è un esercizio di osservazione. La falla c'era già, lasciata da una configurazione frettolosa. Il tuo valore non è stato forzare una serratura: è stato notare la finestra aperta che tutti avevano smesso di guardare.

Ed è una competenza che si ribalta perfettamente in difesa. Ogni via che hai imparato ad attaccare è una voce della checklist di chi deve proteggere.

La lettura difensiva

Giriamo ciascuna via di escalation nella sua contromisura. Questa è, letteralmente, una guida all'hardening di un server Linux.

  • Riduci i binari SUID. Mantieni solo quelli indispensabili e verifica che nessun programma inatteso li abbia. Ogni SUID è un potenziale punto di escalation: meno ce ne sono, meglio è.
  • Scrivi regole sudo minime. Concedi con sudo solo i comandi esatti che servono, mai interpreti o editor generici. Il principio è il privilegio minimo: ogni utente può fare solo ciò che gli serve davvero.
  • Metti in sicurezza i cron. Gli script eseguiti da compiti automatici con privilegi elevati devono essere scrivibili solo da root. Un permesso sbagliato qui vale una compromissione.
  • Controlla i permessi dei file sensibili. Le credenziali non stanno in file leggibili da tutti; i file di sistema non sono scrivibili da utenti normali. Una verifica periodica dei permessi intercetta questi errori.
  • Monitora e aggiorna. Un sistema che registra l'uso anomalo di sudo o la comparsa di nuovi SUID trasforma un tentativo in un allarme. E un kernel aggiornato chiude le poche vie che invece sì dipendono da un bug.

L'attaccante moderno, affiancato da un modello IA che gli riassume l'output dell'enumerazione e gli suggerisce la via più probabile, arriva a root più in fretta. La difesa non cambia: configurazioni strette, privilegio minimo, permessi puliti, occhi sui log.

La cosa da ricordare

Il root non è stato un colpo di fortuna: è stato il premio dell'enumerazione paziente. E ogni tecnica che hai imparato ad attaccare è, rovesciata, una regola per tenere al sicuro i tuoi server.

Il percorso completo lo trovi partendo da Metasploitable 2, dove ottieni la prima shell; qui hai imparato cosa farne quando quella shell ha pochi poteri. E per vedere l'escalation dalla parte di chi la deve scoprire nei log, c'è HackTheBox Sherlocks.

FAQ

La privilege escalation è un exploit?

Raramente, su Linux. Il più delle volte è l'uso legittimo di una configurazione sbagliata: un programma che gira con privilegi elevati e che puoi piegare ai tuoi scopi, un permesso lasciato troppo aperto. L'errore è nella configurazione, non in un bug del software.

Su cosa posso esercitarmi?

Su macchine di palestra: HackTheBox, VulnHub, le VM intenzionalmente vulnerabili del tuo laboratorio. Sono costruite perché tu arrivi a root studiando. Mai su un sistema che non è tuo o che non sei autorizzato a testare.

Cosa significa SUID?

È un permesso speciale che fa eseguire un programma con i privilegi del suo proprietario, non di chi lo lancia. Se un programma è di root e ha il SUID, chi lo esegue lo fa con poteri di root per la durata di quel programma. Un SUID messo sul binario sbagliato è una porta aperta.

Perché l'enumerazione viene prima di tutto?

Perché la via verso root è già sulla macchina, nascosta in come è configurata. Non la indovini: la trovi guardando. Chi prova exploit a caso perde tempo; chi enumera con pazienza trova la configurazione sbagliata che c'è quasi sempre.

Esistono strumenti che fanno l'enumerazione da soli?

Sì, script come LinPEAS automatizzano la raccolta e segnalano ciò che è sospetto. Sono utili, ma capire a mano cosa cercano è ciò che ti rende un pentester invece di un lanciatore di script. In palestra, parti a mano.

Fonti