Crearea unui fișier de parole personalizat, utilizând BlackWeb și Mentalist

0

Bine ați revenit, dragii mei greenhorn hackers!

Începătorii care învață atacurile brute-force împotriva amprentelor WPA sunt adesea dezamăgiți de limitele listelor de parole implicite, cum ar fi lista RockYou din Kali Linux, bazată pe parole furate. În sistemul de operare BlackWeb nu am adăugat liste de parole (momentan), deoarece suntem conștienți că acestea, în cazul parolelor complexe, sunt inutile. Nu suntem interesați să spargem adresa de mail lui nea Vasile, cel care utilizează parole uzuale. Ținta noastră o reprezintă sistemele persoanelor inteligente.

Știința din spatele brute-force depășește simpla utilizare a acestor liste de parole implicite, permițându-ne să fim mai eficienți prin crearea de liste  personalizate. Utilizând The Mentalist, putem genera milioane de parole posibile bazate pe detalii cu privire la țintă.



Spargerea parolelor este o artă de lungă durată, iar bazându-ne pe o combinație de putere de procesare pentru brute-force și abilitatea de a ne perfecționa lista de parole până la a strânge toate opțiunile posibile bazate pe ceea ce știm despre o țintă.

Multe protocoale de securitate sunt vulnerabile la atacurile brute-force, care la baza lor se bazează pe câteva principii cheie. În primul rând, trebuie să avem permisiunea de a încerca parole diferite de cât mai multe ori, într-un timp foarte scurt. În al doilea rând, trebuie să putem stabili diferența dintre succesul sau eșecul parolei. În al treilea rând, avem nevoie de o listă de parole pentru a le încerca automat foarte repede.

În cele din urmă, parola trebuie să fie prezentă în listă, pentru a avea succes. Pe măsură ce listele de parole sunt mai mari, performanța CPU și GPU devine mai importantă, deoarece viteza la care se pot încerca parolele este accelerată.

Atacul Brute-Force asupra parolelor WPA, SSH, FTP s.a.m.d

Majoritatea rețelelor wireless sunt protejate prin criptarea WPA sau WPA2, care poate fi spartă prin captarea unei ,,amprente” de rețea și prin utilizarea procesorului computerului pentru a forța parola. Pe lângă WPA, protocoalele precum SSH și FTP sunt, de asemenea, vulnerabile la brute-force, deși metodele pot diferi între atacurile de tip online și offline.

Într-un atac online, ne conectăm direct la un serviciu și trimitem încercări de parolă într-un mod care poate fi înregistrat. Un exemplu în acest sens ar fi Reaver sau SSHtrix, care trebuie să fie conectat la rețeaua în care hostul este pornit, pentru a trimite presupusele parole. În aceste atacuri, factorul de limitare este adesea numărul conexiunilor de intrare pe care le poate accepta serverul FTP sau SSH și timpul pe care trebuie să-l pierdem conectat la host, în timpul spargerii.

Într-un atac offline, factorul major de limitare este capacitatea procesorului sau a plăcii video de a încerca rapid parole diferite. Printre exemple se pot număra atacul brute-force asupra unei amprente WPA, un atac pixie dust asupra WPS, după colectarea informațiilor necesare, sau spargerea parolelor dintr-o bază de date furată. În general, aceasta este singura dată când trebuie să ne facem griji cu privire la performanța procesorului GPU sau CPU în timp ce utilizăm brute-force.

Opțiuni cu care putem începe – Liste de parole implicite

Decât să înceapă cu un atac dicționar, un atacator inteligent va căuta mai întâi liste care conțin parole reale. Aceste liste sunt, în general, considerate ca punct de plecare pentru aceste tehnici, deoarece vor acționa împotriva oricui, cu o parolă cu adevărat îngrozitoare sau comună. Dacă atacăm cât mai mulți, ne putem aștepta la rate de succes de aproximativ 15% pentru aceste tipuri de atacuri. Evident, dacă vizăm un anumit cont sau o rețea, șansele de succes sunt aproape de zero, dacă utilizăm această metodă.

Acestea fiind spuse, putem utiliza în continuare aceste liste, în timp ce pregătim un atac mai rafinat pe baza informațiilor ce le avem despre țintă. Motivul pentru care aceste liste sunt eficiente este că ne putem gândi la ele ca la un sondaj statistic despre cele mai frecvente parole pe care oamenii le folosesc de obicei.


Cercetarea OSINT

