Rainbowtables unter Windows

Hier geht es nur um Rainbowtables und was man damit machen kann. Eine kleine Einführung in die Funktion von Rainbowtables gibt es unter [4] und v.a. [5] und noch in der Hakin9 05/2007 S.20.

Als kurze Erklärung reicht (hoffentlich) Folgendes:
Passwörter werden verschlüsselt gespeichert, oder vielmehr wird ein Hash erstellt
diese Verschlüsselung kann man mit Rainbowtables knacken
mit Rainbowtables kann man das Klartextpasswort herausfinden. Dazu werden in den Rainbowtables die entsprechenden Schlüssel nachgesehen, wobei allerdings nicht alle verschlüsselten Passwörter mit Klartext hinterlegt sind. Nicht gespeicherten Werte können aber schnell berechnet werden.

 

Den Hash holen

Damit man überhaupt den Hash knacken kann, muß man den erstmal besorgen. So geht’s. Zumindest mal angerissen.

 

Fgdump (online)

http://www.foofus.net/~fizzgig/fgdump/

Ein Programm um die Passwort Hashes von Windows auszulesen, dazu braucht man allerdings Admin Rechte.

Das wird für die weitere Benutzung von rcrack und anderen Programmen benötigt, irgendwo müssen die Hashes ja herkommen.

 

Ophcrack (offline)

Bei einer Live CD wie Ophcrack werden die Hashes automatisch ausgelesen, s.u..

 

Cain & Abel (sniffen, online)

Mittels ARP & Co kann man Passwörter im Netzwerk sniffen. Siehe dazu auch die Dokumentation von Cain & Abel und siehe weiter unten.

Man kann auch die Lokalen und Remote Passwort Datenbanken vom System auslesen und dann mit Cain & Abel “bearbeiten”.

Den Hash knacken

Ophcrack

Live CD

Mit der Ophcrack Live CD kann man Passwörter Windows XP knacken (es gibt auch eine Vista Version). Die Benutzung ist sehr einfach, von der CD booten, der Rest ist selbsterklärend.

Zum Test habe ich ein virtualisiertes XP verwendet und folgende Benutzer mit Passörtern eingerichtet:

gustav – GustL-1A

karl – karl123

otto – hallowelt

dax – ishTyn3y_hGEe

administrator – ileBu9aA

Das klappt sehr gut, die Laufzeit beträgt mit laden der CD nur wenige Minuten. Die beiliegenden Rainbow Tables enthalten nur Alphanumerische Zeichen. Für Kohle gibts auch stark erweiterte Rainbow Tables.

Oder hier gucken:

http://www.freerainbowtables.com/en/tables/lm/

Aber laufen die mit Ophcrack?

http://www.freerainbowtables.com/phpBB3/viewtopic.php?f=2&t=809&view=next

 

Installation

Man kann Ophcrack und die Rainbowtables auch lokal installieren. Voreingestellt kann man lediglich die Original Rainbowtables verwenden. Über die Kommandozeile kann man eventuell auch andere Rainbowtables benutzen.

Nachdem man alles eingerichtet hat, hat man verschiedene Möglichkeiten eine Quelle für die Hashes und Benutzerdaten anzugeben.

Z.B. Load -> Local SAM lädt die lokale Benutzerdatenbank (dazu braucht man wohl Admin Rechte). Wenn die Tables korrekt zugewiesen sind, kann es losgehen, die Bedienung ist weitestgehend selbsterklärend.

Auch wenn Passörter nicht komplett geknackt werden können, kann es natürlich trotzdem für einen Angreifer auch nur einen Teil davon zu haben. So kann man immer noch Brute-Force Angriffe ausführen.

Die Rainbowtables von Ophcrack sind leider nicht mit denen von anderen Projekten kompatibel, z.B. Freerainbowtables.com:

“No one seems to understand that generating Ophcrack tables is dumb. First off we can only generate tables with character sets that have already been made otherwise will need to modify the Ophcrack code. The format of the Ophcrack tables is optimized for key spaces with a max around 2^43. You can go higher than that with Ophcrack tables but you have to either increase the number of tables or increase the chain length, both of which make it slower. You can only have 4.3 billion starting points per Ophcrack table. We are currently generating tables with 14.0 and 14.7 billion starting points per table. Granted the FRT tables are not optimal but they allow for larger tables. There is a format which is optimal for any table size and allows for check points too, but it is harder to program. Also this was suggested back in April and still nothing has been done about it.”

