Atac de forță brută

În acest tutorial, atacul forței brute va fi discutat și vor fi menționate câteva instrumente pentru a efectua acest atac. În primul rând, trebuie să spunem despre ce este vorba despre forța brută, deși prin numele său o putem imagina.

Este o tehnică care se bazează pe încercări și erori, este utilizată pentru a obține parole sau pentru a decripta date, această metodă nu caută o strategie inteligentă, ci mai degrabă testează toate combinațiile posibile până când găsește cheia.

Este posibil să obțineți o parolă sau să decriptați orice fișier? Dacă timpul nostru ar fi probabil infinit, dar din moment ce nu este, răspunsul este nu, parole sau taste lungi și cu diferiți factori (majuscule, mici, cifre, caractere speciale), ne-ar lua mult timp să le scoatem prin această metoda (într-o viață nu vom fi ar fi atins).

Putem folosi această metodă pentru a verifica securitatea parolelor sau criptării împotriva acestui tip de atac. Dacă vrei să știi cum să creați o parolă puternică, Vă sfătuiesc să citiți acest tutorial. Un algoritm de criptare vulnerabil la acest tip de atac este DES, opusul este cazul AES, care nu este vulnerabil la forța brută. Cel mai bine este să înțelegeți bine domeniul criptografiei.

Lumea criptografiei

A avea o parolă puternică este primul pas, dar puteți pune, de asemenea, încă un strat de protecție, folosind autentificare cu dublu factor În conturile dvs. (cel puțin cele mai valoroase), astăzi există deja servicii care îl oferă integrat și gratuit, precum Google, Twitter și Linkedin. Aceste sisteme trimit în mod normal un mesaj către telefonul dvs. mobil cu un cod după ce ați introdus parola corectă, astfel încât până când nu introduceți codul respectiv, nu veți mai putea intra în contul dvs.

În special forța brută este adesea combinată cu atacuri de dicționarAcest atac constă în a avea un fișier cu parole mai tipice (oamenii folosesc de obicei cuvinte cunoscute pentru parolele lor, astfel încât să le amintească mai bine) și să le încerce pe toate, până la găsirea cheii sau terminarea parolelor fără succes. Atacul în general este mai eficient, deși dacă folosim mai mulți factori în parola noastră, șansele de succes scad considerabil.

Unelte de forță brută

Ioan spintecatorul

Este open source și gratuit, de obicei îl veți găsi distribuit în cod sursă. Obiectivul său principal este de a găsi parole slabe în sistemele de operare UNIX.

THC Hydra

Acest instrument vă permite să aplicați forța brută la serviciile de autentificare la distanță. Puteți efectua atacuri de dicționar împotriva a peste 50 de protocoale.

meduze

Este un instrument modular, funcționează în paralel cu datele de conectare cu forță brută. Compatibil cu protocoale precum FTP, HTTP, IMAP, SSH etc.

Ncrack

Este un instrument pentru a sparge autentificările de rețea, funcționează rapid. Puteți extinde instrumentul prin crearea propriilor module.

Cain și Abel

Este un instrument destinat recuperării parolelor în Windows, pentru a-l sparge vă permite să folosiți forța brută, dar și atacuri de dicționar și atacuri folosind tabele curcubeu (Rainbow Table).

Voi pune mai jos un cod în Python care obține parole care conțin doar numere dintr-o pagină web, până la 5 cifre, se poate face și cu litere, lungime mai mare etc. Mai întâi vă las cod care servește cereri de postare în PHP:

 
Vedem că nu avem limite de încercări, că utilizatorul și parola acestuia sunt definite chiar acolo (pentru a evita bazele de date și complicațiile la cod), dacă utilizatorul și parola sunt corecte, returnăm un cod 200 și dacă nu un 403.

În continuare las codul Python care este responsabil pentru trimiterea cererilor către codul anterior.

 import http.client, urllib.parsefrom time target time = "/bruteForce/index.php"headers = {" Content-type ":" application / x-www-form-urlencoded "," Accept ":" application / xhtml + xml, text / html; q = 0.9, text / simplu; ",} găsit = Falsepassword = 0home = time () în timp ce parola <= 99999 și nu a fost găsită: parameters = urllib.parse.urlencode ({'user': ' josue ',' pass ': password}) connection = http.client.HTTPConnection ("localhost") connection.request ("POST", target, parametri, headers) response = connection.getresponse () if (response.status == 200): print ("Parolă găsită pentru utilizator josue, es", parolă) print ("A durat: {0: .2f} s" .format ((time () - start))) found = True else: print (parolă) connection.close () parolă + = 1dacă nu s-a găsit: print ("Nu s-a găsit nicio parolă pentru josue")
Acest cod face cererile de postare, în fiecare trecere la buclă tot ce facem este să schimbăm parola și să adăugăm 1 la ea, așa că vom încerca toate parolele posibile de la 0 la 99999 (dacă nu o găsim înainte). Vopsiți toate numerele pe care le găsiți, pentru că așa am vrut-o pentru exemplu, o puteți elimina, pentru aceasta eliminați celălalt. Să rulăm acest cod pentru a vedea dacă găsește parolele.

Primul exemplu pe care îl vom lansa pentru a găsi parola 2087, mai jos este imaginea, puteți vedea că nu îmi iau 18 secunde să o obțin.

Dacă elimin celălalt, astfel încât să nu picteze pe ecran, fiecare număr durează mult mai puțin timp, aici puteți vedea o captură de ecran:

Acum, pentru a doua și ultima încercare, am pus parola 20870, pentru a vedea cât durează de această dată.

Puteți vedea diferența atunci când adăugați încă un caracter la parolă, dar chiar și așa este un moment pe care îl putem aștepta fără probleme, de asemenea, dacă punem fire, timpul ar scădea. De aceea, folosim parole puternice și autentificare robustă în aplicațiile noastre, care nu pot automatiza acest atac.

Dacă doriți să vedeți un exemplu practic în care parola unui zip sau a unui rar este rupt, puteți vizita următorul tutorial:

Întrerupeți parola .rar sau .zip

V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave