Audit sudo e SUID
Logistica Fulmine smista 40.000 pacchi al giorno e nessuno ha mai fatto un audit. Sul server ci sono più errori di configurazione che, da soli, sembrano innocui ma insieme aprono la cassaforte dei lotti. Trovali con gli strumenti dell'audit e raccogli i pezzi: solo l'ultimo passo porta al rapporto.
Laboratorio 5 di 5 del percorso Privilege Escalation. Se ti blocchi hai 3 aiuti, dal più vago al più preciso: costano 0, 80 e 200 XP.
Cosa impari
Gli obiettivi si completano da soli mentre lavori nel terminale; ognuno vale punti esperienza:
- Leggere le regole sudo: cosa può fare davvero il tuo utente? (100 XP)
- Elencare i programmi con il bit SUID (150 XP)
- Controllare i processi in esecuzione (150 XP)
- Leggere con sudo la chiave protetta (250 XP)
Argomenti: privesc, sudo, suid, audit, boss.
I comandi che userai
Il terminale è simulato e capisce una quarantina di comandi Linux. In questo laboratorio ti servono soprattutto questi:
cat: stampa il contenuto di un file: il modo più diretto di leggere configurazioni, note e registri.sudo: esegue un comando con i privilegi di un altro utente, di solito root; con -l elenca cosa ti è permesso. Ogni regola troppo larga è un rischio.find: cerca file per nome, tipo o permessi in tutto un albero di cartelle; in un audit scova chiavi, copie dimenticate e programmi con permessi pericolosi.ps: elenca i processi in esecuzione con i loro argomenti, che sono visibili a tutti gli utenti della macchina.ls: elenca i file di una cartella; con -l mostra permessi e proprietari, con -a anche i file nascosti. È il primo comando su qualunque macchina.grep: cerca le righe che contengono una parola, anche in intere cartelle con -r. È lo strumento principale per analizzare testo e registri.curl: fa richieste HTTP dal terminale e mostra la risposta grezza del server, intestazioni comprese.
L'ambiente simulato
Lavori su una shell Linux simulata, nella home dell'utente runner: file e cartelle inventati, nessun bersaglio in rete.
Oltre alla home c'è un sistema simulato completo, con file di configurazione, registri, utenti e permessi da esaminare.
Sulla macchina girano anche servizi locali:
- SSH: l'accesso remoto cifrato alla riga di comando; si protegge con le chiavi al posto delle password e senza login diretto come root.
- Web (HTTP): un server web con pagine, API o pannelli di gestione: la parte più esposta di quasi ogni organizzazione.
La lezione di difesa
A laboratorio risolto, il writeup spiega cosa è andato storto e come ci si protegge:
Nessun errore, da solo, apriva la cassaforte: sudo su grep per leggere i log, una chiave protetta bene, un programma SUID che stampa solo un numero, un agente con l'utente scritto nella riga di comando. Insieme formano una catena. Lezione difensiva: audit congiunto delle configurazioni, non un controllo alla volta; privilegio minimo (sudo grep legge qualsiasi file: meglio un gruppo con lettura sui soli log), niente SUID inutili, niente dettagli di servizio negli argomenti dei processi, chiavi ruotate e audit ripetuto a ogni modifica.
Prima e dopo questo laboratorio
Per aprirlo devi aver risolto:
- Eseguibili con il bit SUID (Privilege Escalation, medio)
- Segreti nei processi e nei servizi locali (Privilege Escalation, medio)
È uno dei laboratori finali: nessun altro laboratorio lo richiede.
Il percorso Privilege Escalation
Privilege Escalation qui è un percorso di audit: sei su un server come utente normale e controlli se qualche configurazione sbagliata permette di ottenere più privilegi del dovuto. Esamini le regole sudo, i programmi con il bit SUID, le credenziali dimenticate nella cronologia e nei file, i segreti passati come argomenti dei processi. Sono gli stessi controlli che fa chi mette in sicurezza un sistema, e ogni laboratorio finisce con il principio che li riassume tutti: privilegio minimo.