AWS - Redshift Privesc
Redshift
Para obtener más información sobre RDS, consulta:
pageAWS - Redshift Enumredshift:DescribeClusters
, redshift:GetClusterCredentials
redshift:DescribeClusters
, redshift:GetClusterCredentials
Con estos permisos, puedes obtener información de todos los clústeres (incluido el nombre y el nombre de usuario del clúster) y obtener credenciales para acceder a él:
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 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?
redshift:DescribeClusters
, redshift:ModifyCluster?
Es posible modificar la contraseña maestra del usuario interno postgres (redshit) desde la aws cli (Creo que 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 recursos siguientes, necesitarás especificar el rol a utilizar. Un clúster de Redshift puede tener asignada una lista de roles de AWS que puedes utilizar si conoces el ARN o simplemente puedes establecer "default" para usar el asignado por defecto.
Además, como se explica aquí, Redshift también permite concatenar roles (siempre que el primero pueda asumir el segundo) para obtener un mayor 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 los 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 crearse en la misma Región de AWS que su clúster a menos que utilice la opción REGION para especificar la Región de AWS en la que se encuentra la tabla de Amazon DynamoDB.
EMR
Consulte https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html
Referencias
Última actualización