AWS - Redshift Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Para más información sobre RDS consulta:
AWS - Redshift Enumredshift:DescribeClusters
, redshift:GetClusterCredentials
Con estos permisos puedes obtener información de todos los clusters (incluyendo nombre y nombre de usuario del cluster) y obtener credenciales para acceder a él:
Impacto Potencial: Encontrar información sensible dentro de las bases de datos.
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
Con estos permisos puedes obtener información de todos los clústeres y obtener credenciales para acceder a ellos. Ten en cuenta que el usuario postgres tendrá los permisos que la identidad IAM utilizada para obtener las credenciales tiene.
Impacto Potencial: Encontrar información sensible dentro de las bases de datos.
redshift:DescribeClusters
, redshift:ModifyCluster?
Es posible modificar la contraseña maestra del usuario interno postgres (redshit) desde aws cli (creo que esos son los permisos que necesitas, pero aún no los he probado):
Impacto Potencial: Encontrar información sensible dentro de las bases de datos.
Para acceder a todos los siguientes recursos, necesitarás especificar el rol a utilizar. Un clúster de Redshift puede tener asignada una lista de roles de AWS que puedes usar si conoces el ARN o simplemente puedes establecer "default" para usar el predeterminado asignado.
Además, como se explica aquí, Redshift también permite concatenar roles (siempre que el primero pueda asumir el segundo) para obtener acceso adicional, pero solo separándolos con una coma: iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
Como se explica en https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html, es posible llamar a una función lambda desde redshift con algo como:
Como se explica en https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html, es posible leer y escribir en los buckets de S3:
Como se explica en https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-dynamodb.html, es posible obtener datos de dynamodb:
La tabla de Amazon DynamoDB que proporciona los datos debe ser creada en la misma región de AWS que tu clúster, a menos que utilices la opción REGION para especificar la región de AWS en la que se encuentra la tabla de Amazon DynamoDB.
Consulta https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)