Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Brute-Force suche (https://www.delphipraxis.net/11129-brute-force-suche.html)

daniel-volk 31. Okt 2003 14:23


Brute-Force suche
 
Hi,

ich beschäftige mich immer noch mit dem Thema Cryptographie und möchte jetzt gerne wieder ein neues Experiment machen:
Ich will einen Brute-Force-Hash-Cracker proggen.
Dabei soll man auswählen können, welche Zeichen zur Verwendung kommen sollen (Ziffern, Großbuchstaben, Kleinbuchstaben, Sonderzeichen)...
Außerdem soll man festlegen können, bei welcher Länge die Suche beginnen und enden soll!
Tja und zuletzt soll dann angezeigt werden, wie viele Kombinationen mit den eingestellten Parametern möglich sind, sodass dann angegeben werden kann, welcher Bereich dieser möglichen Kombinationen getestet werden soll. (z.B.: 1.256.000 -> 1.550.000)

Und das ist mein Problem! Ich bräuchte quasi zwei Funktionen:
Beide Funktionen bekommen die eingestellen Parameter übergeben (s.o.).
Die erste Funktion gibt mir anhand der Parameter an, wie viele Möglichkeiten es gibt.
Die zweite Funktion gibt mir anhand der Counternummer (0 bis Result(erste Funktion)) die aktuelle Kombination an.
Auf diese Weise kann ich anhand der Nummern auch gleich einen Fortschrittsbalken einbauen ;-)

Sowas zu programmieren ist ja nun verdammt aufwendig. Aber da ich nicht der einzige bin, der auf die Idee gekommen ist sowas zu proggen, wird es ja sicherlich irgendwo einen Sourcecode dafür geben ?!

Weiß jemand was darüber?

MfG,
Daniel.

SirThornberry 31. Okt 2003 14:38

Re: Brute-Force suche
 
menge der möglichen Kombinationen müsste sich aus MengeMöglicherZeischen hoch Länge ergeben.

Burning_Chrome 31. Okt 2003 15:15

Re: Brute-Force suche
 
hi!

brute-force bei hashwerten ist kaese... unterschiedliche inhalte koennen gleiche hashwerte produzieren - interessant ist nur ob gleiche hashwerte bei vernuenftigem inhalt auftreten...
ausserdem: gesetz den fall du hast keinen wirklich tollen cluster zu hause dann kommst aber bei beiden nicht weiter wenn du moderne hashwerte wie z.b. ripemd untersuchen willst...

mein literaturtip: reinhard wobst - abenteuer kryptologie isbn 3-8273-1413-5

bzgl. zweiter frage:
wenn ich das richtig verstehe, dann brauchst du nur eine umrechnung in ein anderes zahlensystem zu realisieren auf basis der vorhandenen characters. als beispiel
- inhalt darf sein 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F
- max stellen = 2

dann ist die maximale kombination 16^2-1 also FF und die anzahl der moeglichen kombinationen 16^2

und die moeglichkeit 180 (wenn die erste moeglichkeit die moeglichkeit 0 ist) ist dann:

180 div 16 = 11 = B

(180- (180 div 16)*16) = 4

also B4

alles roger?

Best_Regards
Burning_Chrome

daniel-volk 31. Okt 2003 18:59

Re: Brute-Force suche
 
Dass Brute-Force dabei Käse ist, das ist mir auch klar. Denn 4 Zeichen Länge gehen noch, 5 sind dann schon für einen normalen PC zu viel. Es geht ja darum, dass du auf diese Art und Weise z.B. Kennwörter knacken kannst, die nur als Hash abgespeichert sind. Und da ist es halt so, dass du theorethisch ein weiteres funktionierendes Passwort finden kannst!

Meine eigentliche Frage war ja auch nur, wie ich dieses "Zählen" der Zeichen schaffe. Also:
a
...
998
999
aaaa
aaab
aaac
...
aaaz
aaa1
aaa2
...
aaa9
aaba
aabb
...

Verstanden was ich meine?

MfG,
Daniel.

supermuckl 31. Okt 2003 19:04

Re: Brute-Force suche
 
sowas hab ich auch schon gecoded... ist ziemlich einfach und funzt auch.. aber schnell ists nicht gerade
das teil kann MD5 hashes bruteforcen mit configurierbarem zeichensatz
ist auch erpropt ;)
aber ab 5-6 zeichen wirds schon kritisch wie du sagst
allerdings kann man sowas auch clusterfähig coden und dann mit verteilter rechenpower einzelne "ranges" bruteforcen
n fertiges prog ( hab freeware MD5 hash algo verwendet ) könnte ich anhängen wenn willst
mit source

negaH 31. Okt 2003 20:25

Re: Brute-Force suche
 
Zitat:

brute-force bei hashwerten ist kaese...
Diese Aussage solltest du genauer erklären !?

Hier in der Codelib habe ich schon einen schneller Kombinatorik Algortihmus gepostet. Dieser kann so umgebaut werden das er für diese Zwecke nützlich ist.

Ich empfehle aber anders vorzugehen. Dazu benötig man ein Wörterbuch aller interessanten Wörter. Z.b. nutzen wir ca. 5.000 deutsche Worte in unserer Alltagssprache, und laut Pisa Studie wäre das ja schon enorm viel :) Nun nimmt man dieses Wörterbuch und versucht alle Abwandlungen dieses Wortes durchzuprobieren. Z.b. mit allen Geburtstags daties kombiniert. Dies ergibt eine durchaus hohe Wahrscheinlichkeit.

