Frage zu Rainbowcrack 1.5

Hey ihr da draussen, seit alle gegrüsst!! :D

Kleine Frage, ich verwende das Programm Rainbowcrack 1.5 jedoch verstehe ich nicht wie ich jetzt mit dem Programm was anfangen kann.... bin zurzeit an ner hash table runterladen. habe aber das Programm mal näher angeschaut... ich kann zwar ne hash laden... aber was dann? Könnt ihr mir helfen?

Liebe Grüsse

Beno76
 
Zuletzt bearbeitet:
jedoch verstehe ich nicht wie ich jetzt mit dem Programm was anfangen kann....

vielleicht solltest du dich erst einmal mit der Frage befassen "Was ist eine Rainbow-Table?" und "Was ist ein Hash?"

http://de.wikipedia.org/wiki/Rainbow_Table
http://de.wikipedia.org/wiki/Hashfunktion

danach erklärt sich der Sinn von Rainbow-Tables von allein.

und wenn nicht, dann sollte man sich noch mit der "Alternative" befassen:
http://de.wikipedia.org/wiki/Brute-Force-Methode

DANN weiß man wirklich, wozu es Rainbow-Tables gibt...
 
klar, lesen tu ich grad viel... trotzdem, in einfachen Worten erklärt.... brauch ich zu rainbowcrack also noch zusätzliche programme??? wenn ja welche? ich will wikrlich nicht andere suchen lassen, aber ich blick grad nicht durch.....

und lernen muss ja jeder bekanntlich mal ;-)

danke schonmal :thumb_up:

liebe grüsse 67
 
RainbowCrack macht nichts anderes als Passwörter auf Basis von Rainbow-Tables zu cracken.

Du brauchst neben dem Programm also ein zu crackendes PW und eine passende Rainbow-Tabelle...

Angenommen du hast eine Datei:
Code:
user1:xad7sfefdsas
user2:bs68ew3dek32

die Passwörter sind Hash-Werte - es gibt also keinen Algorithmus, um vom Hash auf das Passwort zu kommen, sondern es geht normalerweise lediglich über die Verschlüsselungs-Richtung - also im Normalfall ein Bruteforce-Angriff, bei welchem sämtliche Zeichen-Kombinationen, welche sich aus einem definierten Zeichen-Vorrat und einer minimalen und maximalen Passwort-Länge ergeben, der Reihe nach verschlüsselt werden und mit dem vorhandenen Hash verglichen werden...

Hier setzen die Rainbow-Tables an: es werden sozusagen auf Vorrat eine große Anzahl an Passwort-Hash-Kombinationen gebildet (entweder durch Wordlists oder bruteforce-like) und der eigentliche Passwort-Entschlüsselungs-Prozess schaut nur nach, ob der Hash in der Rainbow-Table zu finden ist - so eine Rainbow-Table ist also eine Hash<-->Plaintext-Lookup-Tabelle.

Ich hoffe, mit dieser Beschreibung kannst du was anfangen.
Detaillierter auf den Umgang mit derartigen Programmen gehen wir hier aus gutem Grund nicht ein: Schließlich ist das HaBo kein Scriptkiddy-Board, wo der Umgang mit irgendwelchen "T00lz" Schritt für Schritt erläutert wird, sondern ein Technik-Support-Forum, in welchem die Hintergründe beleuchtet werden, WARUM und WIE etwas von der technischen Seite her funktioniert.

Ich persönlich bin der Meinung, wer solche Tools benutzen will, sollte wenigstens die Wirkungsweise so gut kennen, dass er zumindest theoretisch im Stande wäre, das Tool auch selbst zu schreiben...
 
nur der vollständigkeit halber, da beavisbee den wichtigsten teil unterschlagen hat :D:

eine rainbowtable ist keine einfache lookup table ...

sie ist vielmehr eine ansammlung von ketten nach dem schema Klartext -> [hashfunkt] -> hash-> [abbildung] -> anderer Klartext -> [hashfunkt] -> anderer hash -> .... -> letzter hash der kette

wobei jede kette durchaus aus tausenden oder noch mehr einträgen bestehen kann, von denen aber nur der erste klartext, und der letzte hash gespeichert werden

für ein lookup in dieser tabelle müssen die ketten nach ihrem letzten hash sortiert werden ...

sucht man nun den klartext zu einem hash, kann man nachsehen ob einer der letzen hashes der ketten mit dem gesuchten übereinstimmt ... in dem fall rekonstruiert man die kette, und hat mit dem letzen klartext den passenden klartext zum hash gefunden ...

