AWS - Redshift Enum
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.
Amazon Redshift
Redshift, büyük veri çözümleri için bir veri ambarı olarak kullanılan, bir petabaytın üzerinde ölçeklenebilen tamamen yönetilen bir hizmettir. Redshift kümelerini kullanarak, veri setleriniz üzerinde hızlı, SQL tabanlı sorgu araçları ve iş zekası uygulamaları ile analizler yaparak işinizin vizyonunu daha iyi anlamak için çalışabilirsiniz.
Redshift, KMS veya CloudHSM kullanarak anahtarların en üst katmanını yönetmek için dört katmanlı bir şifreleme anahtarı hiyerarşisi kullanarak dinlenme sırasında şifreleme sunar. Kümeniz için şifreleme etkinleştirildiğinde, devre dışı bırakılamaz ve tersi de geçerlidir. Şifrelenmemiş bir kümeniz olduğunda, şifrelenemez.
Kümeniz için şifreleme yalnızca oluşturulması sırasında gerçekleşebilir ve bir kez şifrelendiğinde, veri, meta veri ve herhangi bir anlık görüntü de şifrelenir. Şifreleme anahtarlarının katmanlama seviyesi şu şekildedir: birinci katman anahtar, ikinci katman küme şifreleme anahtarı, CEK, üçüncü katman veritabanı şifreleme anahtarı, DEK ve son olarak dördüncü katman, veri şifreleme anahtarlarıdır.
KMS
Kümenizi oluştururken, Redshift için varsayılan KMS anahtarını seçebilir veya kendi CMK’nizi seçebilirsiniz; bu, anahtarın kontrolü üzerinde daha fazla esneklik sağlar, özellikle denetlenebilir bir perspektiften.
Redshift için varsayılan KMS anahtarı, anahtar seçeneği ilk kez seçildiğinde ve kullanıldığında Redshift tarafından otomatik olarak oluşturulur ve AWS tarafından tamamen yönetilir.
Bu KMS anahtarı daha sonra CMK anahtarının birinci katmanıyla şifrelenir. Bu şifrelenmiş KMS veri anahtarı daha sonra küme şifreleme anahtarı, CEK, ikinci katman olarak kullanılır. Bu CEK, KMS tarafından Redshift’e gönderilir ve burada kümeden ayrı olarak saklanır. Redshift daha sonra bu şifrelenmiş CEK’yi güvenli bir kanal üzerinden kümeye gönderir ve burada bellekte saklanır.
Redshift daha sonra KMS’ten CEK’yi, ikinci katmanı, şifre çözmesini talep eder. Bu şifrelenmiş CEK daha sonra bellekte de saklanır. Redshift daha sonra rastgele bir veritabanı şifreleme anahtarı, DEK, üçüncü katman oluşturur ve bunu kümenin belleğine yükler. Bellekteki şifrelenmiş CEK, DEK’yi şifreler ve bu da bellekte saklanır.
Bu şifrelenmiş DEK daha sonra güvenli bir kanal üzerinden gönderilir ve Redshift’te kümeden ayrı olarak saklanır. Hem CEK hem de DEK artık kümenin belleğinde hem şifreli hem de şifresiz formda saklanmaktadır. Şifresiz DEK daha sonra Redshift tarafından veritabanındaki her veri bloğu için rastgele üretilen veri anahtarlarını, dördüncü katman, şifrelemek için kullanılır.
Amazon S3 kovalarınızın yapılandırmasını izlemek ve kova günlüğünün etkin olduğundan emin olmak için AWS Trusted Advisor’ı kullanabilirsiniz; bu, güvenlik denetimleri gerçekleştirmek ve S3’teki kullanım desenlerini izlemek için yararlı olabilir.
CloudHSM
CloudHSM ile Redshift Kullanımı
CloudHSM ile şifreleme gerçekleştirmek için öncelikle HSM istemciniz ile Redshift arasında güvenilir bir bağlantı kurmalısınız ve bu sırada istemci ve sunucu sertifikalarını kullanmalısınız.
Bu bağlantı, HSM istemciniz ile Redshift kümeleriniz arasında şifreleme anahtarlarının gönderilmesine olanak tanıyarak güvenli iletişim sağlamak için gereklidir. Rastgele üretilen bir özel ve genel anahtar çifti kullanarak, Redshift bir genel istemci sertifikası oluşturur; bu sertifika şifrelenir ve Redshift tarafından saklanır. Bu, indirilip HSM istemcinize kaydedilmeli ve doğru HSM bölümüne atanmalıdır.
Daha sonra Redshift’i HSM istemcinizin aşağıdaki bilgileri ile yapılandırmalısınız: HSM IP adresi, HSM bölüm adı, HSM bölüm şifresi ve CloudHSM tarafından iç anahtar kullanılarak şifrelenmiş genel HSM sunucu sertifikası. Bu bilgiler sağlandığında, Redshift bağlantı kurabileceğini ve geliştirme bölümüne erişebileceğini onaylayacak ve doğrulayacaktır.
Eğer iç güvenlik politikalarınız veya yönetişim kontrolleriniz anahtar döngüsü uygulamanız gerektiğini belirtiyorsa, bu Redshift ile mümkündür ve şifrelenmiş kümeler için şifreleme anahtarlarını döndürmenizi sağlar; ancak, anahtar döngüsü sürecinde, kümenin çok kısa bir süreliğine kullanılamaz hale geleceğini bilmelisiniz, bu nedenle anahtarları yalnızca gerektiğinde veya tehlikeye girmiş olabileceğini düşündüğünüzde döndürmek en iyisidir.
Döngü sırasında, Redshift kümeniz için CEK’yi ve o kümenin yedekleri için DEK’yi döndürecektir. Küme için DEK’yi döndürmek mümkündür, ancak DEK kullanılarak şifrelenmiş S3’te saklanan anlık görüntüler için DEK’yi döndürmek mümkün değildir. Süreç tamamlanana kadar küme ‘anahtar döndürme’ durumuna alınacak ve durum ‘kullanılabilir’ olarak geri dönecektir.
Enumeration
# Get clusters
aws redshift describe-clusters
## Get if publicly accessible
aws redshift describe-clusters | jq -r ".Clusters[].PubliclyAccessible"
## Get DB username to login
aws redshift describe-clusters | jq -r ".Clusters[].MasterUsername"
## Get endpoint
aws redshift describe-clusters | jq -r ".Clusters[].Endpoint"
## Public addresses of the nodes
aws redshift describe-clusters | jq -r ".Clusters[].ClusterNodes[].PublicIPAddress"
## Get IAM roles of the clusters
aws redshift describe-clusters | jq -r ".Clusters[].IamRoles"
# Endpoint access & authorization
aws redshift describe-endpoint-access
aws redshift describe-endpoint-authorization
# Get credentials
aws redshift get-cluster-credentials --db-user <username> --cluster-identifier <cluster-id>
## By default, the temporary credentials expire in 900 seconds. You can optionally specify a duration between 900 seconds (15 minutes) and 3600 seconds (60 minutes).
aws redshift get-cluster-credentials-with-iam --cluster-identifier <cluster-id>
## Gives creds to access redshift with the IAM redshift permissions given to the current AWS account
## More in https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-access-control-identity-based.html
# Authentication profiles
aws redshift describe-authentication-profiles
# Snapshots
aws redshift describe-cluster-snapshots
# Scheduled actions
aws redshift describe-scheduled-actions
# Connect
# The redshift instance must be publicly available (not by default), the sg need to allow inbounds connections to the port and you need creds
psql -h redshift-cluster-1.sdflju3jdfkfg.us-east-1.redshift.amazonaws.com -U admin -d dev -p 5439
Privesc
Süreklilik
Aşağıdaki eylemler, kümeye diğer AWS hesaplarına erişim izni vermeyi sağlar:
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

