Az - Bancos de Dados MySQL
Reading time: 7 minutes
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Azure MySQL
O Azure Database for MySQL é um serviço de banco de dados relacional totalmente gerenciado, baseado na edição comunitária do MySQL, projetado para fornecer escalabilidade, segurança e flexibilidade para diversas necessidades de aplicativos. Ele possui dois modelos de implantação diferentes:
- Servidor Único (está no caminho de aposentadoria):
- Otimizado para implantações de MySQL econômicas e fáceis de gerenciar.
- Os recursos incluem backups automatizados, alta disponibilidade e monitoramento básico.
- Ideal para aplicativos com cargas de trabalho previsíveis.
- Servidor Flexível:
- Oferece mais controle sobre o gerenciamento e configuração do banco de dados.
- Suporta alta disponibilidade (mesma zona e redundância de zona).
- Recursos de escalabilidade elástica, gerenciamento de patches e otimização de carga de trabalho.
- Oferece funcionalidade de parar/iniciar para economia de custos.
Principais Recursos
- Gerenciamento de Servidor: O recurso ad-admin permite gerenciar administradores do Azure Entra ID para servidores MySQL, proporcionando controle sobre o acesso administrativo via credenciais do Entra ID. O Mysql suporta Identidades Gerenciadas pelo Usuário, usadas para autenticar sem a necessidade de credenciais, e pode ser usado por outros serviços.
- Gerenciamento de Ciclo de Vida: opções para iniciar ou parar um servidor, excluir uma instância de servidor flexível, reiniciar um servidor para aplicar rapidamente alterações de configuração e aguardar para garantir que um servidor atenda a condições específicas antes de prosseguir com scripts de automação.
- Segurança e Rede: Proteja seu servidor restringindo conexões por meio de regras de firewall que permitem apenas endereços IP públicos específicos ou usando endpoints privados que integram seu servidor a uma rede virtual. Todas as conexões são protegidas com criptografia TLS 1.2. Bancos de dados, backups e logs são criptografados em repouso por padrão usando chaves gerenciadas pelo serviço ou chaves personalizadas.
- Proteção de Dados e Backup: inclui opções para gerenciar backups de servidores flexíveis para recuperação de dados, realizar restauração geográfica para recuperar um servidor em uma região diferente, exportar backups de servidores para uso externo (em Pré-visualização) e restaurar um servidor a partir de backup para um ponto específico no tempo.
Enumeração
# List all flexible-servers
az mysql flexible-server db list --resource-group <resource-group-name>
# List databases in a flexible-server
az mysql flexible-server db list --resource-group <resource-group-name> --server-name <server_name>
# Show specific details of a MySQL database
az mysql flexible-server db show --resource-group <resource-group-name> --server-name <server_name> --database-name <database_name>
# List firewall rules of the a server
az mysql flexible-server firewall-rule list --resource-group <resource-group-name> --name <server_name>
# List all ad-admin in a server
az mysql flexible-server ad-admin list --resource-group <resource-group-name> --server-name <server_name>
# List all user assigned managed identities from the server
az mysql flexible-server identity list --resource-group <resource-group-name> --server-name <server_name>
# List the server backups
az mysql flexible-server backup list --resource-group <resource-group-name> --name <server_name>
# List all read replicas for a given server
az mysql flexible-server replica list --resource-group <resource-group-name> --name <server_name>
# Get the server's advanced threat protection setting
az mysql flexible-server advanced-threat-protection-setting show --resource-group <resource-group-name> --name <server_name>
# List all of the maintenances of a flexible server
az mysql flexible-server maintenance list --resource-group <resource-group-name> --server-name <server_name>
# List log files for a server.
az mysql flexible-server server-logs list --resource-group <resource-group-name> --server-name <server_name>
Conexão
Com a extensão rdbms-connect você pode acessar o banco de dados com:
az mysql flexible-server connect -n <server-name> -u <username> -p <password> --interactive
#or execute commands
az mysql flexible-server execute \
-n <server-name> \
-u <username> \
-p "<password>" \
-d <database-name> \
--querytext "SELECT * FROM <table-name>;"
Ou com o plugin de extensão nativa do MySQL
mysql -h <server-name>.mysql.database.azure.com -P 3306 -u <username> -p
Você também pode executar consultas com o github, mas a senha e o usuário também são necessários. Você precisa configurar um arquivo sql com a consulta a ser executada e então:
# Setup
az mysql flexible-server deploy setup \
-s <server-name> \
-g <resource-group> \
-u <admin-user> \
-p "<admin-password>" \
--sql-file <path-to-sql-file> \
--repo <github-username/repository-name> \
--branch <branch-name> \
--action-name <action-name> \
--allow-push
# Run it
az mysql flexible-server deploy run \
--action-name <action-name> \
--branch <branch-name>
Escalação de Privilégios
Pós Exploração
A Fazer
- Procurar uma maneira de acessar com mysql flexible-server ad-admin para verificar se é um método de privesc
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.