Zum Inhalt wechseln

Als Gast hast du nur eingeschränkten Zugriff!


Anmelden 

Benutzerkonto erstellen

Du bist nicht angemeldet und hast somit nur einen sehr eingeschränkten Zugriff auf die Features unserer Community.
Um vollen Zugriff zu erlangen musst du dir einen Account erstellen. Der Vorgang sollte nicht länger als 1 Minute dauern.

  • Antworte auf Themen oder erstelle deine eigenen.
  • Schalte dir alle Downloads mit Highspeed & ohne Wartezeit frei.
  • Erhalte Zugriff auf alle Bereiche und entdecke interessante Inhalte.
  • Tausche dich mich anderen Usern in der Shoutbox oder via PN aus.
 

   

Foto

[PHP] Projekt "Hash-Cracking via BruteForce"

- - - - -

  • Bitte melde dich an um zu Antworten
4 Antworten in diesem Thema

#1
B1nary

B1nary

    Samurai

  • Elite Member
  • Likes
    489
  • 506 Beiträge
  • 346 Bedankt
Moin zusammen :)

Hab mich mal rangesetzt und eine BruteForce-Funktion in PHP geschrieben. Die Funktion kann einen übergebenen Hash (in diesem Fall md5) mittels BruteForce cracken.
Mir ist klar, dass es dafür weitaus effizientere Sprachen gibt und die Engine von PHP nicht unbedingt dafür ausgelegt ist. Deshalb habe ich das Ganze auch als Projekt markiert und will lediglich einmal die Arbeitsweise einer möglichen BruteForce-Funktion verdeutlichen.



Das Script wird mit
crack_password(4, '6c63212ab48e8401eaf6b59b95d816a9', '', 0, 'md5', '');
gestartet. Die Erläuterung der einzelnen Argumente befindet sich als Kommentar im Script.

Output:

Eingefügtes Bild

Das Script eignet sich auch gut, um sich ein Wörterbuch zu erzeugen. Dafür einfach
// echo $start_str.$pool[$i].'<br />';
auskommentieren oder gleich in eine txt-Datei schreiben.
Außerdem muss die vergleichende if-Schleife $hash == $passwd kommentiert werden.

hf

#2
hikhack7

hikhack7

    Hacktivist

  • Members
  • PIPPIPPIPPIPPIP
  • Likes
    58
  • 63 Beiträge
  • 77 Bedankt
Hallo

Schöne Sache. Schade dass es noch kein Feedback gibt - so ein Script ist ja nicht in 5 Minuten geschrieben :-)

Meine Verbesserungsvorschläge / Ideen:
  • Brauchst du "date_default_timezone_set" nicht nur wenn du "date()" benutzt? Bei time() alleine ist es glaub nicht notwendig die Timezone zu definieren.
  • Du könntest als Ersatz der Arrays in denen du von a-z und A-Z auflistest, auch

    Please Login HERE or Register HERE to see this link!

    benutzen. Also range('a', 'z').
  • Wenn du eine kleine kompakte Klasse daraus machst (Falls du es noch erweiterst), könnte man vllt das "hässliche" (;-)) global wegmachen.
  • Für was steht die Variable $ckey genau also wo ist der Sinn der Überprüfung vor der FOR-Schleife? :-)
Danke für das Script, sieht ansonsten interessant aus :hi:

Bearbeitet von hikhack7, 22 June 2014 - 13:31 Uhr.

  • Cube gefällt das

Wissen ist Macht.


#3
B1nary

B1nary

    Samurai

  • Elite Member
  • Likes
    489
  • 506 Beiträge
  • 346 Bedankt

Hallo

Schöne Sache. Schade dass es noch kein Feedback gibt - so ein Script ist ja nicht in 5 Minuten geschrieben :-)

Meine Verbesserungsvorschläge / Ideen:

  • Brauchst du "date_default_timezone_set" nicht nur wenn du "date()" benutzt? Bei time() alleine ist es glaub nicht notwendig die Timezone zu definieren.
  • Du könntest als Ersatz der Arrays in denen du von a-z und A-Z auflistest, auch

    Please Login HERE or Register HERE to see this link!

    benutzen. Also range('a', 'z').
  • Wenn du eine kleine kompakte Klasse daraus machst (Falls du es noch erweiterst), könnte man vllt das "hässliche" (;-)) global wegmachen.
  • Für was steht die Variable $ckey genau also wo ist der Sinn der Überprüfung vor der FOR-Schleife? :-)
