Also ob das so legal ist ist die Frage. Wie die Rechtsprechung neuerdings mit Hacker Tools umgehen will und so weiter.. Wenn du lediglich was lernen willst ist das schon ganz ok, ein paar Infos gebe ich dir auch gerne.
Insbesondere sehe ich das aus diesem Grund so: Das Wissen wo sein System die Kennwörter hat ist essentiell und auch zu wissen wie diese dort liegen um sein System zu verstehen und um zu Wissen wie und warum man diese Dateien schützen muss.
1. Wenn du das wirklich machen willst, dann erstellst du am besten nen User mit nem kurzen Kennwort. Sagn wir 4-6 Zeichen.
2. Das verschlüsselte Kennwort findest du dann in /ec/shadow. Eine Zeile sieht dort z. B. so aus:
test-ca:$1$lfvglkmfspfmrgdflbspmf3egefb3:13592:0:99999:7:::
Hinter dem ersten Doppelpunkt ist das Kennwort. Je nachdem auf was für ein Rechner du das erzeugst verwendet er einen unterschiedlichen Hash um das zu erzeugen. (Mein Passwort brauchst du gar nicht erst zu versuchen, ist keine Originalzeile ;-) sind einfach nur eingetipperte Buchstaben um das Schema zu zeigen)
3. Mittels Brut Force kannst du dann indem du alle Kombinationen (a-z,A-Z,0-9,Sonderzeichen) durchgehst und davon den Hash erzeugst versuchen das PW zu erraten. Ist aber ne ziemlich dumme Idee, ohne Sonderzeichen bedeutet das schon 62 hoch n (n= Anzahl der Stellen), bei 6 Stellen also schon 56800235584 Möglichkeiten. Warum alle sagen nimm bloss nicht PHP? Der Hash der erzeugt wird ist eine mathematische Funktion und so oft wie du diese wiederholen musst kommts da auf jede millisekunde an. Am effektivsten wäre eine Assembler Implementierung für exakt deine CPU. C kommt da schon ziemlich nahe. PHP... Wau, Welten...
Hintergrundinfo: Was ist ein Hash? Ein Hash ist eine mathematische Funktion die eine Menge von möglichen Eingabewerten auf eine wesentlich kleinere Menge Ausgangswerte abbildet und dabei versucht eine möglichst geringe Kollisionshäufigkeit zu erreichen. Das Hä? beantworte ich dann auch gleich: Ein Hash wandelt einen beliebigen Eingabewert, lass es ein Kennwort, eine Datei, eine CD oder sonstwas sein typischerweise in einen String gegebener Länge um. Bsp: MD5 Hash: md5sum /var/log/messages
951e58d8264ae17b89cca1dc18f9eb83 /var/log/messages
Für Kennwörter hat das denn Vorteil, dass du einen Hash nicht rückrechnen kannst. Sprich wenn du den Hash kennst ist es unmöglich daraus den Eingangswert zu errechnen (Tatsächlich gibt es ja auch unendlich viele verschiedene Eingabewerte mit gleichem Ausgabewert) Um ein Kennwort zu überprüfen wird einfach der Hash des eingebeben PWs erzeut und mit dem gespeicherten Hash verglichen. Die Wahrscheinlichkeit das ein anderes Kennwort denselben Hash erzeugt ist dabei sehr gering