Hacking și securitate Pentesting cu DE-ICE

{title}

Testarea penetrării este actul de a testa o rețea pentru a găsi vulnerabilitățile de securitate înainte de a fi exploatate de un atacator sau de hackeri rău intenționat. DE-ICE este o mașină virtuală care conține o instalare Linux Slax și servește pentru a efectua practici atât pentru începători, prin intermediul practicienilor avansați.

Slax este un CD Live al sistemului de operare GNU / Linux bazat pe distribuția Slackware. Slax este un sistem de operare Linux portabil, nu ocupă mult spațiu și oferă performanțe rapide.

{title}

Slax oferă un depozit software preinstalat și este utilizat pe scară largă de către administratori pentru a crea platforme de testare, distribuții specifice și utile pentru a crea instrumente de recuperare, teste de penetrare, securitate și simulări de rețea cu mașini virtuale pentru administratorii și dezvoltatorii de sistem. experți software sau securitate, sistemul ocupă aproximativ 190 MB. O interfață grafică poate fi sau nu instalată, dar aceasta ar ocupa mult spațiu și ar încetini sistemul.

De-ICE poate fi instalat pe VirtualBox sau ars pe un CD pentru a fi folosit ca LiveCD. Există mai multe versiuni care prezintă un nivel de dificultate diferit, versiunea pentru începători este DE-ICE1.100, iar cea mai complexă în prezent este DE-ICE1.140. Pentru acest tutorial vom folosi versiunea DE-ICE 1.120 care este disponibilă la //www.vulnhub....e-ice-s1120, 10/.

Această mașină virtuală este pregătită special pentru a ne testa cunoștințele și pentru a aplica orice tehnici de testare sau instrumente de penetrare.

Pentestingul De-ICE PenTest Lab 1.120
Pentru procedurile de testare a penetrării, instalați versiunea DE-ICE.1.120 și folosiți Linux Mint și VirtualBox pentru a instala DE-ICE. Poate fi utilizat în orice sistem de operare care vă permite să creați o mașină virtuală.

Încep să caut ip-ul meu curent de la un terminal folosind comanda ifconfig, iar rezultatul este următorul:

 IP: 192.168.0.11 

{title}

Apoi folosesc diferite programe la alegere, dar puteți încerca și altele pentru a se potrivi utilizatorului.

A) Folosesc Zenmap pentru a scana toate gazdele între 1-254


În tutoriale:
  • Instrument vizual Zenmap pentru testul de securitate portuară
  • Cum să utilizați Nmap pentru a scana porturile deschise în cadrul VPS și Metasploit pentru a testa securitatea serverului

Am văzut câteva instrumente pentru scanarea porturilor și cum să le utilizăm.

Deschidem Zenmap, atribuim ip-ul și parametrii pentru a scana întreaga rețea și îmi arată dispozitivele conectate și ip-ul.

{title}

IP 192.168.0.1 corespunde IP Gateway-ului routerului cu portul 80 deschis și IP-ului routerului 192.168.0.10 cu toate porturile închise.

Analizând topologia și caracteristicile fiecărei gazde, am stabilit că ip 192.168.0.38 este ip-ul WiFi al mașinii virtuale, iar ip 192.168.0.40 este conexiunea ethernet este mașina virtuală.

Accesez IP-ul mașinii virtuale sau VPS și găsesc un site web pentru înregistrarea produselor.

{title}

În principiu [color = # b22222] un eșec grav [/ color] ar fi acela că acest site web nu are niciun tip de control de acces al utilizatorului, în acest fel ar fi accesibil tuturor utilizatorilor rețelei, chiar dacă este în o intranet

De la Zenmap văd și porturile scanate pentru această gazdă.

{title}

Găsesc mai multe porturi deschise pentru a încerca atacurile de forță brută la acces, forțând utilizatorul și parola cu instrumente precum Hydra sau John the Ripper, printre altele.

De asemenea, putem vedea topologia pentru a analiza fiecare gazdă și cu care este conectată.

{title}

Astfel, putem vedea caracteristicile echipamentului, cum este configurată rețeaua și care sunt gazdele pe care le putem ataca.

B) Scanarea vulnerabilității


Folosesc OSWAP ZAP pentru a efectua o scanare a vulnerabilității. Am văzut acest instrument în tutorial:
  • Scanarea vulnerabilității unui site web cu ZAP

$config[ads_text5] not found

