Skip to main content

MySQL CLI - Conexão e Enumeração Remota | Solyd One | Ataque específicos

  • MySQL CLI - Conexão e Enumeração Remota | Solyd One | Ataque específicos

Objetivo

Documentar o processo de conexão remota e enumeração de uma instância MySQL/MariaDB utilizando o cliente oficial mysql, considerando ambiente com:

  • Porta 3306 exposta
  • Servidor sem suporte a SSL
  • Acesso via linha de comando
  • Contexto de laboratório ou ambiente controlado

Arquitetura do Cenário

[ Cliente Linux ]  --->  [ MySQL/MariaDB Server ]
| |
mysql CLI Porta 3306
SSL desabilitado TCP

Conexão Remota

Conexão básica sem senha (MySQL 8+)

mysql -h 10.129.17.123 -u root --ssl-mode=DISABLED

Conexão com senha (MySQL 8+)

mysql -h 10.129.17.123 -u root -p --ssl-mode=DISABLED

Conexão utilizando --skip-ssl (compatibilidade)

Algumas versões mais antigas do cliente utilizam:

mysql -h 10.129.17.123 -u root --skip-ssl

Com senha:

mysql -h 10.129.17.123 -u root -p --skip-ssl

Diferença entre --ssl-mode=DISABLED e --skip-ssl

OpçãoVersões comunsFunção
--ssl-mode=DISABLEDMySQL 5.7+ / 8+Desativa explicitamente TLS
--skip-sslClientes mais antigosImpede negociação SSL

Se o erro for:

SSL is required, but the server does not support it

Use uma das opções acima para desabilitar SSL.


Enumeração Inicial

Listar bancos disponíveis

SHOW DATABASES;

Bancos padrão geralmente encontrados:

information_schema
mysql
performance_schema
sys

Qualquer banco adicional é específico da instância.


Seleção de Banco

USE nome_do_banco;

Exemplo:

USE app_database;

Enumeração de Estruturas

Listar tabelas

SHOW TABLES;

Inspecionar estrutura de tabela

DESCRIBE nome_da_tabela;

ou

SHOW COLUMNS FROM nome_da_tabela;

Extração de Dados

Consulta completa

SELECT * FROM nome_da_tabela;

Consulta limitada

SELECT * FROM nome_da_tabela LIMIT 10;

Consulta com projeção de colunas

SELECT username, email FROM users;

Consulta com filtro

SELECT username, password FROM users WHERE id = 1;

Informações do Ambiente

Versão do servidor

SELECT VERSION();

Usuário autenticado

SELECT USER();

Privilégios do usuário atual

SHOW GRANTS;

Enumeração de Usuários do MySQL

SELECT user, host FROM mysql.user;

Requer privilégios adequados.


Análise de Tabelas

Status das tabelas

SHOW TABLE STATUS;

Permite identificar:

  • Engine (InnoDB, MyISAM)
  • Tamanho
  • Número de linhas
  • Colação

Boas Práticas Operacionais

  • Validar versão antes de qualquer exploração
  • Identificar privilégios efetivos
  • Limitar consultas volumosas com LIMIT
  • Trabalhar com usuário de menor privilégio possível
  • Encerrar sessão após uso

Encerramento da Sessão

exit;