ist der gesuchte hash nicht das ende einer kette, kann man auf ihn eine abbildung (oft auch "reduktionsfunktion" genannt) anwenden, die daraus "irgend einen"(hier würde die erklärung zu weit abschweifen) klartext macht den man wiederum hashed ... der resultierende hash wird nun wieder in den kettenenden gesucht ... wird er nicht gefunden, wiederholt man das spielchen, wird er gefunden rekonstruiert man die betreffende kette und findet in ihr hoffentlich den originalhash wieder ... falls ja, ist der vorausgehende klartext der gesuchte, falls nein, haben wir einen false positive ... das ganze spielchen setzt man fort bis man die kettenlänge erreicht hat, oder ein treffer erzielt wurde ...


mit der erklärung dürfte auch kein kiddie was anfangen können ...:D
 
Ich habe mich jetzt mal etwas näher mit Rainbowtables beschäftigt und nun so langsam verstanden wie die Dinger funktionieren. Ich habe auch manche Quellen gelesen die sich widersprechen. Deshalb poste ich mal hier, wie ich das ganze verstanden habe und wo bei mir noch Unklarheiten existieren. Die Grafiken dazu habe ich selbst erstellt. Wenn irgendwas an meinem Text oder an den Grafiken falsch ist, dann weißt mich bitte darauf hin!


nur der vollständigkeit halber, da beavisbee den wichtigsten teil unterschlagen hat :D:

eine rainbowtable ist keine einfache lookup table ...

sie ist vielmehr eine ansammlung von ketten nach dem schema Klartext -> [hashfunkt] -> hash-> [abbildung] -> anderer Klartext -> [hashfunkt] -> anderer hash -> .... -> letzter hash der kette

wobei jede kette durchaus aus tausenden oder noch mehr einträgen bestehen kann, von denen aber nur der erste klartext, und der letzte hash gespeichert werden


1 Frage: Der erste Klartext wird gespeichert, damit man einen Wert hat um die Kette zu Durchlaufen? (Und es ist ja außerdem möglich, dass es das gesuchte Passwort ist)
für ein lookup in dieser tabelle müssen die ketten nach ihrem letzten hash sortiert werden ...


sucht man nun den klartext zu einem hash, kann man nachsehen ob einer der letzen hashes der ketten mit dem gesuchten übereinstimmt ... in dem fall rekonstruiert man die kette, und hat mit dem letzen klartext den passenden klartext zum hash gefunden ...
Das müsste folgendes Bild doch repräsentieren?
attachment.php

Ketten
Also für KT1 wird ein beliebiger Klartext gewählt. Der wird dann mit der Hashfunktion (HF) gehashed. Das Ergebnis ist dann HKT1. Auf diesem Hash wird die Reduktionsfunktion (RF1) angewandt, das Ergebnis davon ist dann KT11, der wird dann wieder gehashed und davon wird wieder nen Klartext gebildet(RF2), der dann wieder gehashed wird.
2 Frage: So wie ich das verstanden hab, ist jede Zeile eine Kette. Aber nur grau unterlegten Spalten werden gespeichert? Nach welchen Kriterien werden die Startwörter gewählt? Wird geschaut welche noch nicht duch eine Reduktionsfunktion vorgekommen sind?

Ermittlung des Passworts, wenn der Hash sofort gefunden wird
Der Hash (HPWx) von dem Passwort(PWx) liegt vor, das Passwort jedoch nicht. Dies soll nun ermittelt werden.
Für die Passwortermittlung wird ein zweistufiger Prozess benötigt:
1 Stufe
Zuerst wird geprüft, ob der Hash HPWx in der rechten Spalte der Rainbowtable vorkommt. In diesem Beispiel trifft dies in der zweiten Zeile zu. Also HKT22 und HPWx stimmen überein.
2 Stufe
Nun muss der Klartext von HKT22 ermittelt werden, also in diesem Fall KT22. Dieser ist jedoch nicht in der Table gespeichert, aber es ist möglich diesen zu "rekonstruieren". Dazu wird die Kette mit dem Startwert KT2 so lange durchlaufen bis ich den KT22 ermittelt habe, KT22 stimmt dann mit PWx überein.