Ne permite să scanăm vulnerabilitățile unui site web, prezentând rapoarte despre vulnerabilitățile găsite.
Folosind filtrul și regulile de scanare activă și pasivă, putem găsi vulnerabilitățile web. De asemenea, ne arată toate paginile pe care le conține web-ul, chiar ne spune care sunt cele care primesc un fel de parametru per url.

{title}

După scanare pot vedea structura web cu paginile programate în PHP și vulnerabilitățile în funcție de filtrele aplicate.

În cazul paginii de inserare a produsului vedem că primește parametri prin metoda POST și putem vedea și câmpurile sau variabilele pe care le primește.

$config[ads_text6] not found

{title}

C) Injectarea codului XSS


În continuare vom merge la pagina adăugării unui produs (Adăugare produs) și vom aplica tehnici de injecție XSS unde injectăm cod html și Javascript pentru a vedea dacă este vulnerabil la acest tip de atacuri.

Ca prim test, adaug codul html al unei imagini externe în descrierea produsului, oricare poate fi selectat prin căutarea pe Google.

{title}
Dacă imaginea este vulnerabilă, ea va fi salvată în baza de date și va fi afișată în lista de produse pe care va trebui să le căutăm în combo prin codul pe care îl atribuim, rezultatul este următorul:

$config[ads_text5] not found

{title}

[color = # b22222] Este vulnerabil la XSS [/ color], deoarece am putea introduce orice html sau cod javascript, inclusiv link-uri.

Introduceți un iframe în câmpul descriere și salvați:

{title}

Apoi căutăm produsul după codul 003 și putem vedea rezultatul

{title}

Prin această tehnică putem introduce un formular în care simulăm o autentificare și că datele sunt stocate efectiv într-o bază de date externă. Putem dezactiva lista de produse care determină redirecționarea către un alt site web dacă în orice câmp de înregistrare a produsului adăugăm următorul cod html:

 Atunci când cineva încearcă să vadă lista de produse va fi automat trimisă către site-ul web indicat în acest caz Google.

D) SQL Injection Access la baza de date


Sqlmap este un instrument foarte util pentru a testa securitatea serverelor de baze de date din tutoriale:
  • Instrumentul SQLMAP SQL Injection și hacking-ul etic al bazelor de date
  • BadStore: Web pentru teste de pentestare.

Folosesc sqlmap pentru a determina dacă există o bază de date disponibilă folosind următoarele comenzi.

 python sqlmap.py -u „http://192.168.0.40/products.php?id=1” --dbs 

{title}

Putem vedea că serverul este Apache 2.2.11, care folosește php 5.2.9 și că serverul de baze de date este MySQL 5.0.12, vizualizăm și toate bazele de date disponibile, inclusiv cele care sunt configurația serverului de bază Date MySQL

Apoi folosesc comanda pentru a verifica dacă există tabele în baza de date merch, ceea ce presupun că are tabelul de produse pe care îl introducem pe web.

 python sqlmap.py -u „http://192.168.0.40/products.php?id=1” - tabele -D merch 

{title}

Găsim tabelul folosit de site-ul web. În continuare pot privi tabelul de produse cu următoarea comandă

 python sqlmap.py -u „http://192.168.0.50/products.php?id=1” - coloane -D merch -T produse 

{title}

Caut să aflu utilizatorii care au un cont Mysql care încearcă să găsească administrator, implicit folosesc dicționarul de date sqlmap situat în folderul sqlmap-dev / txt / wordlist.zip

$config[ads_text5] not found

{title}

În acest director vom găsi mai multe dicționare, sqlmap va decomprima și va folosi fișierul, pentru a căuta utilizatorii și parola pentru a testa dacă pot descoperi și obține numele de utilizator configurate pe serverul MySQL, pentru aceasta folosesc următoarea comandă:

 python sqlmap.py -u "http://192.168.0.40/products.php?id=1" - utilizatori - parole de acces 

{title}

În continuare, caut tipul de utilizator pentru a vedea care sunt privilegiile de acces ale fiecărui utilizator pentru a determina cine sunt administratorii și care sunt codurile de acces ale acestora.

 python sqlmap.py -u "http://192.168.0.65/products.php?id=1" -f -b - current-user --is-dba --is-dba --privileges --dbs - depozit 

$config[ads_text6] not found

{title}

În urma execuției, cheile fiecărui utilizator sunt dezvăluite pentru a accesa bazele de date și ce privilegii au.