Din fericire pentru hackeri, o multitudine de informații există online când se încercă spargerea unui anumit cont. Un atac brute-force al unui script-kiddie nu poate fi o amenințare substanțială pentru o organizație care impune utilizarea parolelor puternice. Un atac brute-force bine pus la punct, totuși, poate reduce numărul de presupuneri și poate conține doar parole relativ puternice pe baza informațiilor disponibile despre cerințele țintei și orice parolă. Acest lucru poate face ca un atac brute-force să fie eficient împotriva țintei alese.

Cu unele cercetări, putem furniza date valoroase pentru programele ce creează parole, care iau mai exact informații învățate despre o țintă și generează o listă de cuvinte personalizate, pe baza detaliilor create probabil de utilizator.

Generatoare pentru liste de parole

Există o serie de opțiuni pentru reaalizarea listelor de cuvinte pe lângă un simplu dicționar, iar cel pe care îl vom explora astăzi este Common User Passwords Profiler (sau CUPP). Un program simplu, creat în Python, CUPP este capabil să genereze o listă impresionantă de posibile parole. Alte instrumente, cum ar fi CeWL, permit ca site-urile țintă să fie revizuite pentru cuvinte unice, pentru a utiliza cuvinte ce sunt folosite prin întreaga organizație.

Cu un pic de cunoștințe acumulate din social media și alte documente publice, rularea CUPP în modul interactiv al utilizatorului permite o abordare în stil de interviu pentru a crea o listă de parole personalizate.




Exemplul de mai sus a produs 10.414 de cuvinte în fișierul nostru de testare. Un început minunat, dar nu este suficient pentru a face un atac brute-force efectiv. Cu toate acestea, putem folosi această ieșire pentru a utiliza un creator de parole mai sofisticat, numit și ca un creator de cuvinte, cu scopul de a aplica anumite reguli acestor parole inițiale, pentru a face o listă de parole mult mai lungă.

Creatoare de cuvinte și generare de lanțuri

Un creator de cuvinte creează noi posibile parole dintr-o listă de parole ce o deținem deja, în conformitate cu regulile presetate. Aceasta poate fi o schimbare foarte simplă, de exemplu aplicarea unei singure modificări la sfârșitul fiecărei parole din lista inițială, sau una mai complexă, cum ar fi adăugarea fiecărui număr de la 0 la 9 până la sfârșitul fiecărei parole din lista inițială. Acestea din urmă, ar da 10 noi posibile parole, pentru fiecare parolă care intră în program, astfel încât aceste liste pot deveni foarte lungi, într-un timp destul de scurt.

Pentru a gestiona cu ușurință aceste reguli, vom folosi un program grafic numit Mentalist, ce ne va permite să creăm un “lanț” al acestor reguli pentru a se aplica listei de parole inițiale. De asemenea, putem să adăugăm și alte liste de parole pe lângă lista noastră inițială, cum ar fi cuvintele din dicționarul englez. În general, “nodurile” majore care pot fi aplicate listei cu parole de bază, vor adăuga, prefixa, schimba sau înlocui literele din cuvintele trecute prin acestea.

Click meniu > 1. BlackWeb > 05. Password Attacks> mentalist



După cum putem vedea în exemplul de mai jos, aplicarea a doar câtorva reguli în lanț poate duce la o creștere uriașă a dimensiunii listei de parole. Acest lucru nu este neapărat bun, deoarece va trebui să avem un procesor capabil de a rula aceste presupuse parole. Această listă de parole de peste un miliard de presupuneri, este depășită. Dimensiunea listei depinde de numărul și tipul de noduri pe care le aplicăm, dar vom trece prin fiecare dintre ele.

Pasul 1: Deschidem BlackWeb

Mentalist este ușor de rulat chiar și pentru începători, așa că îl putem descărca pentru Windows, MacOS sau Linux. Cei care folosesc distribuția BlackWeb, îl au deja instalat.

Pentru utilizatorii BlackWeb, CUPP este deja instalat în distribuția noastră. Cei care folosesc o altă distribuție, va trebui să îl descarce de pe github sau de pe serverul nostru și să îl instaleze (indiferent că aveți Kali Linux sau Parrot).



Click meniu > 1. BlackWeb > 05. Password Attacks> cupp

Pasul 2: Realizarea listei inițiale

Odată ce am descărcat CUPP, vom fi gata să utilizăm datele pe care le-am adunat despre o țintă pentru a genera o listă personalizată. Navigăm la directorul CUPP, ce a fost clonat prin tastarea cd CUPP în fereastra terminalului. Apoi, tastăm ./cupp.py -i pentru a rula CUPP în modul interactiv. Vom vedea o serie de interogări care solicită informații despre obiectiv. Dacă nu le știm, putem trece peste întrebarea specială, dar este mai bine să răspundem la cât mai multe întrebări pentru care putem găsi informațiile.

