AWS - Redshift Privesc

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Redshift

Para mais informaçÔes sobre RDS, confira:

AWS - Redshift Enum

redshift:DescribeClusters, redshift:GetClusterCredentials

Com essas permissĂ”es vocĂȘ pode obter informaçÔes de todos os clusters (incluindo o nome e o nome de usuĂĄrio do cluster) e obter credenciais para acessĂĄ-lo:

# 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

Impacto Potencial: Encontrar informaçÔes sensíveis dentro dos bancos de dados.

redshift:DescribeClusters, redshift:GetClusterCredentialsWithIAM

Com essas permissĂ”es vocĂȘ pode obter informaçÔes de todos os clusters e obter credenciais para acessĂĄ-los.
Observe que o usuårio postgres terå as permissÔes que a identidade IAM usada para obter as credenciais possui.

# 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

Impacto Potencial: Encontrar informaçÔes sensíveis dentro dos bancos de dados.

redshift:DescribeClusters, redshift:ModifyCluster?

É possĂ­vel modificar a senha mestre do usuĂĄrio interno postgres (redshit) a partir do aws cli (acho que essas sĂŁo as permissĂ”es necessĂĄrias, mas ainda nĂŁo as testei):

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

Potential Impact: Encontrar informaçÔes sensíveis dentro dos bancos de dados.

Accessing External Services

Warning

Para acessar todos os recursos a seguir, vocĂȘ precisarĂĄ especificar a role a ser usada. Um cluster Redshift pode ter atribuĂ­da uma lista de AWS roles que vocĂȘ pode usar se souber o ARN ou pode simplesmente definir “default” para usar a role padrĂŁo atribuĂ­da.

AlĂ©m disso, como explained here, Redshift tambĂ©m permite concatenar roles (desde que a primeira possa assumir a segunda) para obter mais acesso, apenas separando‑as com uma vĂ­rgula: iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';

Lambdas

Como explicado em https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html, é possível chamar uma função lambda a partir do Redshift com algo como:

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

S3

Como explicado em https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html, Ă© possĂ­vel ler e escrever em 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

Conforme explicado em https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-dynamodb.html, Ă© possĂ­vel obter dados do dynamodb:

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

Warning

A tabela Amazon DynamoDB que fornece os dados deve ser criada na mesma AWS Region do seu cluster, a menos que vocĂȘ use a opção REGION para especificar a AWS Region na qual a tabela Amazon DynamoDB estĂĄ localizada.

EMR

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

ReferĂȘncias

Tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks