possiamo conoscere la password per gli altri utenti se abbiamo accesso come root?


24

Se una persona ha accesso root a un determinato computer RHEL, sarà in grado di recuperare la password degli altri utenti?


4
Sì, puoi, possono condividerlo con te che ti viene chiesto piacevolmente :) In altre parole, la tua domanda non è stata posta esattamente.
poige

Risposte:


37

TL; DR: No, la password viene memorizzata come hash che (in generale) non può essere recuperato.

Per impostazione predefinita, Linux non memorizza password in chiaro ovunque . Sono sottoposti a hash o altrimenti crittografati attraverso una varietà di algoritmi. Quindi, in generale, no, questo non è possibile con i dati memorizzati.

Se le password sono memorizzate in un luogo diverso dal /etc/passwddatabase, è possibile che vengano archiviate in modo da consentire ciò. htpasswdi file possono contenere password criptate in modo logico e altre applicazioni possono archiviare hash più deboli o password in chiaro per vari motivi (in genere errati).

Inoltre, i file di configurazione dell'utente possono contenere password non crittografate o password debolmente protette per vari motivi: fetchmail che acquisisce contenuto da un altro servizio .netrco semplici cose automatizzate possono includere la password.

Se le password sono hash o crittografate con un algoritmo più vecchio e debole (3DES, MD5), sarebbe possibile elaborare in modo abbastanza efficiente / economico quale fosse la password, anche se attaccando i dati piuttosto che semplicemente invertire la trasformazione. (ad es .: cose come http://project-rainbowcrack.com/ o http://www.openwall.com/john/ )

Dato che sei root è anche possibile attaccare la password dell'utente ad un altro livello - sostituire il binario di accesso, o sudo, o parte di PAM, ecc. Con qualcosa che catturerà la password quando viene inserita.

Quindi, in particolare, no, ma in generale avere l'accesso come root rende più facile ottenere i dettagli degli utenti attraverso vari canali laterali.


1
Tim

2
Questa è una buona risposta per la maggior parte, tuttavia 3DES e MD5 non sono in realtà significativamente più deboli di altri algoritmi. La forza bruta è ancora l'unico metodo per trovare una password da un hash ( le tabelle arcobaleno sono un modo per accelerare i metodi di forza bruta per qualsiasi algoritmo, non un punto debole di MD5). Ciò che migliora un metodo hash per le password è che è lento e utilizza un sale abbastanza lungo.
Gilles 'SO- smetti di essere malvagio' il

13

Contrariamente ad altre risposte qui, direi che la risposta semplice, a questa e molte altre domande che terminano con "se hai radice" è SÌ.

Fondamentalmente, root può fare qualsiasi cosa sulla macchina che il sistema stesso possa fare. Il sistema può accettare la tua password, quindi root può accettare la tua password, o la sua al posto della tua, con sufficiente sforzo. Ancora più importante, può semplicemente cambiare la password o DIVENTARE.

In particolare, le password sono generalmente crittografate. Di solito si tratta di una sorta di cosiddetto algoritmo "unidirezionale", che genera un numero (un hash) che può essere utilizzato per controllare la password, ma generalmente per non invertire il numero e recuperare nuovamente la password. Quindi, non si tratta solo di leggere un file per ottenere la password di qualcuno.

Detto questo, PUOI leggere la cronologia della shell e la cronologia degli accessi, dove molto probabilmente hanno digitato la loro password anziché il loro nome utente a un certo punto, o l'hanno digitata in una shell anziché al prompt della password. In tal caso, DOVREBBE essere un testo semplice. Questo è inquietantemente comune sui terminali testuali, senza soluzioni valide che io conosca.

Tuttavia, anche mettendo da parte questo problema, la crittografia "unidirezionale" non è in realtà un modo. Ci sono molti strumenti intorno che passeranno attraverso molte combinazioni di passphrase, crittografandole con lo stesso processo a senso unico, fino a quando non trovi quello che corrisponde. Quindi conoscono la password che otterrà l'accesso (anche se come root, hanno già accesso, su quella macchina).

Peggio ancora, ci sono tabelle arcobaleno, che sono risposte precompilate al processo sopra: le persone hanno già generato la password originale che proviene dalla password crittografata fornita. Usando questi, è una ricerca semplice - non sono necessari tentativi di cracking che richiedono tempo.

Ancora una volta, l'accesso a livello di root è LA cosa da proteggere. Con ciò compromesso, l'intera macchina e tutto ciò che vi è compromesso. È tempo di ricominciare, anche informando tutti i tuoi utenti che la tua attività non può più essere considerata attendibile per proteggere la loro privacy. E, sì, ciò potrebbe significare uscire dal mercato.


Ottenere l'accesso al mio account è diverso dall'ottenere la mia password. Se mi permetti un accesso utente alla tua macchina e io (stupido ma comune) uso la stessa password per tutte le macchine, non hai accesso a tutte le macchine solo in b / c puoi cambiare la mia password sulla tua macchina. Vengo bloccato da un account.
emory

Inoltre, se si utilizzano file system crittografati per dati sensibili, la compromissione dell'accesso root non implica il tempo di ricominciare.
emory

@emory Se usi file system crittografati e il sistema è root root, puoi fidarti del codice che si occupa del file system crittografato, leggere la passphrase di crittografia, ecc.? Direi che non puoi, perché per definizione, un compromesso con i privilegi di root significa che tutto sul sistema (fino al kernel) è in palio.
un CVn il

@ MichaelKjörling Posso fidarmi del codice che si occupa del file system crittografato? Nella maggior parte dei casi, no. Nel mio caso, sì. È ospitato su supporti di sola lettura. La radice non può scrivergli. I registri vanno su un'unità WORM. Allo stesso modo, non sto distribuendo le chiavi a root e probabilmente ricomincerei da capo.
emory

8

In tal caso, rootè possibile eseguire un cracker di password /etc/shadow(presupponendo password locali e non LDAP o Kerberos, ecc.). Ciò potrebbe non essere efficace se scelgono password valide e il sistema è configurato per utilizzare l'hash delle password complesse. Ma le password di sistema non sono memorizzate in testo normale; le password non sono direttamente disponibili nemmeno a root.


5

Tutte le password sono archiviate nel /etc/shadowfile. È possibile aprire questo file utilizzando l'accesso come root e vedere la hash valuepassword per ciascun utente (anche l'utente root).

A meno che non si disponga di alcun tipo di software di decodifica della password, non è possibile riconvertire questi valori di hash in testo normale.

Tuttavia, se hai accesso all'utente root, puoi modificare la password di qualsiasi utente normale usando il comando seguente e accedere al suo account.

root@localhost$ passwd pradeep

Questo ti chiederà il nuovo passwd che desideri impostare per l'utente pradeep. In questo modo puoi cambiare passwd per pradeep.

Ora puoi accedere dal suo account tramite:

root@localhost$ su pradeep

Ciò comporterà il passaggio all'utente di pradeep e otterrai un terminale come questo:

pradeep@localhost$


1
puoi fare "su pradeep" anche senza cambiare la password di pradeep, perché quando fai "su pradeep" con l'utente root non devi digitare la password di pradeep per accedere ...
Wolfy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.