Hét vraag- en antwoordplatform van Nederland

Hoe kan je een hash bruteforcen?

Wanneer een wachtwoord gekraakt wordt door een bruteforce methode, wordt een input vergeleken met een gehasht wachtwoord (er zijn ook andere methodes, maar daar gaat de vraag niet over).
Maar hoe wordt een wachtwoord gehasht? Is daar een algemeen algoritme voor? Zo ja, dan snap ik dat een bruteforce dit kan achterhalen. Maar als er meerdere manieren zijn om een hasht wachtwoord te maken, krijg je dan met een bruteforce methode meerdere uitkomsten? Of kan je aan de hash zien welke encryptie gebruikt is?

Thecis
10 maanden geleden
in: Software
915

Heb je meer informatie nodig om de vraag te beantwoorden? Reageer dan hier.

Antwoorden (1)

Een hash heeft een vorm en een opmaak en wordt bepaald door de hashing methode.
Je zult eerst moeten detecteren welke hashing methode gebruikt is. Enkele veelgebruikte hash-algoritmen zijn MD5, SHA-1, SHA-2, NTLM en LANMAN.

Als een hacker een lijst met wachtwoord hashes heeft bemachtigd dan volstaat vaak het opzoeken van de hash in een zogenaamde “hash table”. Een hash table is feitelijk een “dictionary” maar niet met “plaintext” wachtwoorden maar met wachtwoorden welke gehashed zijn volgens de gebruikte hashing methode. Op die manier kan de hash opgezocht worden in de hash table en wanneer deze gevonden is beschik je meteen over het juiste (leesbare) wachtwoord.

Hash lijsten met hashes welke geconstrueerd zijn middels salting zijn een stuk lastiger. Om hier een leesbaar wachtwoord uit te achterhalen wordt vaak gebruik gemaakt van een zogenaamde “rainbow table”. Een rainbow table is vaak ontzettend groot, afhankelijk van het aantal karakters en de gebruikte karakters. Een rainbow table werkt met chains ofwel kettingen. Deze chains worden gemaakt met de “reduction” parameter welke feitelijk een “hash-to-plaintext” functie is. Let op hiermee wordt de hash niet omgezet in een leesbaar wachtwoord maar worden er delen van de hash afgehaald en vervolgens wordt het overgebleven deel terug omgezet in een leesbaar wachtwoord. Je kunt een plaintext wachtwoord dus hashen, reducten (een deel eraf halen), weer hashen, reducten, hashen etc. Meestal vinden er 3 reductions in een chain plaats maar dit kunnen er ook meer zijn. De rainbow table bewaart alleen je beginpunt (het plaintext wachtwoord) en het eindpunt. Vervolgens ga je een hash opzoeken in de “eindpunt” kolom van de rainbow table. Als de hash gevonden wordt dan weet je het wachtwoord. Als de hash niet gevonden wordt haal je er een deel af (reduction), maak je er plaintext van en hash het de nieuwe plaintext weer. Deze hash zoek je weer op. Dit doe je net zo vaak tot je een match hebt. Als je een match hebt bevind het werkelijke wachtwoord zich in de chain waarin deze gevonden is. Nu wordt de chain opnieuw uitgevoerd en worden alle mogelijke wachtwoorden genoteerd. Deze worden vervolgens geprobeerd tot het werkende wachtwoord gevonden is.
(Lees meer...)
SimonV
10 maanden geleden

Weet jij het beter..?

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

0 / 2500
Gekozen afbeelding