{title}

Când scanarea este terminată, la sfârșitul listei putem vedea privilegiile fiecărui utilizator și să stabilim care utilizatori sunt administratorii.

Aflu că există mai mulți utilizatori de administrator, de aceea voi lua utilizatorul jdavenport care este administrator și parola lui este babyl0n, pentru a încerca să acceseze sistemul

Apoi încerc să încălc portul 22 SSH cu datele obținute:

{title}

Se poate vedea că am obținut acces ca administrator și am control complet asupra serverului. Folosind cd / comanda, mergem în directorul rădăcină și de acolo putem accesa orice sector, cum ar fi vizualizarea dosarelor și conturilor altor utilizatori

{title}

Având acces prin SSH cu combinația de nume de utilizator și parolă pe care le-am obținut. Următorul nostru obiectiv va fi escaladarea privilegiilor, deși avem deja un utilizator root sau un administrator.
Pentru a manipula permisiunile trebuie să consultăm fișierele care conțin permisiunile, utilizatorii, grupurile și codurile de acces. Aceste fișiere se află în directorul / etc

  • Utilizator și grupuri cu cheile lor în director: / etc / passwd
  • Grupuri și permisiuni din director: / etc / sweats

Putem accesa fișierul utilizatorilor și cheilor de sistem prin următoarea comandă:

 nano / etc / parolă 

{title}

Putem răsfoi directoarele între ele, putem vedea fișierele web pe care le-am analizat și apoi le putem descărca prin ftp sau din consola ssh le putem copia în directorul nostru local dacă dorim să le edităm sau să verificăm codul pentru a-l face mai sigur și testat. .

{title}

Acum că cunoaștem datele de acces ale unui administrator, ne putem conecta la mașina virtuală.

{title}

Cum să evitați atacurile de injecție SQL
Securitatea web este foarte importantă aici, din cauza unei probleme de injecție SQL, preluăm întregul server.

Trebuie să controlați ceea ce este trimis ca parametru în url, cum ar fi:

 http://192.168.0.40/products.php?id=1 
La efectuarea interogării sql trebuie să ne asigurăm că nu pot fi introduse caractere sau parametri care nu corespund, de exemplu:
 $ sql = SELECTA * DE la utilizatori WHERE user = 'jose' și parolă = '12345' OR '1' = '1'; 
Propoziția este foarte similară cu o autentificare a unui utilizator în care căutăm dacă există un nume de utilizator și o parolă, în tabelul utilizatorilor, dacă există cineva înregistrat cu un nume de utilizator pe care îl trimitem ca parametru și dacă parola lor este „12345 sau 1 este egală. la 1 '.

Această expresie determină faptul că, dacă cheia nu este corectă, expresia 1 egală cu 1 este adevărată și am intra în sistem fără să știm parola.

O metodă este de a scăpa de variabile, de exemplu, în PHP:

 mysql_real_escape_string ($ _ POST ['utilizator']); 
Dacă trebuie să trimitem parametrii prin url, ar trebui să-i criptăm folosind md5, sha1 sau base64 și putem trimite mai multe date criptate, astfel încât formatul final al parametrului să nu se raporteze direct la date sau câmpuri din baza de date.

{title}

De asemenea, ar trebui să existe un sistem care să evite porturile de scanare și conexiunile multiple de la același IP, este suficient un firewall în acest caz cu iptables și un detector de intrusi.

Un instrument pe care îl putem folosi este PortSentry sau Fail2Ban care este instalat dintr-un depozit Linux și trebuie să configurăm numai porturile care trebuie protejate, dacă unul dintre aceste porturi este scanat, acesta va bloca automat ip-ul care ne atacă.

  • 0

Articole Pe Aceeași Temă Cum să dezactivați notificările prin e-mail de la o anumită adresă din Gmail

..

În acest fel, nu veți fi notificat când primiți orice tip de e-mail dintr-un anumit cont de e-mail. Cu toate acestea, chiar dacă nu primiți notificări despre e-mailurile primite de la adresa respectivă; Dacă aceste e-mailuri vor fi accesibile din căsuța de e-mail a contului dvs. Gmail, astfel încât să le puteți citi și să le accesați conținutul.

Acestea fiind spuse, mai jos vă arătăm pas cu pas cum să dezactivați în Gmail notificările de e-mailuri dintr-un anumit cont de e-mail: