~/docs/privesc-with-xUIDS

La teoria

In Linux tutto è un file, comprese directory e dispositivi. Ogni file ha i permessi per consentire o limitare tre operazioni: lettura/scrittura/esecuzione. Quando si impostano le autorizzazioni per qualsiasi file si deve essere a conoscenza degli utenti a cui si consente (o limita) tutte e tre le autorizzazioni.

- rwx    rwx    rwx
  421    421    421
   |      |      |
utente   gruppo altri

Ne vien da se che il numero massimo di bit utilizzati per impostare il permesso per ciascun utente è 7, che è una combinazione di lettura (4) scrittura (2) ed esecuzione (1). Ad esempio, impostando un file a chmod 755, apparirà come rwxr-xr-x.

I permessi speciali

I permessi speciali costituiscono un quarto livello di accesso oltre a utente, gruppo e altro. Come suggerisce il nome, i permessi speciali consentono privilegi aggiuntivi rispetto ai set di autorizzazioni standard. C’è un’opzione di autorizzazione speciale per ogni livello di accesso. Diamo un’occhiata a ciascuno individualmente, iniziando con Set UID o SUID

SUID

SUID è un tipo di autorizzazione che consente agli utenti di eseguire un file con le autorizzazioni di un utente specifico. I file che hanno permessi SUID impostati vengono eseguiti con gli stessi privilegi dell’utente originale. Supponendo di accedere ad un sistema come utente non root e di aver trovato binari appartenenti a root con il bit SUID abilitato quei file (programma o comandi) possono essere eseguiti con privilegi di root senza di fatto esserlo.

Come trovare i file con SUID abilitato?

La maniera classica è con il comando

find / -perm -u=s -type f 2>/dev/null

dove:

  • / indica il percorso da dove iniziare a ricercare
  • -perm ricerca i permessi
  • -u=s cerca i file che sono appartenenti all’utente root
  • -type f filtra per i soli file
  • 2> /dev/null in caso di errori questi verranno indirizzati verso /dev/null
GUID

Questo permesso ha due funzioni

  • se impostato su un file consente l’esecuzione del file come gruppo proprietario del file (simile a SUID)
  • se impostato su una directory, tutti i file creati nella directory avranno la proprietà del gruppo impostata su quella del proprietario della directory

Come trovare i file con GUID abilitato?

find / -perm -u=g -type f 2>/dev/null
Sticky bit

L’ultimo permesso speciale è stato soprannominato il “sticky bit”. Questa autorizzazione non ha effetto sui singoli file tuttavia, a livello di directory, limita l’eliminazione dei file. Solo il proprietario (e root) di un file può rimuovere il file all’interno di quella directory.

Impostare i permessi speciali

Personalmente mi trovo meglio con i numeri, quindi riporto la notazione numerica.

  • SUID = 4
  • GUID = 2
  • Stiky = 1

Quindi la sintassi diventa:

$ chmod X### nomeFile | nomeDirectory

Per esempio:

$ chmod 4755 /path/to/file

EOF

1 commento su “~/docs/privesc-with-xUIDS”

Rispondi