AWS - Redshift Privesc
Redshift
Per ulteriori informazioni su RDS controlla:
pageAWS - Redshift Enumredshift:DescribeClusters
, redshift:GetClusterCredentials
redshift:DescribeClusters
, redshift:GetClusterCredentials
Con queste autorizzazioni puoi ottenere informazioni su tutti i cluster (incluso nome e nome utente del cluster) e ottenere le credenziali per accedervi:
Impatto Potenziale: Trovare informazioni sensibili all'interno dei database.
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
Con queste autorizzazioni è possibile ottenere informazioni su tutti i cluster e ottenere le credenziali per accedervi. Si noti che l'utente postgres avrà le autorizzazioni dell'identità IAM utilizzata per ottenere le credenziali.
Impatto Potenziale: Trovare informazioni sensibili all'interno dei database.
redshift:DescribeClusters
, redshift:ModifyCluster?
redshift:DescribeClusters
, redshift:ModifyCluster?
È possibile modificare la password principale dell'utente postgres interno (redshit) dall'aws cli (credo che siano i permessi di cui hai bisogno ma non li ho ancora testati):
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 assegnati una lista 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 (a condizione che il primo possa assumere il secondo) per ottenere ulteriore accesso, ma basta separarli 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 si 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
References
Last updated