Risposte:
Le password su un sistema Linux non sono crittografate, ma sono cancellate, il che è una grande differenza.
Non è possibile invertire una funzione hash per definizione. Per ulteriori informazioni, consultare la voce di Hash Wikipedia .
La funzione hash utilizzata dipende dalla configurazione del sistema. MD5 e blowfish sono esempi comuni per le funzioni hash utilizzate.
Quindi la password "reale" di un utente non viene mai memorizzata nel sistema.
Se accedi, la stringa che inserisci come password verrà sottoposta a hash e verificata rispetto al tuo file / etc / shadow. Se corrisponde, hai ovviamente inserito la password corretta.
Comunque ci sono ancora alcuni vettori di attacco contro gli hash delle password. È possibile mantenere un dizionario di password popolari e provarle automaticamente. Ci sono molti dizionari disponibili su Internet. Un altro approccio sarebbe quello di provare tutte le possibili combinazioni di personaggi che consumeranno una grande quantità di tempo. Questo è noto come attacco bruteforce.
I Rainbowtables sono un altro bel vettore di attacco contro gli hash. L'idea alla base di questo concetto è semplicemente pre-calcolare tutti gli hash possibili e quindi cercare un hash nelle tabelle per trovare la password corrispondente. Esistono diversi progetti di calcolo distribuito per creare tali tabelle , la dimensione differisce dai caratteri utilizzati ed è principalmente di diversi TB.
Per ridurre al minimo il rischio di tali tabelle di ricerca è una pratica comune e il comportamento predefinito in Unix / Linux aggiungere un cosiddetto " salt " all'hash della password. Hai hash la tua password, aggiungi un valore salt casuale all'hash e hash di nuovo questa nuova stringa. È necessario salvare il nuovo hash e il salt per poter verificare se un valore inserito è la password corretta. L'enorme vantaggio di questo metodo è che dovresti creare nuove tabelle di ricerca per ogni singolo sale.
Uno strumento popolare per eseguire attacchi di dizionario o forza bruta contro le password degli utenti di diversi sistemi operativi è John The Ripper (o JTR). Vedi la homepage del progetto per maggiori dettagli:
John the Ripper è un veloce cracker di password, attualmente disponibile per molte versioni di Unix, Windows, DOS, BeOS e OpenVMS. Il suo scopo principale è quello di rilevare password Unix deboli.
È praticamente impossibile decifrare quelle password poiché sono crittografate a senso unico.
Come altri hanno già detto, non puoi davvero decifrare il file shadow.
L'unica cosa che puoi provare è indovinare la password usando uno strumento come John the Ripper . Questo potrebbe non riuscire, e quasi sicuramente richiederà molto tempo.
Le password vengono crittografate utilizzando un algoritmo che accetta una password e crea un hash univoco per quella password. Questo hash è memorizzato nel file / etc / shadow. Non è possibile recuperare la password dall'hash. L'unico metodo per recuperare una password è forzare brutalmente l'intero spazio delle chiavi o utilizzare una sorta di attacco del dizionario . Le prime funzioni di hash utilizzavano lo standard DES. L'aumento della potenza di calcolo ha permesso di forzare lo spazio dei tasti DES in un tempo ragionevole. Le moderne funzioni hash utilizzate per crittografare le password includono MD5, SHA ecc. Ulteriori informazioni sulla libreria crypt (3) sono disponibili qui .