/etc/passwd. → Riduci l’esposizione superflua di un assetLa consegna dice che le credenziali degli utenti sono memorizzate secondo lo standard Linux.
Nella maggior parte dei sistemi questo significa che sono memorizzate nel file /etc/passwd. Generalmente le password sono nascoste (simbolo x) nel file /etc/passwd che ha permessi di accesso generosi e sono invece salvate nel file protetto /etc/shadow.
Si noti la r in resto del mondo per il file passwd.
-rw-r----- 1 root shadow 2540 2011-12-06 02:12 /etc/shadow
-rw-r--r-- 1 root root 2604 2011-12-06 02:12 /etc/passwd
Se si prova a stampare il contenuto di /etc/passwd, in particolare le credenziali dell’utente flag06, si nota che la password è visibile, in formato hashato.
cat /etc/passwd | grep flag06
Debolezza: Password salvata in file con permessi di accesso laschi (/etc/passwd).
A questo punto si crea un file localmente con l’hash trovato, chiamato ad esempio flag06.hash.
Si installano con dnf i pacchetti hashid e hashcat.
hashid -m flag06.hash
Questo comando ci consente di capire il tipo di hash. In questo caso DES (hashcat mode 1500).
Dopodiché è possibile tentare un attacco a dizionario. Per farlo si usa hashcat, uno dei software di password cracking più famoso.
haschat -a 0 -m 1500 flag06.hash rockyou.txt
La password è → hello.
La si usa per autenticarsi e si lancia getflag.
Si prende nota dell’hash in /etc/passwd corrispondente all’utente flag06.
Si modifica la riga, sostituendo l’hash con un x. Ciò indica che la password corrispondente si trova nel file /etc/shadow.
flag06:x:993:993::/home/flag06:/bin/sh
Si modifica la riga corrispondente a flag06 nel file /etc/shadow, inserendo l’hash memorizzato.
flag06:ueqwOCnSGdsuM:15299::::::
In questo modo l’hash non è più esposto pubblicamente.