Danke für das Script, sieht ansonsten interessant aus :hi:


Danke für dein Feedback :wub:

1. date_default_timezone_set
Da hast du Recht, hatte vorher noch ne genauere Datumsanzeige drin, die ich dann aber wieder entfernt habe. Timezone_set muss ich noch entfernen, ist ja jetzt nicht mehr nötig

2. Danke für den Array-Range-Tipp! Werde ich editieren..

3. Hatte eigentlich nicht vor, das Ganze zu erweitern, da es in der Praxis eher untauglich ist. Ne Passwortlänge von 5 Zeichen schafft meine Engine noch in einer moderaten Zeit mit diesem Script, aber mehr ist schon zu ressourcenlastig. Falls doch, werde ich's wohl mit ner Klasse versuchen. Wer Interesse hat, kann sich das Script gerne kopiern und selbst dran rumarbeiten^^
Lasse mir gerade ne Wordlist auf meinem Raspberry Pi erstellen und da dauert bei 7 Zeichen ja schon ewig. Leider gibt's ja keinen GPU-Accelerator für PHP :(

4. die Variable $ckey ist ein kleiner Noob- / C&P-Schutz.
if (md5(base64_decode($ckey)) !== $cr): exit('<h3>Hash-Cracking fehlgeschlagen!</h3>'); endif;
Kann natürlich entfernt werden^^ eher spaßeshalber
  • hikhack7 gefällt das

#4
ProHex

ProHex

    Hacker

  • Moderator
  • Likes
    212
  • 219 Beiträge
  • 185 Bedankt
Ich hab hier mal ein ähnliches projekt mal geschrieben:

www.toolbase.bz/board/topic/1522-python-md5-cracker/

wurde mal hier geposted, ich find deins aber weitaus besser
  • python_snippet gefällt das

#5
spamor

spamor

    Leecher

  • Members
  • PIP
  • Likes
    0
  • 1 Beiträge
  • 0 Bedankt
ich würd für sowas kein php benutzen, als scriptsprache ist es für brute attacken (ähnlich wie python) schlicht zu lahm. Brauchbare tools werden eigentlich in c++/c oder ganz selten auch mal in java geschrieben...

edit:
sorry, hatte es nur überflogen du sprichst es ja schon an. Problematisch wird, dass du deinen Webserver für diesen Zweck tunen musst, damit es wirklich funktioniert(welche Hash ist schon in 3 Min geknackt). Zudem beinhaltet md5 aufgrund seiner länge 2^128 möglichkeiten. Du kannst ja mal ausrechnen wie lange es dauert, wenn dein Script tausend hashes die Sekunde schafft - was es nicht tut. Bruten bei der größe schaffen wohl nur leute, die ein richtiges Interesse und vorallem Zeit und Geld haben.

Was bei MD5 eher eine chance auf erfolg hat - wozu du dich aber richtig einlesen müsstest - wäre ein versuch, schwächen im Algo zu finden. Rainbowtables sind - sofern nicht mit Salts gearbeitet wurde auch hilfreich.

Aber noch zu guter letzt: es benutzen nur noch wenige gute coder md5, weils aufgrund seiner kleinen größe deutlich anfälliger für brute-attacken ist als eben größere cyphers...

Bearbeitet von spamor, 22 June 2014 - 17:54 Uhr.




  Thema Forum Themenstarter Statistik Letzter Beitrag

Besucher die dieses Thema lesen:

Mitglieder: , Gäste: , unsichtbare Mitglieder:


This topic has been visited by 50 user(s)


    agressor-85, and6578, andiean75, B1nary, Bad Grandpa, BayernFox, BlackZetsu, bleiregen22, Bragi, breathplayslave, Bypass, Cah0s, Ch!ller, confick.ini, corkscrew, Cube, CyberFlash, DonArox, Dr. Spic, dr.madman, dvbzone, easysurfer, FakeKeyUser, FalkE, Framerater, Gimpos, gutzuu, hikhack7, Hurenpeter, Ich, Iron, Jack_Frost, jack4flash, kiwitone, midn84ever, mr3ee, notinsane, Omnipräsent, OnTheRun, Osed28, ProHex, Sawyer inc, Slixer, spamor, sub0, sys1910, tixe, Toolbase, Xenio, xtrx
Die besten Hacking Tools zum downloaden : Released, Leaked, Cracked. Größte deutschsprachige Hacker Sammlung.