AWS - Redshift Privesc
Aprenda e pratique AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Redshift
Para mais informações sobre RDS, confira:
AWS - Redshift Enumredshift:DescribeClusters
, redshift:GetClusterCredentials
redshift:DescribeClusters
, redshift:GetClusterCredentials
Com essas permissões, você pode obter informações de todos os clusters (incluindo nome e nome de usuário do cluster) e obter credenciais para acessá-lo:
Impacto Potencial: Encontrar informações sensíveis dentro dos bancos de dados.
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
Com essas permissões, você pode obter informações de todos os clusters e obter credenciais para acessá-los. Note que o usuário postgres terá as permissões que a identidade IAM usada para obter as credenciais possui.
Impacto Potencial: Encontrar informações sensíveis dentro dos bancos de dados.
redshift:DescribeClusters
, redshift:ModifyCluster?
redshift:DescribeClusters
, redshift:ModifyCluster?
É possível modificar a senha mestre do usuário postgres interno (redshift) a partir do aws cli (acho que essas são as permissões necessárias, mas ainda não as testei):
Impacto Potencial: Encontrar informações sensíveis dentro dos bancos de dados.
Acessando Serviços Externos
Para acessar todos os recursos a seguir, você precisará especificar o papel a ser usado. Um cluster Redshift pode ter uma lista de papéis AWS atribuídos que você pode usar se souber o ARN ou pode simplesmente definir "default" para usar o padrão atribuído.
Além disso, como explicado aqui, o Redshift também permite concatenar papéis (desde que o primeiro possa assumir o segundo) para obter acesso adicional, apenas separando-os 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:
S3
Como explicado em https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html, é possível ler e escrever em buckets S3:
Dynamo
Como explicado em https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-dynamodb.html, é possível obter dados do dynamodb:
A tabela Amazon DynamoDB que fornece os dados deve ser criada na mesma Região AWS que seu cluster, a menos que você use a opção REGION para especificar a Região AWS na qual a tabela Amazon DynamoDB está localizada.
EMR
Verifique https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html
Referências
Aprenda e pratique AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Last updated