(Quelle: http://www.freerainbowtables.com/phpBB3/topic676.html)

Folgenden Versionen von Ophcrack funktionieren für diese Windows Versionen (lt. http://sourceforge.net/apps/mediawiki/ophcrack/index.php?title=Frequently_Asked_Questions):

‘There are two versions: one called “ophcrack XP LiveCD” which should be used to crack LM hashes, and the other one, “ophcrack Vista” LiveCD for NT hashes. Use “ophcrack XP LiveCD” for these systems, which have LMhash enabled by default:

  • Windows 2000 (any version, including Server)
  • Windows XP (any Service Pack)
  • Windows 2003 Server

Use “ophcrack Vista LiveCD” for these systems:

  • Windows Vista
  • Windows 2008 Server
  • Any system on which the LMhash has been explicitely disabled ‘

Rainbow Tabels und Rainbowcrack

http://project-rainbowcrack.com/

 

Diese Kombination ist einiges mächtiger aber auch komplexer zu benutzen als Ophcrack. Ein ausführliches Tutorial findet sich unter [1] und [2], evtl 2 zuerst lesen.

Grundlage dafür ist das freerainbowtables.com Projekt. Hier kann man verschiedene Rainbowtables herunterladen, und zwar nicht nur für Windows Passwörter, sonder auch noch vieles andere, was so verschlüsselt wird.

 

Vorgehen für Windows XP

  1. Hashes mit fgdump auslesen
  2. mit rtgen die passenden Rainbowtables erzeugen / herunterladen
  3. mit rcrack und dem erzeugten Dump-Datei die Passwörter suchen lassen

Rein methodisch funktioniert das so natürlich immer ähnlich, egal, ob man lm Hashes oder md5 Passwörter rekonstruieren kann.

Das ganze dauert natürlich immer, das Hauptproblem liegt bei Punkt 2.

Für ein genaues Vorgehen siehe [1] und [2], [5].

Was rtgen macht wird genauer unter [3] erklärt.

Konkret zu Punkt 2

Der Charset wird in der Datei charset.txt definiert. Man kann auch eigene Charsets definieren.

wie in [1] erklärt, erzeuge ich die Rainbowtables selbst.

Und zwar mit:

rtgen lm alpha-numeric 1 7 0 2400 40000000 all

rtgen lm alpha-numeric 1 7 1 2400 40000000 all

rtgen lm alpha-numeric 1 7 2 2400 40000000 all

rtgen lm alpha-numeric 1 7 3 2400 40000000 all

rtgen lm alpha-numeric 1 7 4 2400 40000000 all

Wobei ich allerdings die Zeit nicht stoppe, da ich das auf unterschiedlichen Rechnern ausführe und man parallel gut mit anderen Programmen arbeiten kann. Lt. Tutorial sollte es aber pro Tabelle auf einem P4 einen Tag dauern… mal sehen. Die Rainbowtables enthalten alphanumerische Zeichen mit Länge von 1-7 für lanmanager hashes.

…nach drei Tagen war es fertig.

Dann:

rtsort.exe lm_alpha-numeric#1-7_0_2400x40000000_0.rt

rtsort.exe lm_alpha-numeric#1-7_1_2400x40000000_0.rt

rtsort.exe lm_alpha-numeric#1-7_2_2400x40000000_0.rt

rtsort.exe lm_alpha-numeric#1-7_3_2400x40000000_0.rt

rtsort.exe lm_alpha-numeric#1-7_4_2400x40000000_0.rt

 

Damit komme ich zu Punkt 3.

Punkt 1 habe ich schon auf der VM von dem Beispiel mit ophcrack ausgeführt.

Es hat geklappt.

 

Weitere sehr gute Beispiele für die Berechnung gibt es unter [6].

Ich werde weitere Berechnungen vornehmen, z.B. aus [6] Bsp. 3. (Anmerkung dazu: auch diese funktionieren wie erwartet).

Da steht auch genauer und verständlich erklärt, wie man die Genauigkeit berechnet.

 

Vorgehen für Windows 7

Die Tabellen für den Test wurden parallel auf zwei Rechnern erzeugt, daher habe ich zwei Tabellen mit jew. ca. 300 Mb:

rtgen ntlm loweralpha-num-symbol4 1 6 0 3000 20000000 0

rtgen ntlm loweralpha-num-symbol4 1 6 1 3000 20000000 0

Dann wieder mit rtsort sortieren, wie oben.

Mit fgdump kann man (als Administrator) auch die Hashes auslesen

Da rcrack *.rt -n dumpfile leider zu einer Fehlermeldung führte, konnte ich den Hash nur so auslesen:

 

Cain & Abel

winrtgen

Das Programm das Cain & Abel zur Berechnung beiliegt (winrtgen) benutze ich nicht zur Berechnung, denn:

  • es benutzt nicht alle Cores (man kann natürlich für jeden Core das Programm einmal starten)
  • man kann es nicht auf mehrere Rechner parallelisieren (zumindest nicht automatisiert, s.u.)

Aber es hat dennoch einen (für mich) großen Nutzen:

  • man kann die Größe, Genauigkeit etc. schon vorher ausrechnen lassen und muss das nicht selbst tun, dazu muss man einfach alles konfigurieren und auf “Benchmark” klicken

 

Cain zum entschlüsseln

Cain kann mit Tabellen von Rainbowcrack umgehen.

Dazu auf Cracker -> LM & NTLM Hashes gehen, dann auf das + Zeichen. Im nachfolgenden Dialog auf Next.

Im folgenden Dialog alle gesuchten Hashes markieren, rechtsklick und Menü Cryptoanalyses Attack -> NTLM Hashes -> via Rainbowtables (RainbowCrack) wählen.

Tabellen und Charset hinzufügen und auf Start klicken und schon geht es los.

 

 

 

Exkurs: Berechnung von Rainbowtables parallelisieren und automatisieren (Windows)

 

Ziel: Möglichst einfach auf vielen Clients im Netz Rainbowtables berechnen, ohne das man immer nachsehen muss was schon wo berechnet ist.

Anforderungen:

– Server mit Share, die Dateien von rcrack und die Batches müssen da drin sein

– angepasste Batch Dateien

– Clients, das das Laufwerk gemappt haben und dann einfach 1.bat aufrufen

 

Und so gehts:

Es gibt vier Batch Dateien, die die Berechnungen abarbeiten. Damit die korrekten Dateien von den Clients berechnet werden, wird immer eine lock Datei angelegt, sobald die Berechnung der Tabelle startet (nummer.lock), damit die anderen Clients die Tabelle nicht berechnen.

Die der zu berechnenden Tabellen muss in 1.bat konfiguriert werden, in dem IN(…) Ausdruck. (0,1,19) berechnet 20 Tabellen.

Die Parameter zur eigentlichen Berechnung sind unter 4.bat zu finden.

 

Wichtig

Die Berechnung kann unterbrochen werden, damit allerdings die .lock Datei korrekt gelöscht wird muß man folgendes beachten:

  • das Fenster mit der Berechnung einfach schliessen
  • die 1. Frage, ob abgebrochen werden soll mit “n” beantworten
  • wenn danach der wait Befehl angezeigt wird STRG+c drücken und mit “j” bestätigen

 

 

Hier die Dateien:

REM Anzahl in schleife durchlaufen

FOR /L %%a IN (0,1,19) DO 2.bat %%a

1.bat

 

REM prufen ob lock Datei vorhanden, falls nein berechnung starten

if not exist %1.lock 3.bat %1

2.bat

 

REM 4.bat in neuem Fenster offnen, zum abbrechen Fenster schliessen

start /wait 4.bat %1

 

REM wenn 4.bat unterbrochen wurde, muss man die nachfrage ob unterbrochen

REM werden soll mit n beantworten, sonst wird lock nicht geloscht

del %1.lock

 

REM warteschleife, damit man mit strg+c unterbrechen kann

wait.exe 4000

3.bat

 

REM berechnung starten

echo 0 >> %1.lock

rtgen lm alpha-numeric-symbol14 1 7 %1 5700 40000000 #0

4.bat

 

[1] http://www.ethicalhacker.net/content/view/94/24/

[2] http://project-rainbowcrack.com/tutorial.htm

[3] http://hytronic.hy.funpic.de/webspace/Cracking%20The%20Fucking%20Hash%20V1.0.htm

[5] http://de.wikipedia.org/wiki/Rainbowtable

[6] http://www.archive.org/details/Lokale-UndLan-interneAngriffsszenarienAufMicrosoftWindowsNt5.0-5.1-

[7] http://prohackingtricks.blogspot.com/2011/04/password-cracking-with-rainbowcrack-and.html

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s