Reduktionsfunktion
Das ist, so wie ich das verstanden habe, die hauptsächliche Herausforderung. Denn eigentlich muss die gewährleisten, dass auf Basis eines Hashes ein eindeutiger Klartext generiert wird, der in der ganzen Rainbowtable nur einmal vorkommt.
3 Frage: Zu Reduktionsfunktionen habe ich jetzt nicht so super Quellen gefunden. Eine besagt, dass die Redunktionsfunktion immer unterschiedlich sein muss. (http://www.zdnet.de/sicherheits_ana...cht_mehr_sicher_story-39001544-41544658-2.htm)
Da sonst die die Ketten ab einer Kollision (also die Reduktionsfunktion liefert das gleiche Passwort bei 2 unterschiedlichen Hashs) gleich wär. Das klingt für mich auch schlüssig. Ist dann die Reduktionsfunktion pro Spalte gleich? Oder ist die immer komplett unterschiedlich? Für mich wärs schlüssig wenn die pro Spalte gleich wär, so kann ich die Ketten dann auch leichter rekonstruieren. So hab ich es auch in den Grafiken dargestellt.

ist der gesuchte hash nicht das ende einer kette, kann man auf ihn eine abbildung (oft auch "reduktionsfunktion" genannt) anwenden, die daraus "irgend einen"(hier würde die erklärung zu weit abschweifen) klartext macht den man wiederum hashed ... der resultierende hash wird nun wieder in den kettenenden gesucht ... wird er nicht gefunden, wiederholt man das spielchen, wird er gefunden rekonstruiert man die betreffende kette und findet in ihr hoffentlich den originalhash wieder ... falls ja, ist der vorausgehende klartext der gesuchte, falls nein, haben wir einen false positive ... das ganze spielchen setzt man fort bis man die kettenlänge erreicht hat, oder ein treffer erzielt wurde ...


Ermittlung des Passworts, wenn der Hash nicht sofort gefunden wird

1 Stufe
Zuerst wird geprüft, ob der Hash HPWx in der rechten Spalte der Rainbowtable vorkommt. Dies ist nicht der Fall. Also wird auf dem Hash HPWx die Reduktionsfunktion RF2 angewandt, das Ergebniss ist dann KTy1. Der wird dann zum Hash HKTy1 gehashed. Jetzt wird nach HKTy1 in der rechten Spalte gesucht, dieser stimmt mit dem Hash HKT22 in der zweiten Zeile überein.
2 Stufe
Jetzt ist klar, in welcher Kette das gesuchte Passwort vorkommt. Die Kette wird mit dem Startwort KT2 durchlaufen bis KT21 ermittelt wurde. KT21 stimmt mit dem gesuchten Kennwort überein.
Die Grafik zeigt außerdem an, welche Werte nach meinem Verständnis noch übereinstimmen müssten

Reduktionsfunktion

4 Frage: Wenn die Reduktionsfunktionen bei jeder Iteration neu sind, aber in jeder Spalte gleich. Dann müsste doch die Reduktionsfunktion die auf HPWx angewand wird, die gleiche sein, die auf HKT21 angewand wird? So ist es auch in der Grafik zu sehen. Die Grafik bezieht sich auf den Text "Ermittlung des Passworts, wenn der Hash nicht sofort gefunden wird"
attachment.php
 
Zuletzt bearbeitet:
zu 1)

ja, der wert dient dazu die kette rekonstruieren zu können

das bild sieht soweit richtig aus ...

zu 2)

die startwerte der ketten werden normalerweise pseudozufällig aber in der regel gleichverteilt aus der Menge der Klartexte gewählt. eine prüfung ob der wert bereits bestandteil einer kette ist, ist nahezu überflüssig, und dürfte auch an performance problemen oder der RAM kapazität scheitern ... in der regel wird nur geprüft dass startpunkte (je nach implememtation)und/oder endpunkte der ketten einzigartig in der tabelle sind...

dadurch dass jede spalte ihre eigene reduktionsfunktion hat, würde ein hash nur dann auf den selben klartext abgebildet, wenn er in der gleichen spalte steht ... kollisionen sind damit zwar nicht ausgeschlossen, aber in der regel fallen dadurch nicht 2 komplette ketten zusammen ...

zu 3) die reduktionsfunktion ist pro spalte gleich ... da haben rainbowtables ihren namen her ... du kannst in deiner grafik die reduktionsfunktionen so einfärben, dass ein regenbogen entsteht ...

zu 4) ja, andernfalls müsstest du auch in kauf nehmen, dass du erstmal raufinden musst welche reduktionsfunktion du wählen musst, da du ja zu anfang nicht weißt in welcher kette der treffer möglicherweise sein wird ... und das wäre im zweifel damit verbunden alle reduktionsfunktionen zu testen ... was mitunter SEHR lange dauern würde, da du das ja auch SEHR häufig tust wärend der klartext gesucht wird ...
 
Zurück
Oben