AWS - Redshift Privesc
Redshift
Para más información sobre RDS revisa:
AWS - Redshift Enumredshift:DescribeClusters
, redshift:GetClusterCredentials
redshift: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 ellos:
Impacto Potencial: Encontrar información sensible dentro de las bases de datos.
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
Con estos permisos puedes obtener información de todos los clusters 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?
redshift:DescribeClusters
, redshift:ModifyCluster?
Es posible modificar la contraseña maestra del usuario interno postgres (redshift) 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.
Accediendo a Servicios Externos
Para acceder a todos los siguientes recursos, necesitarás especificar el rol a usar. 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 más acceso, simplemente separándolos con una coma: iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
Lambdas
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:
S3
Como se explica en https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html, es posible leer y escribir en buckets de S3:
Dynamo
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 uses la opción REGION para especificar la región de AWS en la que se encuentra la tabla de Amazon DynamoDB.
EMR
Consulta https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html
Referencias
Last updated