This is an old revision of the document!
[1a] Realizați un md5 pe string-ul whoareyou folosind md5sum.
Hash-ul obținut trebuie să fie a46601d9f660704eb28d1ce17ac1fae4. Asigurați-vă că obțineți același rezultat.
[1b] Intrați pe CrackStation și introduceți hash-ul vostru. Veți observa că el a fost deja spart.
[1c] Generați un string de 10 caractere random ca în exemplul de mai jos:
student@uso:~$ head /dev/urandom | tr -dc A-Za-z0-9 | head -c 10 ; echo '' oargwZRgEv
[1d] Folosiți string-ul generat mai devreme ca Salt pentru mesajul whoareyou. În cazul din exemplu, s-ar fi realizat md5-ul pe oargwZRgEvwhoareyou
[1e] Încercați pe CrackStation să spargeți acest nou md5. Observați că un Salt întărește securitatea unui hash.
Pe Linux, putem genera parole folosind utilitarul pwgen:
student@uso:~$ pwgen
ceigie4E phie3fuG ooQua8ch Quochu7A Wi2iesha fiena3Qu xohWah7w nahte9Ao
Caem6Eis Jeiquo2f phahM1je oLou6ohb aishae2O bo1Eishu PhugeS1z Tang6oox
Gaif4aij xoh1Evoa Eipoax7A ADi5Hohx ahJ8aida Aef0och4 iuD7oa3y Tatoo8po
Aephuit2 Segh9gah usaif4Ah Oex5quoo Thei9kae aoyuPh0F iu2vi3Ph aipai3Ow
Oof4Tei9 Naing5Ru nee9geiN noosh7Fo aF7ae8va zoo0IT7w uoj2Sie8 Zooghee0
........
[2a] În modul default, pwgen generează parole ușor de memorat. Generați o parolă greu de memorat, sigură. Hint: man pwgen
[3a] Folosind pwgen, generați o parolă de 80 de caractere, singură pe linie, fără vocale, cu cel puțin o majusculă și fără să conțină numere. Hint: man pwgen
Putem folosi ssllabs pentru a verifica certificatul unui site HTTPS.
Introduceți Hostname-ul youtube.com și observați ce notă primește:
Introduceți apoi Hostname-ul expired.badssl.com ce are certificatul expirat:
ssllabs este un bun utilitar pentru a verifica dacă un site este sigur sau nu.
/home/student/uso-lab/10-sec/support/nice-to-know.
Tehnica de brute-force presupune încercarea oricăror combinării posibile de caractere în încercarea de a sparge o parolă. În cazul nostru, vom lucra cu un zip.
Dacă parola este suficient de lungă (peste 10-12 caractere) atunci ea este considerată relativ sigură pentru un atac de acest tip întrucât va dura mult prea mult găsirea parolei corecte, chiar cu cele mai puternice CPU-uri din prezent.
Vom încerca să spargem parola arhive zip secret_brute_force.zip. Pentru a face acest lucru, vom instala utilitarul fcrackzip:
student@uso:~$ sudo apt-get install fcrackzip
Știm faptul că arhiva are o parolă de maxim 4 caractere, deci este fezabil să rulăm un atac de tip brute-force:
student@uso:~/.../10-sec/support/nice-to-know$ fcrackzip -v -l 1-4 -u secret_brute_force.zip found file 'flag.txt', (size cp/uc 34/ 22, flags 1, chk 6543) PASSWORD FOUND!!!!: pw == fd7 student@uso:~/.../10-sec/support/nice-to-know$ unzip -P fd7 secret_brute_force.zip Archive: secret_brute_force.zip extracting: flag.txt student@uso:~/.../10-sec/support/nice-to-know$ cat flag.txt USO{viața_pe_internet}
Argumentele comenzii fcrackzip sunt următoarele:
-v → verbose -l 1-4 → atac de tip brute-force cu lungimea parolei între 1 și 4 caractere -u → verifică parola prin încercarea de a dezarhiva arhiva
Asemănător exemplului de mai sus, avem în același director arhiva zip secret_wordlist.zip. Deoarece parola este suficient de lungă, ea nu poate fi spartă folosind un atac de tip brute-force.
Poate fi însă spartă folosind un dicționar de cuvinte. fcrackzip are opțiunea de a încerca parole dintr-o listă (numite wordlist). Dacă parola arhivei se află în lista de cuvinte, atunci ea va putea fi spartă.
5gangmoduavion?? ??), multe persoane folosesc parole simple pentru a-și proteja datele personale.
[2a] Spargeți parola arhivei secret_wordlist.zip folosind dicționarul wordlists.txt. (HINT: man fcrackzip sau Google)
Atacatorul Trudy a reușit să obțină acces la calculatorului studentului Vladimir. Trudy a capturat tot traficul pe care Vladimir l-a făcut în rețea în captura de rețea capture.pcapng și va încerca să găsească date care l-ar putea interesa. Pentru acest lucru, el instalează Wireshark rulând comenzile următoare:
student@uso:~$ sudo add-apt-repository ppa:wireshark-dev/stable student@uso:~$ sudo apt-get update student@uso:~$ sudo apt-get install wireshark
După ce s-a instalat, el pornește Wireshark:
student@uso:~$ wireshark
Deschide apoi captura de rețea capture.pcapng în Wireshark folosind File → Open:
Vladimir a navigat mult pe internet și deci a generat mult trafic. Trudy știe că el a intrat pe 2 site-uri care îi pot fi de interes aavtrain.com și acs.curs.pub.ro.
Pentru început, Trudy află adresa ip a site-ului aavtrain.com:
student@uso:~$ ping aavtrain.com PING aavtrain.com (192.185.11.183) 56(84) bytes of data. 64 bytes from pss24.win.hostgator.com (192.185.11.183): icmp_seq=1 ttl=128 time=148 ms ......
Acum că știe adresa IP a site-ului, dorește să vadă în Wireshark doar pachetele schimbate cu această adresă IP. Pentru a face asta, el aplică un filtru în Wireshark, ip.addr == 192.185.11.183 și apasă Enter:
Acum că vede doar informațiile legate de aavtrain.com, Trudy observă că Vladimir a făcut un request de POST pe acest site. Request-urile de POST se fac de multe ori în cazul unei pagini de login. Pentru a investiga, Trudy urmărește traficul HTTP astfel: * Click-dreapta pe request-ul de POST → Follow → HTTP Stream:
student_vladimir
Trudy vede în clar informațiile trimise de Vladimir la Login:
userul:
parola: supersecretpasswordvladimir
141.85.241.51
Trudy dorește acum să afle și contul de acs.curs.pub.ro. Află adresa IP că mai sus: , filtrează după ea în Wireshark : ip.addr == 141.85.241.51'', găsește requestul de POST și urmărește traficul TCP similar ca mai sus:
De data aceasta, Trudy nu poate să extragă nicio informație.
Motivul este că acs.curs.pub.ro folosește HTTPS, deci întreg traficul este criptat. aavtrain.com folosește HTTP, fapt ce îl face vulnerabil la atacuri de tip Man-in-the-middle, adică exact ce a făcut Trudy.