Az - MySQL Databases

Reading time: 6 minutes

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기

Azure MySQL

Azure Database for MySQL는 MySQL Community Edition을 기반으로 하는 완전 관리형 관계형 데이터베이스 서비스로, 다양한 애플리케이션 요구에 대한 확장성, 보안 및 유연성을 제공합니다. 두 가지 배포 모델이 있습니다:

  • Single Server (은 퇴역 경로에 있음):
  • 비용 효율적이고 관리하기 쉬운 MySQL 배포를 위해 최적화됨.
  • 자동 백업, 고가용성 및 기본 모니터링 기능 포함.
  • 예측 가능한 작업 부하를 가진 애플리케이션에 적합.
  • Flexible Server:
  • 데이터베이스 관리 및 구성에 대한 더 많은 제어를 제공합니다.
  • 고가용성 지원(동일 영역 및 영역 중복).
  • 탄력적 확장, 패치 관리 및 작업 부하 최적화 기능 포함.
  • 비용 절감을 위한 중지/시작 기능 제공.

주요 기능

  • 서버 관리: ad-admin 기능은 MySQL 서버에 대한 Azure Entra ID 관리자를 관리할 수 있게 하여 Entra ID 자격 증명을 통해 관리 액세스를 제어합니다. Mysql은 자격 증명 없이 인증하는 데 사용되는 사용자 관리 ID를 지원하며, 다른 서비스에서 사용할 수 있습니다.
  • 수명 주기 관리: 서버를 시작하거나 중지하고, 유연한 서버 인스턴스를 삭제하고, 구성 변경을 신속하게 적용하기 위해 서버를 재시작하며, 자동화 스크립트를 진행하기 전에 서버가 특정 조건을 충족하는지 확인하는 옵션을 포함합니다.
  • 보안 및 네트워킹: 특정 공용 IP 주소만 허용하는 방화벽 규칙을 통해 연결을 제한하거나, 서버를 가상 네트워크에 통합하는 개인 엔드포인트를 사용하여 서버를 보호합니다. 모든 연결은 TLS 1.2 암호화로 보호됩니다. 데이터베이스, 백업 및 로그는 기본적으로 서비스 관리 키 또는 사용자 지정 키를 사용하여 암호화됩니다.
  • 데이터 보호 및 백업: 데이터 복구를 위한 유연한 서버 백업 관리 옵션, 다른 지역에서 서버를 복구하기 위한 지리적 복원 수행, 외부 사용을 위한 서버 백업 내보내기(미리 보기), 특정 시점으로 백업에서 서버 복원 기능 포함.

열거

bash
# 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>

연결

rdbms-connect 확장을 사용하여 데이터베이스에 액세스할 수 있습니다:

bash
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>;"

MySQL 네이티브 확장 플러그인을 사용하여

bash
mysql -h <server-name>.mysql.database.azure.com -P 3306 -u <username> -p

또한 GitHub를 사용하여 쿼리를 실행할 수 있지만, 비밀번호와 사용자도 필요합니다. 실행할 쿼리가 포함된 SQL 파일을 설정한 다음:

bash
# 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>

권한 상승

Az - MySQL Privesc

포스트 익스플로잇

Az - MySQL Post Exploitation

할 일

  • mysql flexible-server ad-admin으로 접근할 방법을 찾아서 이것이 권한 상승 방법인지 확인하십시오.

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE) Azure 해킹 배우기 및 연습하기: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks 지원하기