Ich habe das Arbeitspasswort und kann den Hash (/ etc / passwd) sehen. Wie finde ich den Hashing-Algorithmus, der zum Hashing des Kennworts verwendet wird, ohne manuell verschiedene Algorithmen auszuprobieren, bis ich eine Übereinstimmung finde?
11
/etc/passwd
. Ich dachte, alle Unix / Linux-Varianten hätten sich vor/etc/shadow
Jahren getrennt. (Ich weiß, dass solche Systeme immer noch Hashes unterstützen,passwd
aber ich kenne keine Dienstprogramme mehr, die sie dort/etc/passwd
. Dies ändert jedoch nichts an der Frage. Macht es?/etc/shadow
und sie haben keine Datei mit diesem Namen.Antworten:
Dies ist in dokumentiert
crypt(3)
‚s Manpage , die Sie finden können übershadow(5)
‚s Manpage oderpasswd(5)
‚s . Diese Links sind für moderne Linux-basierte Systeme geeignet. Die Beschreibung dort ist:Blowfish, auch bekannt als
bcrypt
, auch durch Präfixe identifiziert wird2
,2b
,2x
und2y
(siehe PassLib Dokumentation ).Wenn also ein Hash-Passwort im obigen Format gespeichert ist, können Sie den verwendeten Algorithmus anhand der ID ermitteln . Andernfalls ist es der
crypt
Standard-DES-Algorithmus (mit einem 13-stelligen Hash) oder dercrypt
DES von "big" (erweitert, um 128-Zeichen-Passwörter mit Hashes mit einer Länge von bis zu 178 Zeichen zu unterstützen) oder der erweiterte BSDI-DES (mit einem_
Präfix) gefolgt von einem 19-stelligen Hash).Einige Distributionen verwenden libxcrypt, das einige weitere Methoden unterstützt und dokumentiert :
y
: yescryptgy
: gost-yescrypt7
: scryptsha1
: sha1cryptmd5
: SunMD5Andere Plattformen unterstützen andere Algorithmen. Überprüfen Sie daher die
crypt
Manpage dort. Beispielsweise unterstützt OpenBSDcrypt(3)
nur Blowfish, das anhand der ID „2b“ identifiziert wird .quelle
.
und/
. Die ersten 2 Zeichen sind das Salz und die anderen 11 sind ein Hash-Wert (eine Art). Und es ist der einzige der unterstützten Algorithmen,crypt
der so schwach ist, dass Sie ihn nicht durch die Wahl eines stärkeren Passworts kompensieren können.