MySQL este una dintre cele mai folosite baze de date, folosita de foarte multe aplicatii in zilele noastre. In pentesting, este aproape imposibil sa nu gasesti un sistem ce ruleaza un server MySQL. In topicul asta vom vedea cum sa atacam o baza de date MySQL cu ajutorul framework-ului Metasploit. Sa presupunem ca scopul nostru este sa testam serverul MySQL. Primul pas este sa edscoperim versiunea bazei de date. Framework-ul Metasploit are un modul ce ne permite sa gasim versiunea unei baze de date. Cunoscand versiunea, ne va ajuta sa descoperim posibilele vulnerabilitati. Singurul lucru pe care il avem de facut este sa punem adresa IP si sa folosim commanda run. Acum putem folosi modulul mysql_login in combinatie cu wordlist-ul nostru pentru a descoperi cel putin un cont valid ce ne va permite sa ne conectam la baza de date MySQL. Mereu ca pentester este bine sa verifici baza de date de conturi sau parole slabe. Scannerul a dat rezultate, dupa cum putem vedea din rezultate, avem un cont valid, (root) Inainte sa folosim acest cont, in scopul de a ne conecta si interactiona direct cu baza de date, putem folosi alte doua module metasploit, ce ne pot ajuta sa enumeram conturile din baza de date si sa extragem contul si parola criptata din serverul MySQL. Desigur, asta se poate face manual, insa Metasploit ne ajuta sa facem asta. Deci prima data, vom configura modulul numit msql_enum in scopul de a gasi informatii despre conturile bazei de date. Urmatorul pas este sa configuram si sa rulam modulul mysql_hashdump in scopul extragerii hash-urilor parolelor de la toate conturile din database. Acum ne putem conecta la serverul mysql. Backtrack are deja un client deci putem folosi comanda, mysql -h IP -u username -ppassword. In cazul nostru IP-ul tintei este chiar IP-ul meu. Acesta apare cu blur in imagini, la fel si parola mysql. Acum ca suntem conectati la baza de date putem folosi comanda show databases; in scopul descoperirii bazelor de date stocate in serverul MySQL. Urmatorul pas este sa alegem o baza de date si apoi sa incercam sa vedem tabelele din care va urma sa incepem sa extragem date. Putem face asta folosind comanda use <dbname>; si comanda show tables; Putem vedea ca acolo este un tabel numit 'user'. Vom vrea sa extragem datele ce contin conturi si parole din ystem. Putem face asta folosind comanda select User, Password from user; Dupa cum putem vedea acolo sunt 5 conturi cu parole criptate. Deci acum avem toate conturile bazei de date MySQL. Putem acum descoperi tabele aditionale din alte baze de date cu comanda show tables from <dbname>; Astfel de metode se folosesc pentru a extrage tot felul de baze de date. Concluzie In acest topic am aratat cum sa obti acces intr`un server MySQL obtinand acces folosindune de username si parole slabe sau default. Multe companii au astfel de probleme de securitate. Orice pentester trebuie sa verifice inainte de a evalua un sistem de baze de date, daca acesta nu foloseste parole slabe sau implicite. Asta este cea mai usoara cale de a obtine acces. Referinte Penetration Testing Lab Metasploit Penetration Testing Software | Metasploit Framework | Metasploit Project BackTrack Linux - Penetration Testing Distribution