mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['', 'src/pentesting-cloud/aws-security/aws-post-exploitation
This commit is contained in:
+30
-31
@@ -10,17 +10,17 @@ Daha fazla bilgi için bakınız:
|
||||
../../aws-services/aws-kms-enum.md
|
||||
{{#endref}}
|
||||
|
||||
### Şifreleme/Şifre çözme bilgileri
|
||||
### Encrypt/Decrypt information
|
||||
|
||||
`fileb://` ve `file://` yerel dosyaların yolunu belirtmek için AWS CLI komutlarında kullanılan URI şemalarıdır:
|
||||
`fileb://` ve `file://` AWS CLI komutlarında yerel dosyaların yolunu belirtmek için kullanılan URI şemalarıdır:
|
||||
|
||||
- `fileb://:` dosyayı binary (ikili) modda okur; genellikle metin olmayan dosyalar için kullanılır.
|
||||
- `file://:` dosyayı metin modunda okur; tipik olarak düz metin dosyaları, scriptler veya özel kodlama gerektirmeyen JSON için kullanılır.
|
||||
- `fileb://:` Dosyayı ikili (binary) modda okur, genellikle metin olmayan dosyalar için kullanılır.
|
||||
- `file://:` Dosyayı metin modunda okur, tipik olarak düz metin dosyaları, betikler veya özel kodlama gerektirmeyen JSON için kullanılır.
|
||||
|
||||
> [!TIP]
|
||||
> Bir dosyanın içindeki veriyi şifre çözmek istiyorsanız, dosyanın base64 ile kodlanmış veri değil, binary veri içermesi gerektiğini unutmayın. (fileb://)
|
||||
> Dikkat: Eğer bir dosya içindeki bazı verileri decrypt etmek istiyorsanız, dosyanın ikili veriyi içermesi gerekir; base64 ile kodlanmış veri olmamalıdır. (fileb://)
|
||||
|
||||
- **Simetrik** bir anahtar kullanarak
|
||||
- Using a **symmetric** key
|
||||
```bash
|
||||
# Encrypt data
|
||||
aws kms encrypt \
|
||||
@@ -38,7 +38,7 @@ aws kms decrypt \
|
||||
--query Plaintext | base64 \
|
||||
--decode
|
||||
```
|
||||
- Bir **asymmetric** key kullanarak:
|
||||
- Bir **asimetrik** anahtar kullanımı:
|
||||
```bash
|
||||
# Encrypt data
|
||||
aws kms encrypt \
|
||||
@@ -60,14 +60,14 @@ aws kms decrypt \
|
||||
```
|
||||
### KMS Ransomware
|
||||
|
||||
KMS üzerinde ayrıcalıklı erişime sahip bir saldırgan, anahtarların KMS politikasını değiştirip **kendi hesabına bu anahtarlara erişim verebilir**, meşru hesaba tanınan erişimi kaldırarak.
|
||||
KMS üzerinde ayrıcalıklı erişime sahip bir saldırgan, anahtarların KMS politikasını değiştirebilir ve **kendi hesabına bu anahtarlara erişim verebilir**, meşru hesabın verdiği erişimi kaldırarak.
|
||||
|
||||
Böylece, meşru hesap kullanıcıları bu anahtarlarla şifrelenmiş herhangi bir servisin hiçbir bilgisine erişemeyecek; bu, hesap üzerinde kolay ama etkili bir ransomware yaratır.
|
||||
Böylece meşru hesap kullanıcıları, bu anahtarlarla şifrelenmiş herhangi bir servisin hiçbir bilgisine erişemeyeceklerdir; bu da hesap üzerinde basit ama etkili bir ransomware oluşturur.
|
||||
|
||||
> [!WARNING]
|
||||
> Bu saldırıdan **AWS managed keys etkilenmez**, yalnızca **Customer managed keys** etkilenir.
|
||||
> Unutmayın ki bu saldırı **AWS managed keys aren't affected**, yalnızca **Customer managed keys** üzerinde etkilidir.
|
||||
|
||||
> Ayrıca param **`--bypass-policy-lockout-safety-check`** kullanımının gerektiğini not edin (web konsolunda bu seçeneğin olmaması saldırıyı yalnızca CLI üzerinden mümkün kılar).
|
||||
> Ayrıca parametre **`--bypass-policy-lockout-safety-check`** kullanma gereğini unutmayın (web console'da bu seçeneğin olmaması bu saldırıyı yalnızca CLI üzerinden mümkün kılar).
|
||||
```bash
|
||||
# Force policy change
|
||||
aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \
|
||||
@@ -92,28 +92,28 @@ aws kms put-key-policy --key-id mrk-c10357313a644d69b4b28b88523ef20c \
|
||||
}
|
||||
```
|
||||
> [!CAUTION]
|
||||
> Eğer bu policy'yi değiştirip sadece bir external account'a erişim verirseniz ve daha sonra bu external account'tan original account'a erişimi geri vermek için yeni bir policy ayarlamaya çalışırsanız, bunu yapamazsınız çünkü Put Polocy action cross account'tan gerçekleştirilemez.
|
||||
> Unutmayın ki politikayı değiştirip erişimi yalnızca harici bir hesaba verirseniz ve ardından bu harici hesaptan yeni bir politika ayarlayarak **give the access back to original account, you won't be able cause the Put Polocy action cannot be performed from a cross account**.
|
||||
|
||||
<figure><img src="../../../images/image (77).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### Generic KMS Ransomware
|
||||
|
||||
Küresel KMS Ransomware gerçekleştirmek için başka bir yol daha vardır; bu şu adımları içerir:
|
||||
Küresel KMS Ransomware gerçekleştirmek için başka bir yol daha vardır; bu aşağıdaki adımları içerir:
|
||||
|
||||
- Saldırgan tarafından içeri aktarılan bir **key with a key material** oluşturun
|
||||
- **Re-encrypt older data**: Önceki sürümle şifrelenmiş kurban verilerini yeni anahtarla yeniden şifreleyin.
|
||||
- **Delete the KMS key**
|
||||
- Şimdi şifrelenmiş verileri çözebilecek tek kişi, original key material'e sahip saldırgandır
|
||||
- Saldırgan tarafından içe aktarılmış bir anahtar materyali içeren yeni bir anahtar oluşturun
|
||||
- Mağdurun önceki sürümle şifrelenmiş eski verilerini yeni anahtarla yeniden şifreleyin
|
||||
- KMS anahtarını silin
|
||||
- Artık yalnızca orijinal anahtar materyaline sahip saldırgan, şifrelenmiş verileri çözebilir
|
||||
|
||||
### kms:DeleteImportedKeyMaterial ile Anahtarları Silme
|
||||
|
||||
`kms:DeleteImportedKeyMaterial` izniyle bir aktör, `Origin=EXTERNAL` olan CMK'lardan imported key material'i silebilir (key material'lerini içeri aktarmış CMK'lar), böylece bunlar veriyi çözemeyecek hale gelir. Bu eylem, compatible material yeniden re-imported edilmedikçe yıkıcı ve geri döndürülemezdir; bir saldırganın şifrelenmiş bilgileri kalıcı olarak erişilemez hale getirerek etkili biçimde ransomware-like veri kaybına yol açmasına olanak tanır.
|
||||
`kms:DeleteImportedKeyMaterial` izni ile bir aktör, `Origin=EXTERNAL` olan CMK'lerden (anahtar materyalini içe aktarmış CMK'ler) içe aktarılmış anahtar materyalini silebilir ve bunların verileri çözememesine neden olabilir. Bu işlem tahrip edici ve geri alınamazdır; uyumlu materyal yeniden içe aktarılmadıkça, bir saldırgan şifrelenmiş bilgileri kalıcı olarak erişilemez hale getirerek etkili bir şekilde ransomware-like veri kaybına yol açabilir.
|
||||
```bash
|
||||
aws kms delete-imported-key-material --key-id <Key_ID>
|
||||
```
|
||||
### Anahtarları yok etme
|
||||
### Destroy keys
|
||||
|
||||
Anahtarları yok ederek DoS gerçekleştirilebilir.
|
||||
Destroying keys ile bir DoS gerçekleştirmek mümkündür.
|
||||
```bash
|
||||
# Schedule the destoy of a key (min wait time is 7 days)
|
||||
aws kms schedule-key-deletion \
|
||||
@@ -121,10 +121,10 @@ aws kms schedule-key-deletion \
|
||||
--pending-window-in-days 7
|
||||
```
|
||||
> [!CAUTION]
|
||||
> AWS'ın artık **önceki işlemlerin hesaplar arası olarak gerçekleştirilmesini engellediğini** unutmayın:
|
||||
> Dikkat: AWS artık önceki işlemlerin cross account üzerinden gerçekleştirilmesini **engelliyor:**
|
||||
|
||||
### Alias'ı Değiştirme veya Silme
|
||||
Bu saldırı AWS KMS alias'larını siler veya yönlendirir, anahtar çözümlemesini bozar ve bu alias'lara bağlı hizmetlerde derhal arızalara yol açar; sonucunda denial-of-service meydana gelebilir. `kms:DeleteAlias` veya `kms:UpdateAlias` gibi izinlerle bir saldırgan alias'ları kaldırabilir veya yeniden yönlendirebilir ve kriptografik işlemleri (ör. encrypt, describe) bozabilir. Anahtar ID'si yerine alias'ı referans alan herhangi bir servis, alias geri yüklenene veya doğru şekilde yeniden eşlenene kadar başarısız olabilir.
|
||||
Bu saldırı AWS KMS aliases'lerini siler veya yönlendirir, anahtar çözümlemesini bozar ve bu aliases'lere bağlı hizmetlerde anında hatalara yol açarak bir denial-of-service ile sonuçlanır. `kms:DeleteAlias` veya `kms:UpdateAlias` gibi izinlere sahip bir saldırgan, aliases'leri kaldırabilir veya yeniden işaretleyebilir ve kriptografik işlemleri (ör. encrypt, describe) bozabilir. Anahtar ID'si yerine alias'ı referans veren herhangi bir hizmet, alias geri yüklenene veya doğru şekilde yeniden eşlenene kadar başarısız olabilir.
|
||||
```bash
|
||||
# Delete Alias
|
||||
aws kms delete-alias --alias-name alias/<key_alias>
|
||||
@@ -134,8 +134,8 @@ aws kms update-alias \
|
||||
--alias-name alias/<key_alias> \
|
||||
--target-key-id <new_target_key>
|
||||
```
|
||||
### Cancel Key Deletion
|
||||
Bu tür izinlere (`kms:CancelKeyDeletion` ve `kms:EnableKey`) sahip bir aktör, bir AWS KMS customer master key için planlanmış silmeyi iptal edebilir ve daha sonra yeniden etkinleştirebilir. Bu işlem anahtarı kurtarır (başlangıçta Disabled durumunda) ve daha önce korunan verileri decrypt etme yeteneğini geri yükleyerek exfiltration'a olanak sağlar.
|
||||
### Anahtar Silme İptali
|
||||
`kms:CancelKeyDeletion` ve `kms:EnableKey` gibi izinlere sahip bir aktör, bir AWS KMS customer master key için planlanmış silmeyi iptal edebilir ve daha sonra anahtarı yeniden etkinleştirebilir. Bu işlem anahtarı kurtarır (başlangıçta Disabled durumda) ve daha önce korunan verileri çözme yeteneğini geri kazandırır; böylece exfiltration mümkün olur.
|
||||
```bash
|
||||
# Firts cancel de deletion
|
||||
aws kms cancel-key-deletion \
|
||||
@@ -145,15 +145,14 @@ aws kms cancel-key-deletion \
|
||||
aws kms enable-key \
|
||||
--key-id <Key_ID>
|
||||
```
|
||||
### Anahtarı Devre Dışı Bırak
|
||||
|
||||
`kms:DisableKey` izni ile bir aktör, bir AWS KMS customer master key'i devre dışı bırakabilir; bu, anahtarın şifreleme veya şifre çözme için kullanılmasını engeller. Bu, o CMK'ye bağlı hizmetlerin erişimini keser ve anahtar yeniden etkinleştirilmeyene kadar anında kesintilere veya denial-of-service'e yol açabilir.
|
||||
### Disable Key
|
||||
Bir aktör, `kms:DisableKey` izniyle bir AWS KMS customer master key'i devre dışı bırakabilir; bu, anahtarın şifreleme veya şifre çözme için kullanılmasını engeller. Bu durum, söz konusu CMK'ye bağlı olan servislerin erişimini keser ve anahtar yeniden etkinleştirilene kadar hemen aksamalara veya denial-of-service'e yol açabilir.
|
||||
```bash
|
||||
aws kms disable-key \
|
||||
--key-id <key_id>
|
||||
```
|
||||
### Derive Shared Secret
|
||||
`kms:DeriveSharedSecret` izniyle, bir actor KMS'de tutulan private key ile kullanıcı tarafından sağlanan public key'i kullanarak ECDH paylaşılan gizli anahtarını hesaplayabilir.
|
||||
### Paylaşılan Sırrı Türetme
|
||||
`kms:DeriveSharedSecret` iznine sahip bir aktör, KMS tarafından tutulan bir private key ile kullanıcı tarafından sağlanan bir public key'i kullanarak bir ECDH shared secret hesaplayabilir.
|
||||
```bash
|
||||
aws kms derive-shared-secret \
|
||||
--key-id <key_id> \
|
||||
@@ -161,7 +160,7 @@ aws kms derive-shared-secret \
|
||||
--key-agreement-algorithm <algorithm>
|
||||
```
|
||||
### Impersonation via kms:Sign
|
||||
`kms:Sign` izniyle, bir aktör KMS'de saklanan bir CMK'yı private key'i ifşa etmeden verileri kriptografik olarak imzalamak için kullanabilir; bu, impersonation'a olanak tanıyabilecek veya kötü amaçlı eylemleri yetkilendirebilecek geçerli signatures üretir.
|
||||
`kms:Sign` izniyle, bir aktör KMS-stored CMK'yi private key'i açığa çıkarmadan veriyi kriptografik olarak imzalamak için kullanabilir; bu, impersonation'ı mümkün kılabilecek veya kötü amaçlı eylemleri yetkilendirebilecek geçerli imzalar üretir.
|
||||
```bash
|
||||
aws kms sign \
|
||||
--key-id <key-id> \
|
||||
@@ -170,7 +169,7 @@ aws kms sign \
|
||||
--message-type RAW
|
||||
```
|
||||
### DoS with Custom Key Stores
|
||||
`kms:DeleteCustomKeyStore`, `kms:DisconnectCustomKeyStore` veya `kms:UpdateCustomKeyStore` gibi izinlere sahip bir aktör, bir AWS KMS Custom Key Store (CKS) üzerinde değişiklik yapabilir, bağlantısını kesebilir veya silebilir; bu da master anahtarlarının çalışmaz hale gelmesine yol açar. Bu, bu anahtarlara bağlı hizmetlerde şifreleme, şifre çözme ve imzalama işlemlerini bozar ve anında bir denial-of-service'e neden olabilir. Bu nedenle, bu izinlerin kısıtlanması ve izlenmesi kritik öneme sahiptir.
|
||||
`kms:DeleteCustomKeyStore`, `kms:DisconnectCustomKeyStore` veya `kms:UpdateCustomKeyStore` gibi izinlere sahip bir aktör, bir AWS KMS Custom Key Store (CKS)'u değiştirebilir, bağlantısını kesebilir veya silebilir; bu da master anahtarlarını kullanılamaz hale getirir. Bu, bu anahtarlara bağımlı hizmetlerdeki şifreleme, şifre çözme ve imzalama işlemlerini bozarak anında bir denial-of-service'e neden olabilir. Bu nedenle bu izinlerin kısıtlanması ve izlenmesi kritik öneme sahiptir.
|
||||
```bash
|
||||
aws kms delete-custom-key-store --custom-key-store-id <CUSTOM_KEY_STORE_ID>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user