NTLM, LM & Rainbow Tables

Hallo zusammen,

ich habe mich in den letzten Tagen/Wochen zwischendurch immer mehr mit Rainbow Tables und Windows Passwörtern auseinander gesetzt und habe mir folgendes überlegt:

Angenommen ich habe ein Windows Passwort NeWpAsS. Gehe ich recht in der Annahme, dass (sofern LM nicht deaktiviert wurde) das Passwort als NEWPASS mit LM gehasht wird?
Wenn ja, wäre es nicht sinnvoll eine Rainbow Table nur mit Großbuchstaben zu erstellen, den LM Hash zu errechnen und dann auf Basis des Plaintextes NEWPASS Rainbow Table für NTLM zu erstellen, die folgendes Charset beinhaltet "NEWPASnewpas". Dann noch die minimale und maximale Länge von 7 einstellt.

Meines Erachtens wäre der Aufwand nicht sehr erheblich.

Zu meinem System:
- Windows XP Pro (VM)
- BackTrack 5 (Stick, bootfähig)
- rcrack suite

Gruß M1ke
 
die idee an sich ist nicht abwägig, aber bedenke folgendes:

du willst das windows pw in korrekter groß und klein schreibung haben ...

du hast LM und NTLM hash ...

sagen wir ferner du hast die vollständigen LM tabellen ...

nun wirft dir die suche in selbigen NEWPASS vor die füße ...

ein 7 stelliges passwort hat nun 2 hoch 7, also 128 mögliche varianten bezüglich groß und klein schreibung ... wie schnell testet man 128 passworte, und wie schnell baut man besagte tabellen auf (impliziert die erzeugung aller dieser varianten), sortiert sie, und sucht in ihnen ...

da man die in diesem schritt erstellten tabellen so gut wie nicht wieder verwenden kann, lohnt ein time-memory-tradeoff hier schlicht nicht ... ohne eine schwäche in NTML zu finden, dürfte brute force "auf den letzten metern" das mittel der wahl sein ...
 
Der Aufwand für 128 mal (worst case und im statistischen Mittel ja nur ~64 mal) NTLM dürfte sich ja in Grenzen halten :D
 
Da is definitiv was dran! Danke für die super Antwort...

Noch ne andere Frage: Soweit ich es gelesen hab, werden die Passwörter bei Windows (nur LM) ab 7 Zeichen "gesplittet". Nach meinem Verständnis:
Das Passwort NeWpaSs12 (9 Zeichen) wird dann in zwei Schritten berechnet. Einmal NEWPASS -> die ersten 7 Zeichen in Großbuchstaben als LM gehasht, danach 12 -> die übrigen 2 Zeichen als LM gehasht.
Verstehe ich das Richtig?! Wenn ja wo werden die "beiden" Hashs gespeichert / bzw. wie finde ich diese?

Informationsgewinnung ist ja bekanntlich das A&O vor jeglicher Aktion, soll heißen: Wenn ich weiß, dass das Passwort z.B. weniger oder gleich 7 Zeichen hat, kann man sich entsprechend drauf einstellen ;-)

Gruß M1ke
 
Zuletzt bearbeitet:
Hello again,

hab mir die unten stehende Frage soeben selber durch rumprobieren beantwortet. Für alle die es interessiert:

Habe mir mehrere Benutzer angelegt (User/Passwort):
Sieben/sieben7 - 7-stelliges Pw
Acht/achtacht - 8-stelliges Pw
Neun/neunneun9 - 9-stelliges Pw
Fuenfzehn/fuenfzehn15fuenf - 15-stelliges Pw

Beim letzten User meldete mir beim Anlegen das System:
Code:
Das eingegebene Kennwort enthält mehr als 14 Zeichen. Computer mit
Vorgängerversionen von Windows 2000 werden nicht auf dieses Konto
zugreifen können. Möchten Sie den Vorgang fortsetzen? (J/N) [J]:

Dazu aber später mehr...

Nachdem ich die Benutzerkonten in Cain geladen hab, ist mir folgendes aufgefallen:
Alle Passwörter kleiner 7 endeten mit einer bestimmten Zeichenfolge.
Ich nehme mir jetzt mal den Benutzer Sieben (mit dem Pw "sieben7") vor.
Der LM-Hash des Passwortes sieht so aus:
Code:
268B59B403341B1BAAD3B435B51404EE
Wenn ich diesen Hash Wert nun "durch 2 teile" sieht es so aus:
Code:
268B59B403341B1B AAD3B435B51404EE
Versucht man (über einen Online Encrypter) den zweiten Part zu errechnen, kommt dabei raus, dass es sich um einen NULL-Hash handelt.

Fazit:
Bei aktiviertem LM Hash (!!!) gilt, hat das Passwort 7 oder weniger Stellen, entspricht "der zweite Part" des LM Hashes AAD3B435B51404EE!
Hat das Passwort 8 oder mehr Stellen, so entspricht der "erste Part" die ersten 7 Zeichen des Passwortes und der "zweite Part" die restlichen, bis einschließlich des 14. Zeichens.
Hat das Passwort mehr als 14 Zeichen, spielt LM nicht mehr mit (korrigiert mich falls ich falsch liege)!

Um die Speicherung des LM Hashes unter zu vermeiden siehe Microsoft Artikel. Ist ab Windows Vista übrigens Standard ;-)

Ich hoffe in meinem Beitrag ist nicht all zuviel falsch, wenn ja, korrigiert mich bitte. Sonst hoffe ich, ich konnte anderen ein bisschen Klarheit über LM/NTLM verschaffen...

Gruß PSM1ke :wink:
 
Zurück
Oben