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”