Jump to content
Wubi

Atac asupra unui server MySQL cu Metasploit

Recommended Posts

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.

screenshotuir.png

Singurul lucru pe care il avem de facut este sa punem adresa IP si sa folosim commanda run.

screenshot1qc.png

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.

screenshot2mb.png

Scannerul a dat rezultate, dupa cum putem vedea din rezultate, avem un cont valid, (root)

screenshot3bd.png

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.

screenshot4ro.png

screenshot5op.png

Urmatorul pas este sa configuram si sa rulam modulul mysql_hashdump in scopul extragerii hash-urilor parolelor de la toate conturile din database.

screenshot6ki.png

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.

screenshot7ad.png

Acum ca suntem conectati la baza de date putem folosi comanda show databases; in scopul descoperirii bazelor de date stocate in serverul MySQL.

screenshot8x.png

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;

screenshot9g.png

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;

screenshot10ao.png

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>;

screenshot11l.png

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

Edited by Wubi
  • Upvote 1
Link to comment
Share on other sites

Ma amuza toate aceste post-uri precum "Gj & gt" sau "Excelent explicat, mai astept tutoriale din partea ta!" etc. Trebuie sa pricepi ca in oricare companie ce se respecta nu poti sa te duci sa faci bruteforce alandala sau sa pornesti cine stie ce serviciu de identificare si mapare a vulnerabilitatilor de securitate ce creaza tone de trafic si logging.

Nu poti lansa autopwn asupra unui server decat daca situatia permite si chiar si atunci, exista un risc numai reflectand la tot traficul creat in urma acestui atac. Atac bruteforce asupra unui server MySQL cu Metasploit cred ca ar fi fost mai corect, insa ce-i drept, orice munca e de apreciat.

Pe viitor ar fi bine daca ai face tutoriale despre inspectie la nivel de layere OSI folosind scannere precum nmap, care este excelent in "inspectia" raspunsurilor target-urilor. In special folosirea de script-uri precum mysql-audit s.a.m.d.

Sau un alt exemplu bun, exploit-ul recent ce face bypass de login.

Apropo,

Urmatorul pas este sa configuram si sa rulam modulul mysql_hashdump in scopul extragerii hash-urilor parolelor de la toate conturile din database.

http://img687.imageshack.us/img687/5779/screenshot6ki.png

Imaginea nu este afisata, corecteaza la inceput.

Edited by Flubber
clarificare
Link to comment
Share on other sites

Ma amuza toate aceste post-uri. Trebuie sa pricepi ca in oricare companie ce se respecta nu poti sa te duci sa faci bruteforce alandala sau sa pornesti cine stie ce serviciu de identificare si mapare a vulnerabilitatilor de securitate ce creaza tone de trafic si logging.

Nu poti lansa autopwn asupra unui server decat daca situatia permite si chiar si atunci, exista un risc numai reflectand la tot traficul creat in urma acestui atac. Atac bruteforce asupra unui server MySQL cu Metasploit cred ca ar fi fost mai corect, insa ce-i drept, orice munca e de apreciat.

Pe viitor ar fi bine daca ai face tutoriale despre inspectie la nivel de layere OSI folosind scannere precum nmap, care este excelent in "inspectia" raspunsurilor target-urilor. In special folosirea de script-uri precum mysql-audit s.a.m.d.

Sau un alt exemplu bun, exploit-ul recent ce face bypass de login.

Apropo,

Imaginea nu este afisata, corecteaza la inceput.

Ai dreptate in mare parte, dar nu poti tu ca pentester sa lasi de`o parte lucruri banale ca asta sa`ti scape, chiar daca serviciile prestate sunt pentru o companie ce se respecta sau nu.

Scopul tutorialului a fost sa arate cea mai simpla metoda de a obtine acces intr`un server MySQL. Poate nu este foarte tehnic, si nu am detaliat prea mult, dar nu asta a fost scopul.

Multumesc pentru sugestie, voi face tutoriale mult mai detaliate, in care sa explic pe larg, ce, cum, si de ce am facut asa.

Multumesc si pentru acea atentionare cu imaginea.

Link to comment
Share on other sites

Ai dreptate in mare parte, dar nu poti tu ca pentester sa lasi de`o parte lucruri banale ca asta sa`ti scape, chiar daca serviciile prestate sunt pentru o companie ce se respecta sau nu.

Scopul tutorialului a fost sa arate cea mai simpla metoda de a obtine acces intr`un server MySQL. Poate nu este foarte tehnic, si nu am detaliat prea mult, dar nu asta a fost scopul.

Multumesc pentru sugestie, voi face tutoriale mult mai detaliate, in care sa explic pe larg, ce, cum, si de ce am facut asa.

Multumesc si pentru acea atentionare cu imaginea.

"voi face tutoriale mult mai detaliate, in care sa explic pe larg, ce, cum, si de ce am facut asa." vei fi un mare caracter dac? vei face asta :) eu în sine, apreciez.

Link to comment
Share on other sites

Nice. M-am uitat pe tutorialu' in engleza.

Util si interesant dar sa fim realisti:

Sa faci bruteforce la username si parola... nu prea ai sanse. E foarte "zgomotos" si ai sanse sa fii blocat dupa prea multe incercari. in + la majoritatea server-provider de MySQL password-policy e foarte strict: username cu prefix random (u5qffa_ ) parola minim 7 char alfa-numerica si UpperChase.

Si user remote .. nu prea e perimis

Poate merge sa spargi un servel local cu username: root si fara pass. Dar cu un webserver serios...

Good Luck!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...