Ethical Hacking Academy · Lezione

Abuso di SUID e sudo

Configurazioni errate

Lezione 2 di 413 passaggi

Abuso di SUID e sudo è una lezione Ethical Hacking Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ethical Hacking Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ethical Hacking Academy include 4 lezioni in totale.

Il bit SUID

Il bit di permesso SUID fa sì che un file venga eseguito con i privilegi del suo proprietario, anziché con quelli dell'utente che lo ha avviato. Quando il proprietario è root, un binario SUID viene eseguito come root — utile per strumenti come passwd, ma pericoloso se sfruttato impropriamente.

-rwsr-xr-x  1 root root  /usr/bin/passwd
# the s in rws = SUID bit

Individuazione dei binari SUID

Enumera ogni file SUID e lo confronti con una baseline sicura conosciuta. Qualsiasi elemento insolito — un editor di testo, un interprete o un binario personalizzato — è un candidato.

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

GTFOBins

GTFOBins è un catalogo curato che mostra come abusare dei binari Unix standard per evadere da limitazioni, aumentare i privilegi o leggere/scrivere file quando si dispone di diritti SUID o sudo. Controlli sempre il binario individuato su GTFOBins.

# gtfobins.github.io -> search the binary name

Abuso di SUID con find

Se find ha il bit SUID, la sua opzione -exec esegue i comandi come root, concedendo immediatamente una shell root.

find . -exec /bin/sh -p \; -quit
# -p preserves the elevated privileges

Evasioni dalla shell tramite SUID

Molti interpreti e pager avviano shell. Un vim, less, awk o python con SUID può fornire una shell root.

awk "BEGIN {system(\"/bin/sh -p\")}"
# or in less:  !/bin/sh

Configurazioni errate di Sudo

Esegua sudo -l per elencare i comandi consentiti. Le voci che permettono di eseguire come root un binario sfruttabile, o che usano NOPASSWD, offrono risultati immediati. Il comando non deve necessariamente essere una shell — GTFOBins mostra le modalità di evasione per molti comandi.

sudo -l
# (ALL) NOPASSWD: /usr/bin/vim

Sudo su un editor o un pager

Se può eseguire sudo vim (o varianti di less, more, man e nano), può avviare una shell come root dall'interno del programma.

sudo vim -c ":!/bin/sh"
# inside less:  sudo less file  ->  !/bin/sh

Il trucco LD_PRELOAD

Se sudo conserva LD_PRELOAD (tramite env_keep), può caricare una libreria condivisa malevola che viene eseguita come root all'avvio del comando sudo.

sudo -l  # look for env_keep+=LD_PRELOAD
sudo LD_PRELOAD=/tmp/evil.so program

Vulnerabilità delle versioni di Sudo

Versioni specifiche di sudo presentano dei difetti — ad esempio il buffer overflow nell'heap di Baron Samedit (CVE-2021-3156) e l'aggiramento -u#-1 (CVE-2019-14287). Confronti sudo --version con le CVE note.

sudo --version
# vulnerable < 1.9.5p2 -> Baron Samedit

Binari SUID personalizzati

A volte gli sviluppatori distribuiscono helper SUID personalizzati che chiamano altri programmi per nome, senza un percorso assoluto. Se controlla PATH, può dirottare quella chiamata — collegandosi alle tecniche di abuso di PATH trattate in seguito.

Hardening ed etica

Chi difende i sistemi dovrebbe ridurre al minimo i binari SUID, usare percorsi assoluti, rilasciare presto i privilegi e mantenere sudo aggiornato con regole restrittive. In qualità di tester, sfrutti queste condizioni solo nell'ambito autorizzato.

Verifica rapida

Verifichi le sue conoscenze su SUID e sudo.

Riepilogo

Ha imparato a sfruttare SUID e sudo:

  • SUID esegue un binario come il suo proprietario (spesso root)
  • Controlli i binari individuati su GTFOBins
  • Evasioni verso una shell tramite SUID/sudo con find, vim, awk, less
  • LD_PRELOAD e le CVE di sudo (Baron Samedit) consentono anch'essi di aumentare i privilegi

Prossimo argomento: cron job e abuso di PATH.

Gratis per iniziare

Impara Ethical Hacking Academy con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
31
Lezioni
111

Domande Frequenti

La lezione «Abuso di SUID e sudo» è gratuita?

Sì — il testo completo di «Abuso di SUID e sudo» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ethical Hacking Academy, passa a CoddyKit PRO. Il corso Ethical Hacking Academy include 4 lezioni in totale.

Cosa imparerò in «Abuso di SUID e sudo»?

Configurazioni errate Eserciti Ethical Hacking Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Ethical Hacking Academy?

Non è richiesta alcuna esperienza precedente. Ethical Hacking Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «Abuso di SUID e sudo»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Ethical Hacking Academy?

Sì. Ogni lezione Ethical Hacking Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Enumerazione
  2. Abuso di SUID e sudo
  3. Cron job e PATH
  4. Exploit del kernel
← Torna a Ethical Hacking Academy