de gestionare a parolelor sql-server pentru hacking

SQL Server utilizează o funcție pwdencrypt nedocumentat () pentru a crea un hash parole de utilizator, care apoi sunt stocate în baza de date principală. Cu alte cuvinte,
- parole cripto și criptate.
Acestea pot fi obținute printr-o simpla interogare ca
acestea sunt stocate într-o bază de date convențională:

selectați parola de la master.dbo.sysxlogins unde
name = 'sa'

parola hash arata ceva de genul:

trebuie să spun pare teribil ... Să vedem, ce afectează formarea sa:

Încercați, de exemplu, bruiază parola „foo“.
Acest lucru se face cu:

Ei bine, dacă încercați din nou, veți obține câteva secunde:

Ușor de a vedea că vom obține un hash diferit, ceea ce înseamnă că hash este dependentă de timp. Astfel, două sau Bole utilizatorii pot avea aceleași parole, dar parolele hash-uri vor fi diferite.

Acum, să încercăm să cripteze „AAAAAA“:

Dacă aruncăm o privire mai atentă în hash rezultat, acesta poate fi împărțit în patru părți:

0x0100
84449305
43174C59CC918D34B6A12C9CC9EF99C4769F819B
43174C59CC918D34B6A12C9CC9EF99C4769F819B

Iar a treia și a patra parte, suntem absolut identice. Acest lucru se datorează faptului că, din motive necunoscute, parola este stocată de două ori: prima dată „ca atare“ (adică, sensibilă) și a doua oară - cu majuscule. Deoarece în exemplul nostru parola originală a constat în întregime din litere mari, rezultatul „dublu salva“, avem exact aceeași parte a hash.
Ipotetic, reduce semnificativ
în timp ce forță brută, așa cum este necesar să se rezolve
doar litere majuscule.

Dar nu afectează timp hash direct? Răspunsul este - nu. Timpul () funcția creează un punct de pornire pentru () funcție, care generează două numere aleatoare srand. Aceste numere sunt combinate (cu mare probabilitate se poate presupune, de asemenea, că aceste numere sunt date și pentru „varianta abreviat“) și sarea obținută, care este ulterior utilizat în „producția“ hash.

Parola este convertit la Unicode și adăugat ea sare. Apoi totul trece prin advapi32.dll funcția de criptare - Rezultatul este un „al treilea“ hash (așa cum am văzut în paragraful cu privire la impactul registrului).
Apoi parola este convertit în caz de sus și a spus manipulare repetată - get „a patra“, parte a hash.
În continuare, „adunare“, a versiunii finale a hash, care vor fi stocate în baza de date:

Ia antetul neschimbătoare:

Apoi sarea, care a fost utilizat pentru criptarea parolelor:

Al treilea și al patrulea aspect - în mod direct parola în sine (caz neschimbat și superioară, respectiv):

Totul! Se pare același, urât și teribil hash:


Cum este identificarea

Utilizatorul introduce un cuplu de utilizator / parolă.
În primul rând există o verificare pentru prezența utilizatorului cu numele de utilizator. Dacă testul este de succes și există utilizatorul, din sarea hash corespunzătoare extrasă (a doua parte a hash) și introdus de utilizator parola crypto folosind această sare. Apoi, rezultatul obținut este comparat cu hash în baza de date. În cazul în care utilizatorul are acces, în caz contrar - este să vă amintiți parola ...

Nu este clar de ce parola este stocată în hash de două ori - după ce parola hash-ului în cazul în sus, atacatorul are capacitatea de a reduce în mod semnificativ volumul de muncă: la începutul „părți“ parola în registrul de sus și de a afla ce sunt folosite simboluri, și apoi doar pentru a inspecta toate combinațiile acestor litere mari și mici. Astfel, volumul de muncă pe algoritmul în zeci, sute și chiar mii de ori (depinde de lungimea parolei) este mai mică decât atunci când încercați să sparge parola registru sensibile după cum se menționează în „cap“.

program de consolă a fost scris pentru realizarea practică a acestei idei, pe care le-am enumerat, si oferiti
(A fost foarte util pentru a fi în măsură să analizeze și listarea
pentru a înțelege modul în care programul - cu toate acestea
este, ca de obicei, la alegerea dvs.):

Există, de asemenea, o versiune non-consolă pirolizei. Creatorii sai susțin că este mai rapid ... dar ea a plătit, și nu le place să plătească ...

Arată acest articol unui prieten:

articole similare