Imediat ce acest lucru este complet, ieșirea ar trebui să fie un fișier text cu mii de posibile parole. În timp ce acesta este un început minunat, este timpul să ne extindem presupunerile cu Mentalist.

Pasul 3: Realizarea unui lanț cu Mentalist

Pentru a începe, deschidem aplicația Mentalist. Odată ce vedem fereastra GUI, dăm click pe plus, la nodul “Base Words” și vom vedea opțiunea de a adăuga un fișier personalizat. Selectăm “Custom File”, apoi deschidem fișierul TXT pe care l-am creat cu CUPP. De asemenea, putem șterge nodul implicit al dicționarului, dând click pe butonul minus din partea dreaptă a acestuia.


După ce avem cuvintele de bază adăugate din CUPP, putem începe să adăugăm nodurile noastre. Pentru a crea un lanț, va trebui să aplicăm toate regulile pe care am dori să le aplicăm succesiv în paradigmele noastre. Putem explora cele patru tipuri principale de noduri pe care le putem adăuga, făcând click pe butonul plus din colțul din dreapta, sus. Acest lucru ne va oferi o listă de modificări, înlocuire,  sau adăugare.
Pentru primul nostru nod, putem aplica un nod “Case” pentru a modifica cazul parolelor generate. După selectarea nodului, putem face click pe butonul plus de lângă nodul pe care l-am creat pentru a vedea o listă de opțiuni. Avem posibilitatea de a modifica litere mari sau mici în moduri diferite. Aici vom seta prima literă cu majusculă, iar următoarele litere vor fi mici. Deoarece această operație creează doar o singură ieșire pentru fiecare cuvânt din lista de bază, nu vom vedea încă dimensiunea fișierului.
Apoi, putem adăuga un nod “Substitution”, printr-un nou click pe pictograma plus din colțul din dreapta sus. Acest lucru ne va oferi opțiunea de a înlocui literele, iar în acest caz, vom alege să înlocum literele “i” și “a” pentru omologul lor leetspeak.

În cele din urmă, putem adăuga un nod “Append”, care va pune ceva la sfârșitul termenilor noștri. Apăsând din nou pe pictograma plus de lângă nodul pe care l-am creat, vedem că există multe opțiuni preinstalate pentru ceea ce putem adăuga în lanțul nostru.

Am produs o listă cu multe rezultate! Acest fișier conține parole probabile, setate de ținta noastră. Deși acest lucru poate fi ok pentru unele scenarii, o putem comprima. Pentru a salva lista de cuvinte, dăm click pe pictograma “Process” din colțul din dreapta sus și selectăm dacă dorim să ieșim din lista de parole.



După ce salvăm lista finală, am creat un set mare, personalizat de posibile parole, adaptate pentru o anumită țintă. Această listă de cuvinte ar trebui să fie mult mai eficace la brute-force, dacă ținta o cunoaștem.

Cum să ne apărăm de un atac brute-force inteligent

Aceste atacuri vizează utilizatorii care încearcă să creeze parole mai puternice utilizând detalii din jurul lor, care pot fi ușor memorate. Folosind detalii cum ar fi numele animalelor de companie sau de familie, date importante, sau o altă parolă “de bază”, care pot fi cercetate, un creator de cuvânt poate crea multe variații diferite folosind aceeași parolă de bază, crescând rata de succes al unui atac brute-force.

Pentru a ne apăra de un astfel de atac, nu ar trebui să alegem niciodată o parolă derivată din detalii ușor de cercetat, mai ales dacă adăugarea unui număr sau schimbarea unei litere (a=@) este singurul lucru ce ne modifică parola. În schimb, ar trebui să alegem un acronim pentru o frază lungă pe care ne-o putem aminti, sau să utilizăm un serviciu care ne creează o parolă lungă și complexă.

Este ușor de realizat o listă de parole personalizate ce cuprinde câteva milioane de parole, bazate pe detaliile ce le avem despre țintă. Lucrul acesta necesită doar puțină cercetare.

Cam atât cu acest tutorial. Nu uitați să reveniți pentru mai multe ghiduri. Dacă aveți nelămuriri, secțiunea comentarii vă stă la dispoziție.

Până data viitoare, să ne citim cu bine! 🙂


 

Choose your Reaction!
Leave a Comment

Your email address will not be published.

Opțiunea copy-paste a fost dezactivată pentru acest site.