AWS - Redshift Privesc

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Redshift

Za više informacija o RDS-u proverite:

AWS - Redshift Enum

redshift:DescribeClusters, redshift:GetClusterCredentials

Sa ovim dozvolama možete dobiti informacije o svim klasterima (uključujući ime i korisničko ime klastera) i dobiti akreditive za pristupanje istima:

# 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

Potencijalni uticaj: Pronalaženje osetljivih informacija unutar baza podataka.

redshift:DescribeClusters, redshift:GetClusterCredentialsWithIAM

Sa ovim dozvolama možete dobiti informacije o svim klasterima i dobiti pristupne podatke za pristupanje istima. Imajte na umu da će korisnik postgres imati dozvole koje IAM identitet korišćen za dobijanje pristupnih podataka ima.

# 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

Potencijalni uticaj: Pronalaženje osetljivih informacija unutar baza podataka.

redshift:DescribeClusters, redshift:ModifyCluster?

Moguće je izmeniti glavnu lozinku internog postgres (redshit) korisnika putem aws cli (Mislim da su to dozvole koje su vam potrebne, ali ih još nisam testirao):

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

Potencijalni uticaj: Pronalaženje osetljivih informacija unutar baza podataka.

Pristupanje spoljnim uslugama

Da biste pristupili svim sledećim resursima, moraćete navesti ulogu koju ćete koristiti. Klaster Redshift-a može imati dodeljen spisak AWS uloga koje možete koristiti ako znate ARN ili možete jednostavno postaviti "default" da biste koristili podrazumevanu dodeljenu ulogu.

Osim toga, kako je objašnjeno ovde, Redshift takođe dozvoljava konkatenaciju uloga (samo ako prva može pretpostaviti drugu) da bi se dobio dalji pristup, ali ih jednostavno odvajate zarezom: iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';

Lambda funkcije

Kako je objašnjeno na https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html, moguće je pozvati lambda funkciju iz redshift-a sa nečim poput:

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

S3

Kao što je objašnjeno u https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html, moguće je čitati i pisati u S3 kofere:

# 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

Kao što je objašnjeno na https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-dynamodb.html, moguće je dobiti podatke iz dynamodb-a:

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

Tabela Amazon DynamoDB koja pruža podatke mora biti kreirana u istom AWS regionu kao vaš klaster osim ako koristite opciju REGION da specificirate AWS region u kojem se nalazi tabela Amazon DynamoDB.

EMR

Proverite https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated