AWS - Redshift Privesc
Redshift
Per maggiori informazioni su RDS controlla:
AWS - Redshift Enumredshift:DescribeClusters
, redshift:GetClusterCredentials
redshift:DescribeClusters
, redshift:GetClusterCredentials
Con questi permessi puoi ottenere info di tutti i cluster (inclusi nome e username del cluster) e ottenere credenziali per accedervi:
Impatto Potenziale: Trovare informazioni sensibili all'interno dei database.
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
Con questi permessi puoi ottenere informazioni di tutti i cluster e ottenere credenziali per accedervi. Nota che l'utente postgres avrà i permessi che l'identità IAM utilizzata per ottenere le credenziali possiede.
Impatto Potenziale: Trovare informazioni sensibili all'interno dei database.
redshift:DescribeClusters
, redshift:ModifyCluster?
redshift:DescribeClusters
, redshift:ModifyCluster?
È possibile modificare la password master dell'utente postgres interno (redshift) da aws cli (penso che queste siano le autorizzazioni necessarie ma non le ho ancora testate):
Impatto Potenziale: Trovare informazioni sensibili all'interno dei database.
Accesso ai Servizi Esterni
Per accedere a tutte le risorse seguenti, sarà necessario specificare il ruolo da utilizzare. Un cluster Redshift può avere assegnato un elenco di ruoli AWS che puoi utilizzare se conosci l'ARN oppure puoi semplicemente impostare "default" per utilizzare quello predefinito assegnato.
Inoltre, come spiegato qui, Redshift consente anche di concatenare ruoli (purché il primo possa assumere il secondo) per ottenere ulteriore accesso semplicemente separandoli con una virgola: iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
Lambdas
Come spiegato in https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html, è possibile chiamare una funzione lambda da redshift con qualcosa del genere:
S3
Come spiegato in https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html, è possibile leggere e scrivere nei bucket S3:
Dynamo
Come spiegato in https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-dynamodb.html, è possibile ottenere dati da dynamodb:
La tabella Amazon DynamoDB che fornisce i dati deve essere creata nella stessa Regione AWS del tuo cluster, a meno che non utilizzi l'opzione REGION per specificare la Regione AWS in cui si trova la tabella Amazon DynamoDB.
EMR
Controlla https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html
Riferimenti
Last updated