Hvad ' er forskellen mellem disse MD5-hashes?

Hvad er forskellen mellem dette format:

Hash found: admin:$1$$oLN1UCc1Y3T30QkMcKMSx0 

og følgende:

5f4dcc3b5aa765d61d8327deb882cf99 

Og også

Hvordan omdanner man det første hash-format til det andet?

Tak i forhånd.

Kommentarer

  • Jeg tvivler på, at det første eksempel bare er en hash. Det ser ud til, at det indeholder brugernavnet i den klare og muligvis andre oplysninger Hvor fik du det? Det er ikke rigtig muligt at genopvaskes uden at kende klartekstværdien.
  • At ' er hvad jeg ' undrer mig også. Men jeg fik det efter at have kørt routereploit på min router ved hjælp af Kali Linux, og output siger nøjagtigt, at > > Hash found: admin:$1$$oLN1UCc1Y3T30QkMcKMSx0. Jeg fandt også en lignende sag her link

Svar

Det første eksempel ligner en skyggefil form at: ID (admin) Algoritme (1 = MD5) Salt (none) Hash (oLN1UCc1Y3T30QkMcKMSx0), med hash i det, der ser ud til at være Base64-format.

Den anden (5f4dcc3b5aa765d61d8327deb882cf99) ser ud til at være en hex-streng på 128 bits, der er i overensstemmelse med at være en MD5-hash som godt.

Imidlertid konverterer begge til binær & og derefter tilbage til deres modsatte formater, de to hasher stemmer ikke overens:

  • Base64 for den binære værdi repræsenteret af hexstrengen (5f4dcc3b5aa765d61d8327deb882cf99) er X03MO1qnZdYdgyfeuILPmQ.

  • Omvendt er den hex-streng i base64-hash (oLN1UCc1Y3T30QkMcKMSx0) a0b3755027356374f7d1090c70a312c7.

     ------- Edit ----- 

Som user1686 påpegede: oLN1UCc1Y3T30QkMcKMSx0 er MD5crypt, hvilket er tusind runder MD5 med ekstra i hver runde. Hvis begge disse hashes faktisk er fra samme adgangskode, skal det være muligt at konvertere den lige MD5-hash til den ækvivalente no-salt MD5Crypt ved at omgå den første MD5-beregning i MD5Crypt og fodre den hash i stedet for adgangskoden.

Svar

Delen efter den sidste $ er base64-kodet, hvilket er en forholdsvis kompakt måde (fire tegn bliver tre byte) til at repræsentere binære data som almindelige tegn, der kan udskrives (ikke ASCII-kontrolkoder eller noget, der kræver den høje bit). Den anden hash er simpelthen hex-kodet, hvilket er mindre effektivt (fire tegn bliver to byte), men lettere at læse, især for programmører (der bruger hex hele tiden).

EDIT: Derudover er den første algoritme er næsten helt sikkert md5 crypt , som er en itereret MD5 med nogle ekstra ting udført. Således vil det ikke producere den samme output som base MD5 for en given input. Og vi ser faktisk, at det ikke gør det: hvis du konverterer delen efter den sidste $ til hex, kommer a0b3755027356374f7d1090c70a312c7 ud. Det kan også (ved mindst delvist) skyldes, at jeg tror, md5crypt bruger en brugerdefineret base64, som har de samme tegn som normal base64 i en anden rækkefølge.

Den første hash er et eksempel på / etc / shadow-adgangskodeformatet. $1 betyder MD5crypt, og manglen på noget mellem de næste to $ tegn betyder, at det er usaltet. Vi har ingen sådan info til det andet; det kunne være saltet eller muligvis en anden adgangskode, en anden hash-algoritme eller begge dele. Det er dog mest sandsynligt, at du er bar MD5 end md5crypt.

Redigeret for at afspejle forskellen mellem MD5 og md5crypt

Kommentarer

  • Selvom det ' er usaltet, er $ 1 $ stadig ikke bare bar MD5 – det ' s md5crypt , som involverer 1000 runder MD5 med nogle andre krydderier tilføjet.
  • Den anden hash er bare md5 (' adgangskode '). echo -n 'password' | md5sum producerer 5f4dcc3b5aa765d61d8327deb882cf99

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *