root
folosind comanda student@host:~$ sudo su
host
) folosiți comenzile următoare din contul utilizatorului root
de pe stația host
(puteți da copy/paste la comenzi în terminal):root@host:~# update_lab --force root@host:~# start_lab mitm
Ctrl+Shift+t
), și conectați-vă, din nou, la mașina virtuală folosind comanda ssh
de mai sus.red
, green
și blue
).go
(ex. go red
)
root
pentru conectare pe toate stațiile. Aveți nevoie de drepturi privilegiate pentru configurare. Folosiți contul student
doar unde vi se cere explicit.
Este estimat că la nivel global, companiile vor pierde aproximativ 10.5 trilioane de dolari până în 2025, o creștere de 15% per an.
Odată cu necesitatea digitalizării lumii în care trăim numărul de aplicații utilizate în medie de un om a crescut considerabil. Această creștere a numărului de aplicații a venit însă și cu un risc crescut în fața atacurilor cibernetice. Fiecare aplicație nouă introdusă în infrastructura digitală a unei entități duce și la creșterea suprafeței de atac a acesteia. Prin suprafața de atac se înțelege numărul total de puncte prin care o persoană neautorizată ar putea accesa un sistem.
Pentru a ne putea proteja în fața atacurilor cibernetice, este necesar să înțelegem fazele unui atac și ce reprezintă acestea.
În încercarea unui atacator de a avea acces la un sistem, acesta va trece prin următoarele faze generale:
1. Recunoașterea țintei
În această fază se urmărește culegerea de informații pentru ținta în cauză. Informațiile de interes pentru un atacator constau în detecția de hardware și software prezente. Această fază este extrem de importantă deoarece pe baza detecției aplicațiilor se pot identifica posibilele vulnerabilități.
În cadrul fazei de recunoaștere ne întâlnim cu două standarde foarte importante:
cpe:2.3:a:microsoft:exchange_server:2016:cumulative_update_23:*:*:*:*:*:*
reprezentând: part=“o”,vendor=“microsoft”,product=“exchange_server”,version=“2016”, update=“cumulative_update_23”,edition=NA,language=NA,sw_edition=“NA”, target_sw=NA,target_hw=“NA”,other=NA)
CVE-2022-21978
)
Asocierea dintre cele două standarde este dată de faptul că unui CPE îi sunt asociate toate CVE-urile descoperite, spre exemplu pentru CPE folosit ca exemplu avem următoarele CVE-uri:
CVE-2022-21978, CVE-2022-21979, CVE-2022-21980, CVE-2022-24477, CVE-2022-24516, CVE-2022-30134, CVE-2022-34692, CVE-2022-41040, CVE-2022-41082, CVE-2022-41078, CVE-2022-41079, CVE-2022-41080, CVE-2022-41123
2. Înarmarea pentru atac
Pe baza informațiilor obținute anterior, atacatorul va alege cele mai potrivite metode prin care va exploata vulnerabilitățile descoperite.
3. Livrarea atacului
Prin livrarea atacului se înțelege orice metodă prin care atacatorul ar putea obține acces in sistem. Aici putem discuta despre exploatarea factorului uman prin mesaje de tip phising sau în funcție de vulnerabilitățile descoperite, acesta poate trimite diverse payload-uri către țintă. Odată cu livrarea atacului, dacă acesta a avut succes, atacatorul își va putea exercita controlul asupra sistemului.
În cadrul acestui laborator vom trece prin toate fazele unui atac folosind utilitare cunoscute sau servicii puse la dispoziție de CODA Intelligence.
Pentru început, vrem să aflăm adresa IP publică cu ajutorul căreia ieșim în internet de pe mașina virtuală. Sistemul de pe care lucrați în cadrul acestui laborator se află în spatele unui rețele cloud private și poate accesa internetul datorită unei configurații NAT (Network Address Translation) și are un IP privat alocat de controller-ul de rețea cloud. Cum aflăm adresa noastră publică ?
Mai departe vrem să aflăm din ce subnet face parte adresa publică, cine se ocupă de aceasta, cărei organizații ii aparține și cărei țări a fost alocată.
Whois este un protocol cerere răspuns care este folosit pentru a interoga informații despre resurse din Internet precum: numele de domeniu, subnet-uri de adrese IP sau sistemul autonom (autonomous system) din care face parte. Vom folosi utilitarul whois pentru a afla acest informații despre adresa IP descoperită la exercițiul anterior:
root@host: whois <ip_ex_1>
Ce informații putem observa în output-ul obținut în urma rulării acestei comenzi ? Care este subnet-ul din care face parte adresa noastră publică ?
Scopul acestui exercițiu constă în aflarea unor informații de DNS despre un domeniu.
Tipurile de înregistrări de DNS pot oferi informații resursele înregistrate și legătura dintre ele:
Vom instala utilitarul necesar pentru interogările de DNS
student@aldebaran:~$ apt install dnsutils
Folosim utilitarul pentru a afla informații despre înregistrări de DNS specifice
student@aldebaran:~$ nslookup -querytype=CNAME erp.codacloud.net
student@aldebaran:~$ nslookup -querytype=NS cs.pub.ro
student@aldebaran:~$ nslookup -querytype=MX cs.pub.ro
student@aldebaran:~$ nslookup -querytype=A erp.codacloud.net
Mai departe, ne propunem să aflăm ce porturi sunt deschise pe anumite servere pentru a vedea serviciile ce rulează și versiunile acestora ce pot avea vulnerabilități.
În cadrul acestui exercitiu (precum si a exercitiilor urmatoare), vom folosi urmatoarele host-uri:
hermes.codacloud.net
midgard.codacloud.net
Folosiți comanda nmap
pentru a scana aceste adrese doar pe conexiuni TCP, utilizând porturile următoare: 21, 22, 23, 25, 53, 80, 138, 443, 8000 și 8080
(am ales aceste porturi întrucât sunt cele mai uzuale porturi pentru expunerea serviciilor/aplicațiilor în rețea).
Veți observa porturi ce se află în starea open
, closed
, filtered
(port filtrat de un firewall) și alte tipuri pe care le puteți găsi descrise aici.
Pe lângă porturile expuse, descoperite anterior, am dori să aflăm și versiunile aplicațiilor și serviciilor ce rulează pe acele porturi.
Acestea sunt foarte importante când vine vorba de securitate, pentru că anumite vulnerabilități se găsesc doar pe unele versiuni.
Folosiți comanda nmap
pentru a determina versiunile serviciilor ce rulează peste protocolul TCP, întâlnite la exercițiul anterior.
Version detection
.
timing template
cu valoarea maximă 5 (-T5
). Acesta ne spune ca scanarea va fi foarte agresivă cu ținta (default-ul este -T3
normal mode).
Folosind această valoarea (insane mode), se pot depista mult mai ușor sistemele de securitate implementate în infrastructura țintă.
Tot pentru a economisi timp, putem folosi parametrul -n
pentru a nu face rezolvare de DNS.
-Pn
verbosity
.
Mai exact, puteți crește nivelul de informații afișate prin adăugarea parametrului -v
. Puteți, de asemenea, crește nivelul de abundență a informației prin utilizarea unui număr mai mare de v-uri.
Așa cum a fost menționat anterior, livrarea atacului poate consta într-un atac de tip phising prin care un utilizator ar putea descărca un executabil malițios. Următorul serviciu verifică din perspectiva utilizatorului, securitatea browser-ului folosit, de la încercarea de descărcare a unui virus până la metodele de criptare folosite de browser.
student
Last Name: rl
E-mail: student.rl@codaintelligence.com
Company website: laboratorrl.codaintelligence.com
Utilizați serviciul de mai jos, folosind credențiale oferite mai sus, pentru a verifica securitatea browser-ului folosit: CODA Intelligence | Fingerprint (codacloud.net)
Culegerea informațiilor despre ținta aleasă poate fi realizată manual, așa cum am observat în cadrul exercițiilor 1-5 sau se pot utiliza servicii existente.
Două astfel de platforme pe care le vom folosi sunt dnsdumpster si shodan.
La acest exercițiu ne propunem să provocăm un comportament distructiv pe un anumit serviciu. Astfel vom realiza un Denial of Service asupra unui server web. Pe red
există un server web (apache2) deja instalat. Verificați dacă acesta este pornit.
root@red:~# /etc/init.d/apache2 status # Verificați că serverul web este pornit
Pe sisteme aveți instalat un text web browser. Dați comanda elinks
și accesați adresa http://192.168.1.2/
. Ar trebui să obțineți pagina default a serverului web Apache2 Ubuntu.
În continuare vom folosit un utilitar de Denial of Service numit slowloris
pe care il avem deja instalat pe green
. Urmăriți README-ul de la această adresă.
Porniți un nou terminal pe sistemul host
. Rulati tcpdump
pe interfața de rețea veth-red
urmărind pachetele primite. Acum puteți porni tool-ul asupra webserver-ului de pe red
. Încercați să accesați din nou serverul web. Mai funcționează ?
root@student:~# tcpdump -i veth-red -n
CTRL+R
pentru a da refresh la pagina din elinks
.
În cadrul acestui exercițiu ne propunem să simulăm un atac de timp Man-in-the-middle. Pentru aceasta, vom considera statia red
ca fiind sistemul de pe care se inițiază atacul și stația green
sistemul victimă. Vom încerca să capturăm traficul către https://curs.upb.ro/
și să îl redirecționăm către un server web malițios aflat pe stația red
. Într-un scenariu real, un atacator ar putea să creeze o replică a unui site web cu scopul de a captura comportamentul victimei sau informații cu caracter personal (parole, adrese, opțiuni etc.)
Folosind ARP spoofing, DNS spoofing, vom crea un scenariu de MiTM (Man in The Middle).
În primă instanță vom porni arpspoof:
root@red:~# arpspoof -i <interfață (red-eth0)> -t <ip_victimă 192.168.2.2> <ip_gateway 192.168.0.100> -r # apoi, în alt terminal: root@red:~# ip a s # pentru a vedea adresa MAC root@green:~# arp -n # comparați adresa MAC a statiei ''red'' cu cea înregistrată pentru gateway. Se poate observa pe mașina victimei faptul că adresa MAC a gateway-ului corespunde cu adresa MAC a adresei IP aferente atacatorului
Deoarece am pornit mai sus ARP spoofing, pachetele victimei trec pe la atacator, inclusiv cererile de tip DNS. Astfel sistemul atacator (MiTM) va răspunde la aceste cereri în locul serverelor dedicate și vor trimite drept rezoluție de nume pentru domeniul curs.upb.ro
adresa IP scrisă într-un fișier hosts
pe care va trebui sa il cream. În cazul de față aceasta adresa este adresa IP a atacatorului unde rulează o copie malițioasă a site-ului http://curs.upb.ro/.
root@red:~# cat hosts <adresa_mea_ip> curs.upb.ro (folosiți TAB!) root@red:~# dnsspoof -f hosts
Pentru a valida succesul atacului, de pe stația green
rulați browser-ul text elinks
si accesați pagina curs.upb.ro
. Veți observa faptul că, în locul paginii clasice, vă va apărea o pagină web diferită (pagina default Apache).
Resurse: