Escalation dei privilegi utilizzando il file passwd

8

Se ho un file scrivibile world / etc / passwd su un sistema, come posso eseguire l'escalation dei miei privilegi su root? Attualmente sono un utente svantaggiato. Il sistema operativo di base è CentOS 7.2 nel caso ve lo stiate chiedendo

So che il file passwd non è normalmente scrivibile in tutto il mondo, sto facendo una sfida che ha lo scenario attuale.

Qualsiasi passaggio allo sfruttamento sarà di grande aiuto

    
posta Airbourne 19.02.2017 - 11:46
fonte

2 risposte

17

Le password sono normalmente memorizzate in /etc/shadow , che non è leggibile dagli utenti . Tuttavia, storicamente, sono stati memorizzati nel file leggibile a livello mondiale /etc/passwd insieme a tutte le informazioni sull'account. Per compatibilità con le versioni precedenti, se un hash della password è presente nella seconda colonna in /etc/passwd , ha la precedenza su quello in /etc/shadow .

Storicamente, un secondo campo vuoto in /etc/passwd significa che l'account non ha password, cioè chiunque può accedere senza password (usato per gli account guest). Questo a volte è disabilitato. Se gli account senza password sono disabilitati, puoi inserire l'hash di una password a tua scelta. Puoi utilizzare la funzione crypt per generare hash delle password, ad esempio perl -le 'print crypt("foo", "aa")' per impostare la password su foo .

È possibile ottenere l'accesso come root anche se puoi solo aggiungere /etc/passwd e non sovrascrivere il contenuto. Questo perché è possibile avere più voci per lo stesso utente, purché abbiano nomi diversi: gli utenti sono identificati dal loro ID, non dal loro nome, e la caratteristica di definizione dell'account di root non è il suo nome ma il fatto che ha l'ID utente 0. Quindi puoi creare un account root alternativo aggiungendo una riga che dichiara un account con un altro nome, una password di tua scelta e l'ID utente 0.

    
risposta data 19.02.2017 - 13:27
fonte
7

Scrivi semplicemente:

echo root::0:0:root:/root:/bin/bash > /etc/passwd

su

e tu sei root.

(Rimuovendo x significa che root non richiede più password, puoi usare sed comando invece di echo ma questo è sufficiente per ottenere la shell di root)

    
risposta data 28.09.2017 - 21:44
fonte

Leggi altre domande sui tag