Gruß Hagen

S - tefano 31. Okt 2003 22:18

Re: Brute-Force suche
 
Hi,

ich glaub Sleepymaster wollte sowas auch schonmal machen.
Fürs Zeichen durchzählen hab ich ihm einen Array of Char empfohlen, den man beim Programmstart mit Zeichen füllt.
Den wiederum kann man dann mit ner normalen For-While-oder Until-Schleife durchgehen, und man bekommt die Zeichen alle nacheinander.
Ich wusste nur nicht, wie man das Durchzählen verschachtelt ohne vorher die Zeichenanzahl zu kennen.
Aber dafür gibts wohl auch nen Weg.
Vielleicht hab ich auch nen schlechteren Ansatz, aber SleepyMasters Prog hat funktioniert...

Bis dann,

S - tefano

Burning_Chrome 1. Nov 2003 05:04

Re: Brute-Force suche
 
hi!

@daniel-volk: hab dir doch eh in meinem posting beide routinen erklaert... wenn du mir sagst wo du bei der anwendung obiger ueberlegungen noch probleme hast, dann geh ich gern weiter ins detail...

@negaH: a)haben die meisten hash routinen ihre schwachstellen, die sich ausnutzen lassen. ist ungefaehr so wie wenn du die pkzip verschluesselung brute force brechen wolltest... ist einfach nicht notwendig, weil du ein paar bits rechnen kannst - und von da weg nutzen dir obige routinen aber garnix mehr...b) bei 256bit hash werten, und einer durchschnittlichen schluessellaenge von 8 brauchst entweder ein 'paar' rechner oder ein paar paralleluniversen um auch nur eine geringe chance zu haben was zu finden (und da gibts auch keine paare von inhaltlich unterschiedlichen im hash gleichen kombinationen). c) ein woerterbuchangriff ist wenn du ein vernuenftiges userverhalten (das erzwungen werden kann) bei der keyerstellung voraussetzt absoluter unfug. oder hast du wwMSdzzWF22 schonmal in nem woerterbuch gesehen (walle walle manche srecke dass zum zwecke wasser fliesse 2 2)... :hi:

Best_Regards
Burning_Chrome

negaH 1. Nov 2003 12:20

Re: Brute-Force suche
 
Zitat:

a)haben die meisten hash routinen ihre schwachstellen, die sich ausnutzen lassen. ist ungefaehr so wie wenn du die pkzip verschluesselung brute force brechen wolltest... ist einfach nicht notwendig, weil du ein paar bits rechnen kannst - und von da weg nutzen dir obige routinen aber garnix mehr...
Falsch, gerade deswegen sind obige Routinen hilfreich, denn sie produzieren nur eine unwahrscheinlich kleine Submenge aller möglichen Hashwerte.
Zu behaupten das heutige Hashfunktionen gebrochen wurden, bzw. eine Hashfunktion überhaupt mit der PKZip "Verschlüsselung" zu vergleichen halte ich für gewagt.
1.) wurden sehr stark abgeschwächte Hashfunktion gebrochen, d.h. es wurden vereinzelte Kollisionen produziert. Dies hat aber keinen Einfluß auf eine Brute Force Suche.
2.) PKZip nutzt eine 3*32 Bit Verschlüsselung die effektiv nur 31 Bit stark ist. Zudem wurde sie als obfuscated Algo. von einem "Amateur" entwickelt und hält keinerlei modernen Kryptoanalyse Verfahren stand. Die heutigen Standard Hashfunktion stehen am ganz anderen Ende der Wurst und sind sehr genau und gut analysiert wurden. Bisher wurden zB. MD4/MD5/SHA/RipeMD/Haval nicht gebrochen. Ok, bei MD4 hat man mit einer sehr stark abgeschwächten Version Kollisionen nachweisen können, die aber mit der Original MD4 Version nicht auftreten.

Zitat:

b) bei 256bit hash werten, und einer durchschnittlichen schluessellaenge von 8 brauchst entweder ein 'paar' rechner oder ein paar paralleluniversen
Korrekt, und genau deshalb ist eine Brute Force Suche nach dem echten Passwort viel effizienter als nach dem benutzten Hashwert des Passwortes. Es ist um größen schneller nur Wort basierte Passwörter zu erzeugen, diese zu Hashen und deren Hashwert dann als Sessionkey zu Brute forcen. Damit widersprichst du deiner eigenen Aussage. Es ist rein rechnerisch absolut logisch und richtig nach dem Plain Passwort zu brute forcen.

Auch wenn "wwMSdzzWF22" als Passwort erstmal sicher erscheint so ist es um ein vielfaches schlechter als ein echter Haswert mit 128 Bit Entropie. Dieses Passwort käme auf ca. 40 Bit Entropie. Damit ist es 2^88 = 309485009821345068724781056 mal leichter zu finden als ein 128 Bit Hash. Anders ausgedrückt, in der selben Zeit in der man ein 128 Bit Passwort finden kann, hat man schon 309485009821345068724781056 mal das obige Passwort geknackt.

Gruß Hagen

Burning_Chrome 3. Nov 2003 07:32

Re: Brute-Force suche
 
hi!

@negaH: wir haben alle mal rechnen gelernt, trotzdem danke... allerdings sollten wir nun anfangen am lesen zu arbeiten... :roll:

@Daniel: brauchst du noch hilfe? wenn ja, sag bescheid... :?:


Best_Regards
Burning_Chrome


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz