• 1
  • 2
2007-11-03, 02:26
  #1
Medlem
elgcrews avatar
Låt säga att jag har en databas med md5hash och användarnamn från en publik sida. Alla lösenord är dock saltade och jag känner inte till med vilket salt och hur.
Dock kan jag, eftersom det är en publik sida, registrera en egen användare, med ett känt lösenord, och sen få ut hashen av lösenordet efter att det har blivit saltat.

Är det nån som har ett program för att då kunna bruteforca fram hur lösenorden blir saltade, eller nåt förslag på hur man bäst skulle skriva ett sånt program, och ungefär hur du tycker pseudokoden skulle se ut.

mvh
/elgCrew
Citera
2007-11-03, 02:36
  #2
Medlem
Spejnars avatar
Som jag förstått det kör dem flesta sidor med unika salt så ett bruteforceprogram utan känt salt kommer ta evigheter. Jag kan vara ute och cyklar men du menar väl inte att du ska bruteforca fram mönstret dem saltar efter? Det lär vara "random" också.
Citera
2007-11-03, 02:36
  #3
Medlem
Passwordspro funkar bra till det!
Har du databasen nerladdad så ser du saltet med!
User | Mail | MD5 | Salt brukar det vara!
Citera
2007-11-03, 02:41
  #4
Medlem
Spejnars avatar
Citat:
Ursprungligen postat av Amidi
Passwordspro funkar bra till det!

Nej du kan inte bruteforca fram unika salt, däremot kan du knäcka md5 med kända salt, det är en jävla skillnad.

Han sa precis att saltet var okänt och väldigt få(om någon?) kör med samma salt på alla, det skulle bara vara dumt.

<?php md5($salt . $password); ?> kommer hasha med md5, mecka ihop $salt och $password och dvs göra två lika lösenord unika om salten är unika.
Citera
2007-11-03, 02:49
  #5
Medlem
elgcrews avatar
...

Citat:
Ursprungligen postat av Spejnar
Som jag förstått det kör dem flesta sidor med unika salt så ett bruteforceprogram utan känt salt kommer ta evigheter. Jag kan vara ute och cyklar men du menar väl inte att du ska bruteforca fram mönstret dem saltar efter? Det lär vara "random" också.

Som jag har förstått det, efter dom gångerna jag sett salt och metod, så brukar det ofta vara hash(pass + salt) eller omvänt, och saltet är ofta bara några bokstäver.
Menar inte att jag ska bruteforca fram metoden för att salta, bara prova dom vanligaste och sen kanske a-Z0-9 upp till 5 tecken långt salt.

Sant är som du säger att det tyvärr kan vara hur obskyrt som helst, men värt ett försök.

Har inte heller lyckats få ut något salt från databasen, och det är en sqlinjection än så länge, har inte tillgång till koden, och inte heller hur tabellen ser ut.
Citera
2007-11-03, 03:08
  #6
Medlem
Spejnars avatar
Citat:
Ursprungligen postat av elgcrew
Som jag har förstått det, efter dom gångerna jag sett salt och metod, så brukar det ofta vara hash(pass + salt) eller omvänt, och saltet är ofta bara några bokstäver.
Menar inte att jag ska bruteforca fram metoden för att salta, bara prova dom vanligaste och sen kanske a-Z0-9 upp till 5 tecken långt salt.

Sant är som du säger att det tyvärr kan vara hur obskyrt som helst, men värt ett försök.

Har inte heller lyckats få ut något salt från databasen, och det är en sqlinjection än så länge, har inte tillgång till koden, och inte heller hur tabellen ser ut.

Problemet är att bruteforca utan att köra in salt tar en EVIGHET, vi snackar upper/lower/numeric/special 7 tecken tog 1700dagar om jag inte minns fel, slänger du sen in ett salt där också, wow.

