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)
Per ulteriori informazioni su RDS controlla:
redshift:DescribeClusters
, redshift:GetClusterCredentials
Con questi permessi puoi ottenere info di tutti i cluster (incluso nome e nome utente del cluster) e ottenere credenziali per accedervi:
Impatto Potenziale: Trovare informazioni sensibili all'interno dei database.
redshift:DescribeClusters
, redshift:GetClusterCredentialsWithIAM
Con questi permessi puoi ottenere info 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 ha.
Impatto Potenziale: Trovare informazioni sensibili all'interno dei database.
redshift:DescribeClusters
, redshift:ModifyCluster?
È possibile modificare la password principale dell'utente postgres interno (redshit) da aws cli (penso che questi siano i permessi di cui hai bisogno, ma non li ho ancora testati):
Impatto Potenziale: Trovare informazioni sensibili all'interno dei database.
Per accedere a tutte le risorse seguenti, è necessario specificare il ruolo da utilizzare. Un cluster Redshift può avere assegnata 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 (purché il primo possa assumere il secondo) per ottenere ulteriori accessi, ma semplicemente separandoli con una virgola: iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
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 come:
Come spiegato in https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html, è possibile leggere e scrivere nei bucket S3:
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 tu non utilizzi l'opzione REGION per specificare la Regione AWS in cui si trova la tabella Amazon DynamoDB.
Controlla https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html
Impara e pratica Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)