Diciamo che ti è stato consegnato un sistema che non conosci, è un SO Linux e vuoi scoprire che gli utenti non sono in grado di fare tutto ciò che non dovrebbero, che gli utenti / gruppi non permetterebbero tutto ciò che potrebbe essere abusato e che non abbiamo trascurato nulla. Poiché questo dipende in gran parte dall'ambiente utente / organizzativo, dal software, ecc. Il più generico che possiamo ottenere è scoprire quali gruppi e utenti esistono e cosa fanno.
I miei primi passi sarebbero i seguenti:
- Elenca tutti gli utenti con:
cat /etc/passwd
ecat /etc/shadow
- Elenca tutti i gruppi:
cat /etc/group
- Elenca tutto l'accesso sudo:
cat /etc/sudoers
- Elenca tutti gli account con UID 0:
egrep ':0+' /etc/passwd
- Elenca le chiavi SSH radice:
cat /root/.ssh/authorized_keys
Ma questo è il punto in cui sono perplesso, cosa possiamo fare con queste informazioni? Come sappiamo che i gruppi sono ciò che sembrano essere e non possono oltrepassare i loro limiti? Posso pensare a:
- Elenco dei processi appartenenti a un utente:
ps aux | grep $USER
- Elenco dei file di proprietà di un utente / gruppo:
find / -user $USER
ofind / -group $GROUP
(con| grep -v $HOMEDIR
se non vogliamo vedere le cose nelle directory home degli utenti) - Elenca tutti i pacchetti installati (solo root può installare, ma potremmo usarlo come riferimento per verificare quali utenti / gruppi possono accedere a queste applicazioni)
sudo dpkg --get-selections > installed-applications.txt
Ma questo è il massimo che ho ottenuto finora.