Toate metodele de hacking MD5

Un pic despre criptografie

criptografie modernă include trei zone: o criptare cheie privată, criptare cu cheie publică și hashing. Astăzi vom vorbi despre ceea ce este hashing și ce mănâncă. În general, o hashing a realiza conversia datelor de intrare de lungime arbitrară în șir de biți de ieșire de lungime fixă. În cele mai multe cazuri, funcția hash utilizată în procesul de autentificare a utilizatorului (parola bazei de date de distribuire este stocată, de obicei în loc de parola) pentru suma de control fișiere, pachete de date, și așa mai departe. N. Unul dintre cele mai cunoscute și mai utilizate pe scară largă este algoritmul hashing MD5.

Primul atac

Toate metodele de hacking MD5
EXEMPLU MD5-ciocnirile hashes

Toate metodele de hacking MD5
masca MD5 Brutus

Folosind algoritmul MD5 în semnătură digitală nu este acceptabilă din cauza stabilității insuficiente a acestui algoritm pentru a găsi coliziuni.

Acesta este sfârșitul?

Ighashgpu: hacking pe GPU

Noi folosim metoda de mai sus pentru a sparge un hash special, generat folosind algoritmul MD5. Lungimea maximă posibilă a parolei este de șapte caractere. După ceva timp, parola va fi găsit (qwerty). Acum să încercăm să crape un hash, dar cu puțin diferite condiții. Să hasisul arată d11fd4559815b2c3de1b685bb78a6283, și include litere, numere, caractere de subliniere și are sufixul «_admin». În acest caz, putem folosi forta bruta cu masca, pentru a simplifica sarcina programului:

Aici, parametrul „-u“ vă permite să specificați setul de caractere utilizat în căutare, și parametrul „-m“ setează masca parola. În acest caz, masca este format din șase caractere aleatoare, după care există o combinație de «_admin». ghicirea parolei, deoarece nu există probleme.

Coliziune în criptografie numit două blocuri diferite de date de intrare, pentru care aceeași funcție hash dă același hash. Fiecare funcție a secvenței de ieșire de biți dă o anumită lungime, care nu depinde de dimensiunea datelor originale. Rezultă că există conflicte, pentru orice algoritm hash. Cu toate acestea, probabilitatea ca va fi capabil să găsească o coliziune într-un algoritm de „bun“, aproape la zero. Din păcate sau din fericire, algoritmi de criptare pot conține erori, precum și orice program. Multe funcții hash au fost fie rupte sau va fi în curând. În acest caz, „pauză“ - înseamnă a găsi o coliziune în momentul în care este mult mai mică decât ad infinitum declarat.

Ighashgpu: liste

Acum să încercăm să crape mai multe parole simultan. Să presupunem că ne-a dat peste o parolă bază de date hash-uri. Este cunoscut faptul că fiecare caracter parolă se termină c00L:

Salvați fișierul hashes în encrypted.dat Ighashgpu și a alerga după cum urmează:

După ce fișierul program va apărea în dosarul Ighashgpu ighashgpu_results.txt pentru a sparge parola:

Toate metodele de hacking MD5
Vzlomanykh hashes de encrypted.dat fișier

Ighashgpu: sare

În cele din urmă să le luăm cu hackingul „sărat“ hash-uri. Să presupunem că hash generat de următorul algoritm:

Ca rezultat, am primit următorul hash: 42151cf2ff27c5181bb36a8bcfafea7b. Ighashgpu vă permite să specificați „sare“ în «-asalt» parametru:

Și noi avem încă o dată parola necesară rapid și ușor.

matematică distractiv

Pentru o parolă de 8 caractere compus din primele 126 de caractere ASCII sunt disponibile 63 527 879 748 485 376 combinații posibile. 254 de caractere pentru numărul de combinații posibile este mărită la 17 324 859 956 700 833 536, care nu mai puțin de 2,7 miliarde de ori mai mult decât de oameni de pe planeta. Dacă creați un fișier text care conține toate aceste parole, este nevoie de milioane de terabytes. Desigur, în lumea de astăzi este posibil, dar costul de stocare a fișierului va pur și simplu cer-mare.

MD5 hack în modul turbo

Acum, să trecem de la cuvinte la acțiune și să încerce să sparge un cuplu de parolele HASH prin această metodă.

tabele Rainbow

tabel „Rainbow“ - un tip special de dicționar, care conține un lanț de parole și vă permite să alegeți parola în câteva secunde sau minute, cu o probabilitate de 85-99%.

"Rainbow" hacking

În primul rând, trebuie să decidă cu privire la program. Personal, am nravitsyaRainbowCrack. care este gratuit și rulează atât pe Windows și pe Linux. Aceasta susține algoritm hash patru: LN / NTLM, MD5 și SHA1. Programul nu necesită instalare, despachetați suficient undeva pe disc. După despachetare, găsiți „curcubeu“ tabel cu algoritmul MD5. Nu este atât de simplu: puteți fie să descărcați sau să cumpere sau să generați propriu. Una dintre cele mai mari arhive de mese gratuite disponibile pe site-ul proiectului Tables Free Rainbow. Apropo, tu poate ajuta proiectul în cazul în care clientul descărcat de pe site-ul și să se alăture rețelei internaționale distribuite, care generează un tabel de „curcubeu“. La momentul scrierii acestui articol de pe acest site a fost disponibil tabele 3TB algoritmi MD5, SHA1, LM și NTLM. Dacă nu aveți posibilitatea să se scurgă această cantitate de informații, pe același site, puteți comanda CD-uri cu tabele „curcubeu“. Acum ofera trei pachete: LN / NTLM, MD5 și SHA1 - 200 $ fiecare. Noi generam masa de unul singur. Pentru a face acest lucru, utilizați rtgen de program, este inclus cu rainbowcrack. Este nevoie de următorii parametri de intrare:

  • hash_algorithm - algoritm de hashing (LM, NTLM, MD5 sau SHA1);
  • charset - unul dintr-un set de caractere conținute în fișierul charset.txt;
  • min plaintextlen și plaintextlen max - minim și lungimea maximă a parolei;
  • tableindex, lanț len, chainnum și o parte indicele - «numere magice“, descris în articolul lui Philip Oeshlina bit.ly/nndT8M.