Men om du nu kan SQL-injecta, leta runt lite i databasen, har dem ett unikt salt kommer det ligga i databasen, annars kör dem kanske med samma salt för alla, då gäller det att hitta juste det saltet.
Citera
2007-11-03, 03:13
  #7
Medlem
Spejnars avatar
edit:

Nu är du säkert grym på sql-injects men här lärde jag mig en del nya roliga saker, snackar bland annat om hur man luskar fram layout på databasen/tabeller osv mha information_schema och lite sånt.

http://www.milw0rm.com/papers/174
Citera
2007-11-03, 03:14
  #8
Medlem
AngelHackers avatar
Usch, vilken röra. Om du inte vet hur de saltar eller vad saltet är så kan det bli ett helvete och tidskrävande. Har själv suttit i den båten. Har du testat om saltet är dynamiskt eller om det blir en likadan hash varje gång? Skulle spara lite tid om det nu var så. Sen om det är något eget kodat meck så brukar inte folk vara allt för fantasifulla. ($salt.$password), ($salt.$password.$salt), ($password. $salt.). Kan jag tänka mig är det vanligaste. Sen ska ju även saltet fram som kan ligga i någon fil och vara "HEJKOMOCHHJÄLPMIG!". I feel your pain.

EDIT: skulle nog satsa på att bruteforca salt kolumnen om den nu finns dvs. Tror det är din väg till lycka.
Citera
2007-11-03, 03:15
  #9
Medlem
Spejnars avatar
Fan kom ju och tänka på en sak nu. Om du nu kan få fram ditt eget hash, fan regga två konton med samma lösenord och kolla, då ser du direkt om saltet är unikt eller ej, det hjälper LITE iaf :P

borde väl gå att räkna fram saltet om du har flera identiska lösenord, dock kräver det att han bara saltar en gång, känns jävla overkill dock. Finns lättare sätt.
Citera
2007-11-03, 03:35
  #10
Medlem
elgcrews avatar
Bra tips där med att kolla om det är olika salt, hade jag inte kollat.
Som sagt finns inget sätt ( vad jag vet ) att få fram hur tabellen ser ut. Har provat information_schema, mysql.tables_priv och försökt gissa lite.

Saltet verkar iaf vara statiskt, reggade två olika användare med samma lösenord, plus att jag hittade samma hash flera gånger i databasen, lösenord 12345

Hashet är: e061a578f383731f11ca9928a4279efa om någon har nån ide..
Citera
2007-11-03, 03:36
  #11
Medlem
Citat:
Ursprungligen postat av Spejnar
Fan kom ju och tänka på en sak nu. Om du nu kan få fram ditt eget hash, fan regga två konton med samma lösenord och kolla, då ser du direkt om saltet är unikt eller ej, det hjälper LITE iaf :P

Resultatet kan också bli relativt missvisande, eftersom du/vi/h*n inte vet hur personen salt:at. Visst, han kommer KANSKE att få samma hash, och salten är även den lika MEN det betyder inte att alla andra lösenord använder samma salt.

Sidans utvecklare kanske kör något som:
Kod:
<?php
  
/* E N D A S T   E T T   E X E M P E L */
  
$password "flashback";
  
$salt substr($password0floor(strlen($password) / 2));

  
$hash md5md5($password).$salt );
?>

E D I T:
För att förenkla; Salten ändras beroende på lösenordet, därför kan två användare med samma lösenord få samma hash, även om det inte är samma salt som används till resterande poster i databasen.
Citera
2007-11-03, 03:40
  #12
Medlem
AngelHackers avatar
Citat:
Ursprungligen postat av elgcrew
Saltet verkar iaf vara statiskt, reggade två olika användare med samma lösenord, plus att jag hittade samma hash flera gånger i databasen, lösenord 12345

Då gömmer sig säkert saltet i någon fil för dig. =(

CurtaiN: Tror chansen är rätt liten för det. Är ju en ovanlig metod vad jag vet.
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in