AWS - RDS Privesc
RDS - Служба реляційних баз даних
Для отримання додаткової інформації про RDS перегляньте:
AWS - Relational Database (RDS) Enumrds:ModifyDBInstance
rds:ModifyDBInstance
З цим дозволом атакувальник може змінювати пароль головного користувача та вхід в базу даних:
Вам потрібно мати можливість звертатися до бази даних (зазвичай вони доступні лише зсередини мережі).
Потенційний вплив: Знайти чутливу інформацію всередині баз даних.
rds-db:connect
Згідно з документацією користувач з цим дозволом може підключитися до екземпляру БД.
Зловживання дозволами IAM ролі RDS
Postgresql (Aurora)
Якщо під час виконання SELECT datname FROM pg_database;
ви знаходите базу даних під назвою rdsadmin
, ви знаєте, що ви знаходитесь всередині AWS бази даних postgresql.
Спочатку ви можете перевірити, чи ця база даних використовувалася для доступу до інших сервісів AWS. Ви можете перевірити це, подивившись на встановлені розширення:
Якщо ви знаходите щось на кшталт aws_s3
, ви можете припустити, що ця база даних має якийсь доступ до S3 (існують інші розширення, такі як aws_ml
та aws_lambda
).
Також, якщо у вас є дозвіл на виконання aws rds describe-db-clusters
, ви можете побачити там, чи є кластер пов'язаний з якоюсь IAM-роллю у полі AssociatedRoles
. Якщо так, ви можете припустити, що база даних була підготовлена для доступу до інших служб AWS. На основі назви ролі (або якщо ви можете отримати дозволи ролі), ви можете здогадатися, який додатковий доступ є у бази даних.
Тепер, щоб прочитати файл у відрах, вам потрібно знати повний шлях. Ви можете прочитати його за допомогою:
Якщо у вас є сирі дані AWS, ви також можете використовувати їх для доступу до даних S3 за допомогою:
Postgresql не потрібно змінювати жодну змінну групи параметрів, щоб мати доступ до S3.
Mysql (Aurora)
У mysql, якщо ви виконаєте запит SELECT User, Host FROM mysql.user;
і існує користувач з ім'ям rdsadmin
, ви можете припустити, що ви знаходитесь всередині AWS RDS mysql db.
У mysql виконайте show variables;
і якщо змінні, такі як aws_default_s3_role
, aurora_load_from_s3_role
, aurora_select_into_s3_role
, мають значення, ви можете припустити, що база даних готова до доступу до даних S3.
Також, якщо у вас є дозвіл на виконання aws rds describe-db-clusters
, ви можете перевірити, чи у кластері є будь-яка пов'язана роль, що зазвичай означає доступ до сервісів AWS).
Тепер, щоб прочитати файл всередині відра, вам потрібно знати повний шлях. Ви можете прочитати його за допомогою:
rds:AddRoleToDBCluster
, iam:PassRole
rds:AddRoleToDBCluster
, iam:PassRole
Хакер з дозволами rds:AddRoleToDBCluster
та iam:PassRole
може додати вказану роль до існуючого екземпляру RDS. Це може дозволити хакеру отримати доступ до чутливих даних або змінити дані в екземплярі.
Потенційний вплив: Доступ до конфіденційних даних або несанкціоновані зміни даних в екземплярі RDS. Зверніть увагу, що деякі бази даних вимагають додаткових конфігурацій, таких як Mysql, який потребує вказати роль ARN в групах параметрів також.
rds:CreateDBInstance
rds:CreateDBInstance
Лише з цим дозволом зловмисник може створити новий екземпляр всередині кластера, який вже існує та має прикріплену роль IAM. Він не зможе змінити пароль головного користувача, але може виявити новий екземпляр бази даних в Інтернеті:
rds:CreateDBInstance
, iam:PassRole
rds:CreateDBInstance
, iam:PassRole
TODO: Перевірити
Атакувальник з дозволами rds:CreateDBInstance
та iam:PassRole
може створити новий екземпляр RDS з прикріпленим вказаним роллю. Після цього атакувальник може отримати доступ до чутливих даних або змінити дані в екземплярі.
Деякі вимоги до ролі/профілю екземпляра для прикріплення (з тут):
Профіль повинен існувати в вашому обліковому записі.
У профілі повинна бути роль IAM, яку Amazon EC2 має дозвіл припускати.
Назва профілю екземпляра та пов'язана назва ролі IAM повинні починатися з префіксу
AWSRDSCustom
.
Потенційний вплив: Доступ до чутливих даних або несанкціоновані зміни даних в екземплярі RDS.
rds:AddRoleToDBInstance
, iam:PassRole
rds:AddRoleToDBInstance
, iam:PassRole
Зловмисник з дозволами rds:AddRoleToDBInstance
та iam:PassRole
може додати вказану роль до існуючого екземпляру RDS. Це може дозволити зловмиснику отримати доступ до чутливих даних або змінити дані в екземплярі.
Екземпляр бази даних повинен бути поза кластером для цього.
```bash aws rds add-role-to-db-instance --db-instance-identifier target-instance --role-arn arn:aws:iam::123456789012:role/MyRDSEnabledRole --feature-name ``` **Потенційний вплив**: Доступ до чутливих даних або несанкціоновані модифікації даних в екземплярі RDS.
Last updated