Luați în considerare ultima mai multe opțiuni:

  1. table_index - indicele de masă „curcubeu“, care poate fi folosit pentru a defalcare tabelul în mai multe fișiere. Am folosit 0, deoarece masa mea a constat dintr-un singur fișier.
  2. chain_len - numărul de parole unice într-un lanț.
  3. chain_num - numărul de tupluri într-un tabel.
  4. part_index - un parametru care determină începutul lanțului. Creatorii programului sunt rugați să folosească doar numere (0, am folosit) pentru acest parametru. Acum, rulați generarea tabelului „curcubeu“ pentru MD5:

Apoi, masa de rezultat să fie sortate, în scopul de a optimiza căutarea pentru lanțul de dreapta. Pentru a face acest lucru, executați rtsort.exe:

Toate metodele de hacking MD5
Generarea de tabele curcubeu

«Rainbow» vs tabelul CPU vs. GPU

Cred că ai observat cât de repede Ighashgpu capabil de a sparge md5 rosturi ale lemnului forță brută, și că rainbowcrack face chiar mai repede în cazul în care există o bună masă de „curcubeu“. Am decis să compare viteza acestor programe. Pentru puritatea experimentului am folosit un program de MDCrack, care efectuează parola brute pe CPU (și este unul dintre cele mai bune în acest tip de program). Iată ce sa întâmplat ca un rezultat pentru GPU (nVidia GeForce GT 220M), CPU (Intel Atom N450, dual core) și "curcubeu" de tabele:

Toate metodele de hacking MD5
interior de masă curcubeu

bit.ly/vEhdir - adăugarea unui nou algoritm rainbowcrack hash folosind API-ul.

bit.ly/vTSB9K - descrierea formatului de masă „curcubeu“.

în loc de o concluzie

În final, aș dori să vorbesc un pic despre protejarea parolele. În primul rând, nu utilizați algoritmi de hash sensibile, cum ar fi MD5 sau SHA1. În momentul de față, este în valoare de având în vedere utilizarea unei funcții hash criptografice SHA-3 sau SHA-2 (așa cum publică standardul relevant). În al doilea rând, nu utilizați în mod direct o funcție hash. Întotdeauna încercați să utilizați „sare“ și de a combina diferite algoritmi. Și în al treilea rând, pentru a alege parole complexe lungime arbitrară de cel puțin opt caractere. Desigur, nu te va proteja de jaf la 100%, dar cel puțin a face viața dificilă pentru infractori.

Arată acest articol unui prieten:

debugermd5

De multe ori numele este deja cunoscut (deoarece este necesar să se arate salut), atunci nu este potrivit ca sare. Parola + sare nu este o metodă foarte eficientă de a găsi o coliziune în întregul hash nu este dificil. Internetul este plin de soluții gata făcute. Cu toate acestea, există un leac și de la coliziuni. 1) Dacă este o parolă simplă în baza de date, care este verificată prin compararea valorilor. Foarte simplu „hash parola terminat cu vârfurile tăiate“ + „Foarfecă terminat sare hash". De exemplu: nume de utilizator ([2804e0bda79bd8b5] 016878442b110b95), parola (749789e4982b0c56 [3f6729aac100a614]) = [2804e0bda79bd8b5 + 3f6729aac100a614] Desigur, acest lucru, de asemenea, fac parte din valorile hash, dar având la îndemână doar o jumătate de hash nu va ști niciodată valoarea lui Easten! Va apărea ca un hash convențională de 32 cifre. 2) În cazul în care, în viitor, aveți nevoie pentru a decripta datele pot sugera următoarea soluție (mă grăbesc să rețineți că această metodă uneori complică căutarea de coliziuni, deoarece acestea vor trebui să aranjeze simboluri în locuri): în plus față de parola nevoie de 2 câmpuri pentru introducerea numerelor. hash Ready (simbol 32) este împărțit în blocuri de primul câmp - 2,4,8,16,32; al doilea număr va corespunde predefinit, ordinea de amestecare. Cu toate acestea, este de remarcat faptul că, în acest fel este mai bine pentru a cripta cuvinte individuale. În caz contrar, este posibil să aveți mai târziu probleme cu deshefratsiey. Dacă am chemto greșit corectați-mă!

debugermd5

Pe baza celor de mai sus, putem crea camera de chat în mod condiționat închisă folosind localStorage. Forma deschisă este transmisă în fiecare cuvânt hash este Shuffle. Principala dificultate mi se pare hashes de bază și cuvintele lor corespunzătoare, dimensiunea care poate depăși 160.000 de cuvinte, și ar trebui să fie încărcate o dată la începutul chat. Browser-ul nu va fi ușor de lucrat cu ea.