Antworten:
TL; DR: Nein, Passworte werden als Hashes gespeichert, die (im Allgemeinen) nicht wiederhergestellt werden können.
Linux speichert standardmäßig nirgendwo Klartext-Passwörter . Sie werden durch eine Vielzahl von Algorithmen gehasht oder auf andere Weise verschlüsselt. Im Allgemeinen ist dies mit gespeicherten Daten nicht möglich.
Wenn Sie Kennwörter haben, die nicht in der /etc/passwd
Datenbank gespeichert sind, werden sie möglicherweise so gespeichert, dass dies möglich ist. htpasswd
Dateien können schwach verschlüsselte Kennwörter enthalten, und andere Anwendungen können aus verschiedenen (normalerweise schlechten) Gründen schwächere Hashes oder Klartextkennwörter speichern.
Außerdem können Benutzerkonfigurationsdateien aus verschiedenen Gründen unverschlüsselte Kennwörter oder schwach geschützte Kennwörter enthalten - beispielsweise zum Abrufen von Inhalten aus einem anderen Dienst durch E-Mail-Abruf .netrc
oder einfach zu automatisierende Dinge, die das Kennwort enthalten.
Wenn die Passwörter mit einem älteren, schwachen Algorithmus (3DES, MD5) gehasht oder verschlüsselt werden, ist es möglich, das Passwort einigermaßen effizient / kostengünstig zu ermitteln - allerdings durch einen Angriff auf die Daten, anstatt nur die Transformation rückgängig zu machen. (zB: Dinge wie http://project-rainbowcrack.com/ oder http://www.openwall.com/john/ )
Da Sie root sind, können Sie das Benutzerkennwort auch auf einer anderen Ebene angreifen: Ersetzen Sie die Login-Binärdatei oder sudo oder einen Teil von PAM usw. durch etwas, das das Kennwort erfasst, wenn es eingegeben wird.
Nein, aber im Allgemeinen erleichtert es der Root-Zugriff, über verschiedene Seitenkanäle auf die Benutzerdetails zuzugreifen.
/etc/shadow
, kryptographische Hash - Funktion , Salz und Passwort - Knack
Im Gegensatz zu einigen anderen Antworten hier würde ich sagen, dass die einfache Antwort auf diese und viele andere Fragen, die mit "wenn Sie Wurzel haben" enden, JA lautet.
Grundsätzlich kann root auf dem Rechner alles tun, was das System selbst kann. Das System kann Ihr Passwort akzeptieren, so dass root mit genügend Aufwand Ihr oder sein Passwort anstelle Ihres Passworts akzeptieren kann. Noch wichtiger ist, er kann einfach Ihr Passwort ändern oder WERDEN Sie.
Insbesondere werden Kennwörter normalerweise verschlüsselt. Dies ist normalerweise eine Art sogenannter "Einweg" -Algorithmus, der eine Zahl (einen Hash) generiert, mit der das Kennwort überprüft werden kann, im Allgemeinen jedoch nicht, um die Zahl umzukehren und das Kennwort erneut abzurufen. Es geht also nicht nur darum, eine Datei zu lesen, um das Kennwort eines anderen Benutzers zu erhalten.
Das heißt, Sie KÖNNEN ihren Shell-Verlauf und den Anmeldeverlauf lesen, in dem sie höchstwahrscheinlich irgendwann ihr Kennwort anstelle ihres Benutzernamens oder an einer Kennwortabfrage in eine Shell eingegeben haben. In diesem Fall wäre es einfacher Text. Dies ist auf textbasierten Terminals störend häufig, da mir keine guten Lösungen bekannt sind.
Aber selbst wenn man dieses Problem beiseite lässt, ist die "Einweg" -Verschlüsselung nicht wirklich eine Einweg. Es gibt viele Tools, die viele Kombinationen von Passwörtern durchlaufen und diese mit demselben Einwegverfahren verschlüsseln, bis Sie eines finden, das passt. Sie kennen dann das Passwort, das Zugriff erhalten soll (obwohl sie als root BEREITS Zugriff auf DIESE Maschine haben).
Schlimmer noch, es gibt Regenbogentabellen, bei denen es sich um vorberechnete Antworten auf den obigen Vorgang handelt: Die Benutzer haben bereits das ursprüngliche Kennwort generiert, das aus dem angegebenen verschlüsselten Kennwort stammt. Mit diesen ist es eine einfache Suche - es sind keine zeitaufwändigen Crackversuche erforderlich.
Auch hier ist der Zugriff auf Root-Ebene DAS, was zu schützen ist. Wenn dies beeinträchtigt ist, ist die gesamte Maschine und alles darauf beeinträchtigt. Es ist Zeit, von vorne zu beginnen und alle Ihre Benutzer darüber zu informieren, dass Ihr Unternehmen nicht mehr vertrauenswürdig ist, um ihre Privatsphäre zu schützen. Und ja, das könnte bedeuten, dass das Geschäft eingestellt wird.
In root
diesem Fall können Sie einen Kennwort-Cracker ausführen /etc/shadow
(unter der Annahme lokaler Kennwörter und nicht von LDAP oder Kerberos usw.). Dies ist möglicherweise nicht effektiv, wenn sie gute Kennwörter auswählen und das System für die Verwendung von sicherem Kennwort-Hashing konfiguriert ist. Systemkennwörter werden jedoch nicht im Klartext gespeichert. Passwörter sind nicht direkt verfügbar root
.
Alle Passwörter werden in einer /etc/shadow
Datei gespeichert . Sie können diese Datei über den Root-Zugriff öffnen und die hash value
Kennwörter für jeden Benutzer (auch für den Root-Benutzer) anzeigen.
Solange Sie keine Software zum Entschlüsseln von Passwörtern haben, können Sie diesen Hash-Wert nicht wieder in normalen Text konvertieren.
Wenn Sie jedoch Zugriff auf den Root-Benutzer haben, können Sie das Kennwort eines normalen Benutzers mit dem folgenden Befehl ändern und auf dessen Konto zugreifen.
root@localhost$ passwd pradeep
Daraufhin werden Sie nach dem neuen Passwort gefragt, das Sie für den Benutzer festlegen möchten pradeep
. Auf diese Weise können Sie passwd für pradeep ändern.
Jetzt können Sie von seinem Konto aus zugreifen über:
root@localhost$ su pradeep
Dies führt dazu, dass Sie zu pradeep user wechseln und ein Terminal wie das folgende erhalten:
pradeep@localhost$