PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : md5 hash (salted)



II Pichy II
03.08.2008, 21:22
hey,
ist es irgendwie möglich einen md5 hash (mit salt) zu entschlüsseln?

hier ist der md5 und der salt

((Md5 : Salt)

2b2134d6bb8bd37a83ffd17c2e3ddd21d19a7c73 : 2b44

Mfg

II Pichy II

Tix
03.08.2008, 21:46
von wo ist der hash ? vbulletin ? wbb3 ? oder wo ?

II Pichy II
03.08.2008, 21:52
von wo ist der hash ? vbulletin ? wbb3 ? oder wo ?

Powered by SMF 1.1.4 | SMF � 2006, Simple Machines LLC

36c
04.08.2008, 08:10
Das ist nur leider kein MD5 sondern ein SHA1

SMF Code:
$user_settings['passwd'] = $sha_passwd;
$user_settings['passwordSalt'] = substr(md5(rand()), 0, 4);

Wobei ein 4 Stelliger Salt für meinen Geschmack etwas zu kurz ist.

II Pichy II
04.08.2008, 08:33
ah ok sorry da hab ich mich vertan
kann man das denn irgendwie entschlüsseln?

zig81
04.08.2008, 09:24
Ein 4 Stelliger Salt ist doch lang genug. Sofern er aus vielen verschiedenen Zeichen bestehen kann, gibts da genug Variationen.

Es kommt halt nur drauf an, wie er eingesetzt wird.
Wenn er wie bei bigwareshop direkt an den plain gehängt wird, bringt es natürlich nichts.
Da kann man den Hash wie einen unsalted behandeln.

Wenn er wie bei vBulletin an den Hash des plaintexts gehängt wird und das ganze nochmal gehasht wird, ist das schon ziemlich gut.

@II Pichy II
Ich bin mir nicht sicher wie bei SMF der Hash generiert wird. Da hat sich in den letzteren Versionen glaube ich auch was geändert. Und eigentlich dachte ich immer, bei SMF ist der salt der username.

Such mal per google, ob du was rausfindest.
Meiner Meinung nach müßte es so aussehen: md5($plain.$salt) bzw. sha1($plain.$salt)


Ps.: Ja bei ($plain.$salt) bringt der salt natürlich nicht viel wie ich oben beschrieben hab.

necory
04.08.2008, 09:27
sha1($username.$pass)

zig81
04.08.2008, 09:34
Ja genau. Hab nachgesehen und der salt wird vorne angehängt und nicht hinten.
Und der salt ist eben der username.

Nur frag ich mich dann woher er den salt hat^^

r0nny
04.08.2008, 11:21
die geschichte mit dem salt wirkt nur rainbowtables und lookup
dbs entgegen (eben allen pre-computed methoden) und da langen
die 4 zeichen, egal wo und wie angehängt.

Anniyan
04.08.2008, 11:30
aber ist das möglich zu knacken?

zig81
04.08.2008, 11:57
und da langen
die 4 zeichen, egal wo und wie angehängt.

Stimmt nicht ganz.
Sobal der salt vorne oder hinten an den plain angehängt wird und das ganze einmal gehast wird, ist es im Endeffekt nur ein verlängertes Passwort.

Dann ist die Chance recht gut, dass man das Passwort in onlinedb's oder per Rainbowtable etc. crackt.
Beim bigwareshop sind das z.B. nur 2 Zeichen was ja noch leichter ist.

Natürlich ist auch ein pw normaler Länge etc. gemeint.

Sobal der salt an einen Hash angehängt wird wie bei vBulletin z.B. der Fall, ist die Chance einen solangen plain (hash + salt noch dazu) in einer onlinedb zu finden oder per rt's zu cracken natürlich Nahe null.

Aber wie du ja schon andeutest, ist es natürlich möglich diese durch bruten zu cracken. Aber es wird eben erschwert.
wbb3 und phpBB3 sind da z.B. kein Zuckerschlecken mehr.

II Pichy II
04.08.2008, 12:17
Nur frag ich mich dann woher er den salt hat^^

der war in der datenbank mit eingetragen.

r0nny
04.08.2008, 12:22
pw mit 7-8 zeichen + 4 zeichen salt = 11-12 zeichen, darunter auch ein upper char (pws sind ja auch capitalized) und numbers.
also mind. mixalpha-numeric charset bei rainbowtables mit 11-12 zeichen länge.
versuch dafür mal rainbowtables mit "guter" erfolgsrate zu erstellen.
die ganzen online dbs haben auch nicht ihre ganzen wordlists mit nem salt vorne und hinten mit 4 zeichen á 36 möglichkeiten
(insg. 1679616 möglichkeiten) versehen, weil das selbst bei ner wordlist von 100mb ~160tb an space fressen würde.

zig81
04.08.2008, 12:28
Ich sagte das die Chance besteht und nicht das es super einfach ist die zu cracken.
Dämlich bin ich auch wieder nicht.

Edit//
Achja. Nicht alle benutzen Passwörter mit 7-8 oder mehr Zeichen.
Sehr sehr viele benutzen weit kürzere.

Und deswegen halte ich kurze salts die direkt an den plain gehängt werden für unsicher.

@II Pichy II
Poste doch mal den username dazu

r0nny
04.08.2008, 13:34
Achja. Nicht alle benutzen Passwörter mit 7-8 oder mehr Zeichen.
Sehr sehr viele benutzen weit kürzere.

7-8 ist normal. das liegt sogar noch unter dem durchschnitt
meiner 10k gecrackten md5hashes.
am besten rechnest auch noch bitte alle möglichen zeichen
mit ein.


Aber wie du ja schon andeutest, ist es natürlich möglich diese durch bruten zu cracken. Aber es wird eben erschwert.

durch den salt wird das brute forcen kein bischen erschwert.


Ich sagte das die Chance besteht und nicht das es super einfach ist die zu cracken.


Dann ist die Chance recht gut, dass man das Passwort in onlinedb's oder per Rainbowtable etc. crackt.

die chance ist gleich 0. außerdem bin ich nicht der meinung,
dass "die chance besteht" == "recht gut" ist.

niemand verschwendet terabyte weise den space seiner lookup
db, nur um hashes mit 4 zeichen salt cracken zu können.
sowas wird gebruteforced.

zig81
04.08.2008, 13:49
1. Wie du schon sagst ist der Durchschnitt höher als 7 Zeichen. Das heißt aber nicht das niemand kürzere Wörter nutzt.
Einen Durchschnittswert kann ich dir nicht geben, aber bei 500k kann ich dir aber sehr wohl sagen dass sehr viele Leute sehr schwache Passwörter nutzen.

2. Achso. Also wenn ein Passwort länger wird durch den Salt, bzw. ein Passwort doppelt gehast wurde + Salt, wird es nicht schwieriger den zu cracken? :roll:
Also vBulletin finde ich geht ja noch. Aber wbb3 und phpBB3 finde ich nicht mehr lustig.

3. Entschuldige das ich mich falsch ausgedrückt habe ihn dem Post oben.
Ich versuchs nochmal zu erklären.

Kurzes Passwort + kurzer Salt -> einfach gehasht = nicht sehr sicher.
Z.B. hat 36c vor ner Zeit für jemanden einen bigwareshop hash gecrackt, da der nur einen 2Stelligen Salt hinten dranhängt.

Damit will ich nur sagen, dass die Methode zum generieren + kurzem salt meiner Meinung nach einfach zu unsicher ist.
Egal ob jetzt per onlinedb, rt's oder brute force.

Und was bringt es salted Hashes zu nutzen wenn die Methode zum generieren dieser von vornherein schwach ist?



niemand verschwendet terabyte weise den space seiner lookup
db, nur um hashes mit 4 zeichen salt cracken zu können.
sowas wird gebruteforced.

Kann mich auch nicht erinnern gesagt zu haben, dass das jemand tun sollte oder gar ich selbst.

r0nny
04.08.2008, 14:14
zu 1. du redest doch die ganze zeit von durchschnittlen pws, siehe zitat.


Natürlich ist auch ein pw normaler Länge etc. gemeint.

zu 2. nein, das brute forcen wird nicht eingeschränkt, da alle
wichtigen infos bekannt sind. der salt, die methode wie der
salt im ganzen eingebaut ist. es werden weiterhin alle
möglichen kombinationen durchprobiert wie wenn kein salt
verwendet werden würde.

zu 3. 2stelliger salt != 4stelliger salt
bei nem 2stelligen salt ist die wahrscheinlichkeit viel höher,
dass ein häufig verwendetes anhängsel rauskommt
wie z.B. dass beide stellen mit zahlen besetzt sind oder
gleiche buchstaben etc.


Kurzes Passwort + kurzer Salt -> einfach gehasht = nicht sehr sicher.

stimmt so nicht. das hängt mehr davon ab wie das pw und der
salt ausschauen.

und zu dem zitat wegen tb space verschwenden ...


Dann ist die Chance recht gut, dass man das Passwort in onlinedb's ... crackt.

dabei ging es um einen 4stelligen salt und ein

pw normaler Länge

eine gute lookup db besteht mind. aus ner db mit ~70-90mb.
dann rechnen wir mal die kominationen mit 4stelligem (loweralpha-numeric) salt
vor und hinter jedem wort aus
-> 3359232 kombinationen

ergibt dann ~224-288tb

zig81
04.08.2008, 14:57
1. Durchschnittliche Passwörter liegen meiner Erfahrung nach ca. bei 4 - 6 Zeichen. 7-8 laut dir.
Besonders beliebt dabei: 123456

zu 2.
Keine Ahnung was du für einen Rechner hast, aber meiner kann keine Wunder vollbringen.
Meiner ist in der Regel langsamer bei salted Hashes.
Ist ja auch logisch.
Es muß zumindest der Salt mit einließen beim Hashen und bei vielen wird auch noch ein zweites mal oder mehr gehasht.

3. Stimmt. Hast schon recht. War auch nur ein Beispiel mit dem 2stelligem.
4 Zeichen schützen aber trotzdem nicht davor, dass der Hash nicht gecrackt wird.



stimmt so nicht. das hängt mehr davon ab wie das pw und der
salt ausschauen.

Klar hängt es davon ab. Aber ich hab ja auch nicht ohne Grund "kurzes Passwort" und "kurzer salt" geschrieben.
Ein 4 stelliges Passwort + 4 stelliger salt ist doch nicht sicher genug.


Und zum Rest mit der onlinedb.
Ich sags nochmal. Ich behaupte nicht dass man alle Kombinationen in Db's speichern sollte/kann.
Ist mir schon klar wieviele Kombinationen es da gibt. Brauchst mir nicht vorechnen.

Aber die Chance dass solche Wörter enthalten sind, besteht trotzdem.
Besonders weil bei vielen Seiten/OnlineDbs etc. per rt's, wordlist usw. gecrackt wird. Und die gecrackten Passwörter finden dann auch ihren Weg in die Datenbanken.

Braucht nur jemand anderer vorher an den Hash geraten sein und irgendwo eingetragen haben.
Und das ist garnicht so selten.


Aber genug jetzt. Das artet hier schon bisschen aus, also wars das erstmal von mir.

r0nny
04.08.2008, 15:44
1. Durchschnittliche Passwörter liegen meiner Erfahrung nach ca. bei 4 - 6 Zeichen. 7-8 laut dir.
Besonders beliebt dabei: 123456

liegt wohl daran, dass ab da mit cracken bei dir schluss ist ?!


zu 2.
Keine Ahnung was du für einen Rechner hast, aber meiner kann keine Wunder vollbringen.
Meiner ist in der Regel langsamer bei salted Hashes.
Ist ja auch logisch.
Es muß zumindest der Salt mit einließen beim Hashen und bei vielen wird auch noch ein zweites mal oder mehr gehasht.

der eine hash durchgang mehr muss so oder so bei allen methoden vollzogen werden nur ist das rein eine zeitliche einschränkung bei brute force. rainbowtables oder lookup dbs
ist das problem um welten größer weil unmengen an space
zusätzlich benötigt wird.


3. Stimmt. Hast schon recht. War auch nur ein Beispiel mit dem 2stelligem.
4 Zeichen schützen aber trotzdem nicht davor, dass der Hash nicht gecrackt wird.

die 4 zeichen langen, solange sie nicht bekannt sind.
wenn der salt bekannt ist kann der meintwegen 512 zeichen
lang sein und schützt nicht besser als nen gebet beim
geschlechtsverkehr.




stimmt so nicht. das hängt mehr davon ab wie das pw und der
salt ausschauen.

Klar hängt es davon ab. Aber ich hab ja auch nicht ohne Grund "kurzes Passwort" und "kurzer salt" geschrieben.
Ein 4 stelliges Passwort + 4 stelliger salt ist doch nicht sicher genug.

hier ist ein md5 hash von einer 8 stelligen zeichenkette.

c5cbda7a173e37fe443e8e0ba3267eaf
viel spaß .. sollte ja nicht so lange dauern, gell ?
hängt ja nur davon ab wieviel stellen das pw hat und sonst
von garnichts.


Und zum Rest mit der onlinedb.
Ich sags nochmal. Ich behaupte nicht dass man alle Kombinationen in Db's speichern sollte/kann.
Ist mir schon klar wieviele Kombinationen es da gibt. Brauchst mir nicht vorechnen.

Aber die Chance dass solche Wörter enthalten sind, besteht trotzdem.
Besonders weil bei vielen Seiten/OnlineDbs etc. per rt's, wordlist usw. gecrackt wird. Und die gecrackten Passwörter finden dann auch ihren Weg in die Datenbanken.

rt's kannst du schon bei salts ab 2 zeichen in die tonne
kloppen, wordlists wären die ~250tb space falls pre-
computed und niemand betrieb nen wordlist cracker mit
ruled wie ^[a-z0-9]^[a-z0-9]^[a-z0-9]^[a-z0-9] weils
jahre dauert.


Braucht nur jemand anderer vorher an den Hash geraten sein und irgendwo eingetragen haben.
Und das ist garnicht so selten.

toll. dann steht der hash in ner liste und keiner kann ihn
cracken.[/code]

zig81
04.08.2008, 16:02
Ist schon gut.
Gegen jemanden der auf jedem i Tüpfelchen herumreitet und alles anders verstehen will was ich schreibe, komm ich nicht an.

r0nny
04.08.2008, 16:28
Aber genug jetzt. Das artet hier schon bisschen aus, also wars das erstmal von mir.

?! wohl doch nicht *hust*

necory
04.08.2008, 17:33
wenn man sowas liest denkt man sich nur ob nicht jemand am thema vorbeiredet

r0nny
04.08.2008, 18:31
und dass dazu leute noch abwegigere kommentare abgeben müssen nur um etwas gesagt zu haben

pHySSiX
05.08.2008, 21:19
Aber wie du ja schon andeutest, ist es natürlich möglich diese durch bruten zu cracken. Aber es wird eben erschwert.

durch den salt wird das brute forcen kein bischen erschwert.


dumbshit?

überleg mal...
bruten = passwörter ausprobieren wie ein vollidiot
jetz überleg mal weiter...
annahme: 10 stelliges passwort
nur zahlen
-> 10^10 möglichkeiten
...
angenommen es wär nen salt dabei, den du entweder NICHT kennst, oder nicht weisst wie er verwendet wird... (passwort+salt | salt+pw oder noch unsympathischer)
sagen wir nen salt mit 5 zeichen, was nicht gerade viel ist und durchaus möglich ist!
hätten wir scon 10^15 zeichen, angenommen es wär nen sympathischer salt der auch nur aus zahlen besteht....

dann überleg dir jetz mal wie falsch deine aussage ist:
[ ] bisschen falsch
[ ] ok sorry hab total unrecht
[ ] ich bin soooo dooof sorry

wenn mir nicht glaubst... rechne das mal mit ner "normalen" zeichen zahl...
sowas wie:
mixalpha-numeric + .,;:-_()
sowas wird recht oft verwendet :D

greetz
phy

ps.: kann dir gernen nen hash geben und den salt dazu in plaintext...
du wirst ihn NIE bruten (sagen wir 7 stellig + 5 stelligen salt)

r0nny
06.08.2008, 12:56
also les den ganzen thread am besten nochmal bevor auch du anfängst zu klugscheissen.
ich nehme stehts an, dass der salt bekannst ist.
der salt wird sowieso mit dem hash gespeichert, falls extra einer generiert wird. von daher
ist es ein kinderspiel auch an den salt zu kommen, da man ja an den hash gekommen ist.
und zu der sache mit salt und wie er an das pw/hash konkateniert
wird. wenn du das nicht rausbekommst solltest du deine
arbeitsweise vll mal überdenken.


zeichen zahl... sowas wie:
mixalpha-numeric + .,;:-_()

was solln das sein :roll:


salt dazu in plaintext...

:roll:


du wirst ihn NIE bruten

schon alleine die tatsache, dass die zeit die dazu nötig ist
nicht unendlich ist widerlegt das NIE.
bei mixalpha-numeric-symbol32-space wäre der zeitraum bei
sehr realisitschen 5*10^6 md5 durchläufen pro sekunde
nur ~161 tage lang. so einen zeitraum würde ich niht als
NIE bezeichnen.

pHySSiX
06.08.2008, 13:21
wie gesagt diese 10 zeichen habe ich nur als beispiel genommen um mal aufzuzeigen wie enorm sich der aufwand durch einen salt erhöht.

mit: "mixalpha-numeric + .,;.-_()"
meine ich, dass das statistisch gesehen die häufigsten zeichen in einem passwort sind. es erleichtert schlicht und einfach die anzahl der möglichen zeichen.

und wenn man dann statt 10 zeichen ca 100 zeichen hat, wird das schon etwas länger dauern. und darf bei 7 zeichen + 5stelligen salt auch als UNENDLICH bezeichnet werden. da du es mit 99,999999999%iger wahrscheinlichkeit nicht miterleben wirst, wenn der brute erfolgreich ist.

wären immerhin (ungefähr) 100^13 möglichkeiten
wenn mann bedenkt, dass du 5*10^6 h/s angibst kämen wir auf "ein wenig" als deine maximale lebenszeit...
ohne nachzurechnen vermute ich mal schlicht und einfach 10^12 mal mehr als deine lebenszeit :D
greetz


edit: habs doch noch nachgerechnet...
wären so ca 63 milliarden jahre (mit der annahme von 5*10^6 hashes/s)
wenn man annimmt dass das passwort irgendwo in der mitte der prozedur erraten/gefunden wird, isses immernoch lange genug um es als unendlich zu bezeichnen :D

r0nny
06.08.2008, 14:09
so da du es anscheinend immer noch nicht checkst und weiter
von deiner eigentlichen kritik an meiner aussage abkommst
schreibe ich es nochmal am anfang bevor ich auf deinen post
eingehe.

salts erschweren das brute forcen nicht!
das ist eine tatsache. egal ob mit oder ohne salt.
lediglich methoden die auf pre-computing aufbauen wird
auf den fuß getreten. da mag ein hash mit 2stelligem salt
ab und zu noch gecrackt werden aber spätestens ab 4 stellen
kommt man mit den methoden keinen meter mehr weit.
es muss immer der gleiche aufwand verrichtet werden.
es werden immer die gleichen möglichkeiten durchgetestet
und einfach bei nem salted hash an die möglichkeiten der
salt während der laufzeit entsprechend angehängt.


wie gesagt diese 10 zeichen habe ich nur als beispiel genommen um mal aufzuzeigen wie enorm sich der aufwand durch einen salt erhöht.

und wie erhöht sich nun der aufwand?
garnicht. man muss, ob mit oder ohne salt, die gleiche anzahl
an möglichkeiten durchgehen.


mit: "mixalpha-numeric + .,;.-_()"
meine ich, dass das statistisch gesehen die häufigsten zeichen in einem passwort sind. es erleichtert schlicht und einfach die anzahl der möglichen zeichen.

mir ist schnuppe was du mit "mixalpha-numeric + .,;.-_()" meinst!
erkläre lieber mal was eine "zeichen" zahl ist.
und btw fehlen in deinem charset viel interessantere zeichen
als () nämlich !@*# die häufiger verwendet werden.


und wenn man dann statt 10 zeichen ca 100 zeichen hat, wird das schon etwas länger dauern. und darf bei 7 zeichen + 5stelligen salt auch als UNENDLICH bezeichnet werden.

selbst wenn du sagt, dass der charset aus allen 256 ascii zeichen besteht
dauert es nicht unendlich. dann nehm ich mir eben noch
meine 2 ps3 und die von nem bekannten dazu und brute mit.
4.5*10^9 md5 durchläufen pro sekunde und brauche nur
~185 tage bis das 7 stellige pw vergangenheit ist.

(und kleiner tip: bezeichne nicht alles als zeichen.
verwende mal klarere begriffe was du meinst.
7 zeichen + 5stelligen salt mit 100 zeichen .. ja ne is klar:roll:)


da du es mit 99,999999999%iger wahrscheinlichkeit nicht miterleben wirst, wenn der brute erfolgreich ist.

werde ich innerhalb der nächsten 184 tage mit 99%
wahrscheinlichkeitvon nem auto überfahren?


wären immerhin (ungefähr) 100^13 möglichkeiten
wenn mann bedenkt, dass du 5*10^6 h/s angibst kämen wir auf "ein wenig" als deine maximale lebenszeit...
ohne nachzurechnen vermute ich mal schlicht und einfach 10^12 mal mehr als deine lebenszeit :D
greetz

wie gesagt. man braucht nur hardware zu nehmen die schneller
als die ganzen desktop pcs sind in sachen mathematischer
berechnungen und schon sieht das ganz anders aus.
beziehe bitte auch mit ein, um welchen faktor sich pro
jahrzehnt die geschwindigkeit von prozessoren vervielfacht,
oder meinst du in 10 jahren bruted noch einer auf nem
lumpigen quad core von intel mit 2.66ghz?


edit: habs doch noch nachgerechnet...
wären so ca 63 milliarden jahre (mit der annahme von 5*10^6 hashes/s)
wenn man annimmt dass das passwort irgendwo in der mitte der prozedur erraten/gefunden wird, isses immernoch lange genug um es als unendlich zu bezeichnen :D

s.o.