Tutorials

MySQL Enumeration – Appunti Approfonditi

Durante un'attività di penetration testing, l'enumerazione di MySQL consente di identificare la versione del DBMS, eventuali credenziali deboli, vulnerabilità note e configurazioni errate. MySQL gira

#enumeration#sql-injection

MySQL Enumeration – Appunti Approfonditi

Introduzione

Durante un'attività di penetration testing, l'enumerazione di MySQL consente di identificare la versione del DBMS, eventuali credenziali deboli, vulnerabilità note e configurazioni errate. MySQL gira comunemente sulla porta 3306, ma può essere configurato su una porta non standard per offuscamento.

Preparazione dell'Ambiente (Metasploit Framework)

1. Avviare PostgreSQL:

bash
service postgresql start

2. Verifica del Database:

bash
db_status

3. Impostare l'indirizzo IP del target globalmente:

bash
setg RHOSTS <ip_target>

Ricerca Moduli MySQL in Metasploit

Ricerca generica:

bash
search mysql

Ricerca di moduli specifici:

bash
search type:auxiliary name:mysql

Enumerazione con Metasploit

1. Version Check:

bash
use auxiliary/scanner/mysql/mysql_version

Verifica la versione del server MySQL in esecuzione.

2. Ricerca Vulnerabilità (manuale):

  • Cercare exploit per la versione:
bash
search versione_mysql
searchsploit <versione_mysql>

3. Brute-force Login:

bash
use auxiliary/scanner/mysql/mysql_login

Parametri tipici:

bash
set USER_FILE /usr/share/metasploit-framework/data/wordlists/common_users.txt
set PASS_FILE /usr/share/metasploit-framework/data/wordlists/unix_passwords.txt

4. Enumerazione completa del database server:

bash
use auxiliary/admin/mysql/mysql_enum

Raccoglie informazioni su:

  • Versione del DB
  • Utenti e privilegi
  • Database presenti
  • Variabili globali di configurazione

5. Esecuzione Query SQL (se autenticati):

bash
use auxiliary/admin/mysql/mysql_sql

Permette di eseguire comandi SQL sul DB.

6. Dump dello Schema (tabelle e database):

bash
use auxiliary/scanner/mysql/mysql_schemadump

Accesso Diretto a MySQL

Se si possiede una password o si è riusciti a brute-forzare le credenziali, è possibile accedere direttamente al database:

bash
mysql -h <ip_target> -u root -p

Una volta autenticati:

sql
SHOW DATABASES;
USE nome_database;
SHOW TABLES;
SELECT * FROM nome_tabella;

Conclusioni

L’enumerazione di MySQL è una fase critica per ottenere accesso a dati sensibili e valutare la superficie d’attacco. Usare Metasploit consente una ricognizione rapida e strutturata, mentre l’accesso diretto permette un'analisi manuale approfondita. È buona pratica verificare sempre la versione del server e cercare eventuali exploit pubblici per l’escalation dei privilegi.