AWS - Relational Database (RDS) Enum

Reading time: 6 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks

Основна інформація

Служба реляційних баз даних (RDS), що пропонується AWS, призначена для спрощення розгортання, експлуатації та масштабування реляційної бази даних у хмарі. Ця служба пропонує переваги економії витрат і масштабованості, автоматизуючи трудомісткі завдання, такі як постачання апаратного забезпечення, налаштування бази даних, патчинг і резервне копіювання.

AWS RDS підтримує різні широко використовувані реляційні бази даних, включаючи MySQL, PostgreSQL, MariaDB, Oracle Database, Microsoft SQL Server та Amazon Aurora, з сумісністю як для MySQL, так і для PostgreSQL.

Ключові особливості RDS включають:

  • Управління екземплярами бази даних спрощено.
  • Створення реплік для читання для покращення продуктивності читання.
  • Налаштування мульти-зональних (AZ) розгортань для забезпечення високої доступності та механізмів відмови.
  • Інтеграція з іншими службами AWS, такими як:
  • AWS Identity and Access Management (IAM) для надійного контролю доступу.
  • AWS CloudWatch для всебічного моніторингу та метрик.
  • AWS Key Management Service (KMS) для забезпечення шифрування в спокої.

Облікові дані

При створенні кластера DB майстер ім'я користувача може бути налаштоване (admin за замовчуванням). Щоб згенерувати пароль цього користувача, ви можете:

  • Вказати пароль самостійно
  • Сказати RDS автоматично згенерувати його
  • Сказати RDS керувати ним у AWS Secret Manager, зашифрованому за допомогою ключа KMS

Аутентифікація

Існує 3 типи варіантів аутентифікації, але використання майстер-пароля завжди дозволено:

Публічний доступ та VPC

За замовчуванням публічний доступ не надається базам даних, однак він може бути наданий. Тому за замовчуванням лише машини з тієї ж VPC зможуть отримати доступ до неї, якщо вибрана група безпеки (зберігається в EC2 SG) це дозволяє.

Замість того, щоб відкривати екземпляр бази даних, можна створити RDS Proxy, який покращує масштабованість та доступність кластера бази даних.

Крім того, порт бази даних також може бути змінений.

Шифрування

Шифрування увімкнено за замовчуванням за допомогою керованого ключа AWS (може бути обрано CMK замість цього).

Увімкнувши своє шифрування, ви увімкнули шифрування в спокої для вашого сховища, знімків, реплік для читання та ваших резервних копій. Ключі для управління цим шифруванням можуть бути видані за допомогою KMS.
Не можливо додати цей рівень шифрування після створення вашої бази даних. Це потрібно зробити під час її створення.

Однак існує обхідний шлях, що дозволяє зашифрувати незашифровану базу даних наступним чином. Ви можете створити знімок вашої незашифрованої бази даних, створити зашифровану копію цього знімка, використати цей зашифрований знімок для створення нової бази даних, і, нарешті, ваша база даних буде зашифрована.

Прозоре шифрування даних (TDE)

Окрім можливостей шифрування, властивих RDS на рівні програми, RDS також підтримує додаткові механізми шифрування на платформі для захисту даних у спокої. Це включає Прозоре шифрування даних (TDE) для Oracle та SQL Server. Однак важливо зазначити, що хоча TDE підвищує безпеку, шифруючи дані в спокої, це також може вплинути на продуктивність бази даних. Цей вплив на продуктивність особливо помітний при використанні разом з криптографічними функціями MySQL або криптографічними функціями Microsoft Transact-SQL.

Щоб використовувати TDE, необхідні певні попередні кроки:

  1. Асоціація групи параметрів:
  • База даних повинна бути асоційована з групою параметрів. Групи параметрів слугують контейнерами для налаштувань і функцій, полегшуючи управління базою даних, включаючи покращення безпеки.
  • Однак важливо зазначити, що групи параметрів доступні лише для певних движків бази даних і версій.
  1. Включення TDE в групу параметрів:
  • Після асоціації з групою параметрів опція Oracle Transparent Data Encryption повинна бути включена в цю групу.
  • Важливо усвідомлювати, що після додавання опції TDE до групи параметрів вона стає постійною і не може бути видалена.
  1. Режими шифрування TDE:
  • TDE пропонує два різні режими шифрування:
  • Шифрування таблиць TDE: Цей режим шифрує цілі таблиці, забезпечуючи ширший обсяг захисту даних.
  • Шифрування стовпців TDE: Цей режим зосереджується на шифруванні конкретних, окремих елементів у базі даних, що дозволяє більш детально контролювати, які дані шифруються.

Розуміння цих передумов і оперативних тонкощів TDE є важливим для ефективного впровадження та управління шифруванням у RDS, забезпечуючи як безпеку даних, так і відповідність необхідним стандартам.

Перерахування

bash
# Clusters info
## Get Endpoints, username, port, iam auth enabled, attached roles, SG
aws rds describe-db-clusters
aws rds describe-db-cluster-endpoints #Cluster URLs
aws rds describe-db-cluster-backtracks --db-cluster-identifier <cluster-name>

## Cluster snapshots
aws rds describe-db-cluster-snapshots

# Get DB instances info
aws rds describe-db-instances #username, url, port, vpc, SG, is public?
aws rds describe-db-security-groups

## Find automated backups
aws rds describe-db-instance-automated-backups

## Find snapshots
aws rds describe-db-snapshots
aws rds describe-db-snapshots --include-public --snapshot-type public
## Restore snapshot as new instance
aws rds restore-db-instance-from-db-snapshot --db-instance-identifier <ID> --db-snapshot-identifier <ID> --availability-zone us-west-2a

# Any public snapshot in the account
aws rds describe-db-snapshots --snapshot-type public

# Proxies
aws rds describe-db-proxy-endpoints
aws rds describe-db-proxy-target-groups
aws rds describe-db-proxy-targets

## reset credentials of MasterUsername
aws rds modify-db-instance --db-instance-identifier <ID> --master-user-password <NewPassword> --apply-immediately

Неавтентифікований доступ

AWS - RDS Unauthenticated Enum

Підвищення привілеїв

AWS - RDS Privesc

Постексплуатація

AWS - RDS Post Exploitation

Постійність

AWS - RDS Persistence

SQL-ін'єкція

Існують способи доступу до даних DynamoDB з використанням SQL-синтаксису, отже, типові SQL-ін'єкції також можливі.

SQL Injection - HackTricks

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Вивчайте та практикуйте Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Підтримка HackTricks