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ção | Versões comuns | Função |
|---|---|---|
--ssl-mode=DISABLED | MySQL 5.7+ / 8+ | Desativa explicitamente TLS |
--skip-ssl | Clientes mais antigos | Impede 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;