AWS - Redshift Privesc
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Para mais informações sobre RDS, confira:
AWS - Redshift Enumredshift: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
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.
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):
Impacto Potencial: Encontrar informações sensíveis dentro dos bancos de dados.
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 você 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, mas apenas separando-os com uma vírgula: iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
Como explicado em https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html, é possível chamar uma função lambda do redshift com algo como:
Como explicado em https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html, é possível ler e escrever em buckets S3:
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.
Verifique https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)