Translated ['src/pentesting-ci-cd/terraform-security.md', 'src/pentestin

This commit is contained in:
Translator
2025-01-05 20:24:38 +00:00
parent 78fe5dd7c6
commit dfcb967c46
3 changed files with 35 additions and 35 deletions

View File

@@ -14,9 +14,9 @@ DynamoDB hakkında daha fazla bilgi için kontrol edin:
Mart 2024'ten itibaren, AWS DynamoDB için *kaynak tabanlı politikalar* sunmaktadır ([AWS News](https://aws.amazon.com/about-aws/whats-new/2024/03/amazon-dynamodb-resource-based-policies/)).
Bu nedenle, bir tablo için `dynamodb:PutResourcePolicy`'ye sahipseniz, kendinize veya başka bir kullanıcıya tabloya tam erişim verebilirsiniz.
Yani, bir tablo için `dynamodb:PutResourcePolicy`'ye sahipseniz, kendinize veya başka bir kullanıcıya tabloya tam erişim verebilirsiniz.
`dynamodb:PutResourcePolicy`'yi rastgele bir kullanıcıya vermek genellikle yanlışlıkla olur; eğer yöneticiler `dynamodb:Put*` vermenin yalnızca kullanıcının veritabanına öğe eklemesine izin vereceğini düşünürse - veya bu izin setini Mart 2024'ten önce verdilerse...
`dynamodb:PutResourcePolicy`'yi rastgele bir kullanıcıya vermek genellikle yanlışlıkla olur; eğer yöneticiler `dynamodb:Put*` vermenin yalnızca kullanıcının veritabanına öğe eklemesine izin vereceğini düşünürse - ya da bu izin setini Mart 2024'ten önce verdilerse...
İdeal olarak, diğer potansiyel olarak hayati izinleri geçersiz kılmamak için `dynamodb:GetResourcePolicy`'ye de sahip olmalısınız, böylece yalnızca ihtiyaç duyduğunuz ek izinleri ekleyebilirsiniz:
```bash
@@ -26,7 +26,7 @@ aws dynamodb get-resource-policy \
--query 'Policy' \
--output text > policy.json
```
Eğer mevcut politikayı alamıyorsanız, sadece bu politikayı kullanın; bu, tablonuz üzerinde tam erişim sağlar:
Eğer mevcut politikayı alamıyorsanız, sadece aşağıdaki politikayı kullanın; bu, tablonuz üzerinde tam erişim sağlar:
```json
{
"Version": "2012-10-17",
@@ -61,7 +61,7 @@ Artık ihtiyaç duyduğunuz izinlere sahip olmalısınız.
### Post Exploitation
Bildiğim kadarıyla, sadece bazı AWS `dynamodb` izinlerine sahip olarak AWS'de yetkileri artırmanın **başka doğrudan bir yolu yoktur**. Tabloalardan **hassas** bilgileri okuyabilir (bu bilgiler AWS kimlik bilgilerini içerebilir) ve tablolara **bilgi yazabilirsiniz** (bu, diğer güvenlik açıklarını tetikleyebilir, örneğin lambda kod enjeksiyonları...) ancak bu seçeneklerin hepsi zaten **DynamoDB Post Exploitation sayfasında** dikkate alınmıştır:
Bildiğim kadarıyla, sadece bazı AWS `dynamodb` izinlerine sahip olarak AWS'de yetki yükseltmenin **başka doğrudan bir yolu yoktur**. Tabloalardan **hassas** bilgileri okuyabilir (bu bilgiler AWS kimlik bilgilerini içerebilir) ve tablolara **bilgi yazabilirsiniz** (bu, diğer güvenlik açıklarını tetikleyebilir, örneğin lambda kod enjeksiyonları...) ancak bu seçeneklerin hepsi zaten **DynamoDB Post Exploitation sayfasında** dikkate alınmıştır:
{{#ref}}
../aws-post-exploitation/aws-dynamodb-post-exploitation.md

View File

@@ -34,7 +34,7 @@
]
}
```
Ve ele geçirme, **şablonun yüklendiği andan** **şablonun dağıtıldığı ana** kadar olan **küçük bir zaman penceresi** olduğu için mümkündür. Bir saldırgan, hesabında **bir lambda fonksiyonu** oluşturabilir ve bu fonksiyon **bir bucket bildirimi gönderildiğinde tetiklenecek** ve **o bucket'ın** **içeriğini ele geçirecektir**.
Ve ele geçirme, **şablonun yüklendiği andan** **şablonun dağıtıldığı ana kadar** olan **küçük bir zaman penceresi** olduğu için mümkündür. Bir saldırgan, hesabında **bir lambda fonksiyonu** oluşturabilir ve bu fonksiyon **bir bucket bildirimi gönderildiğinde tetiklenecek** ve **o bucket'ın içeriğini ele geçirecektir**.
![](<../../../images/image (174).png>)
@@ -45,7 +45,7 @@ Daha fazla bilgi için orijinal araştırmaya bakın: [https://rhinosecuritylabs
Bunlar **S3'e nesne yüklemek ve almak için** gereken izinlerdir. AWS içindeki (ve dışındaki) çeşitli hizmetler, **konfigürasyon dosyalarını** depolamak için S3 depolamasını kullanır.\
Onlara **okuma erişimi** olan bir saldırgan, üzerinde **hassas bilgiler** bulabilir.\
Onlara **yazma erişimi** olan bir saldırgan, **verileri değiştirebilir, bazı hizmetleri kötüye kullanabilir ve ayrıcalıkları artırmaya çalışabilir**.\
Onlara **yazma erişimi** olan bir saldırgan, **verileri değiştirerek bazı hizmetleri kötüye kullanabilir ve ayrıcalıkları artırmaya çalışabilir**.\
Bunlar bazı örneklerdir:
- Eğer bir EC2 örneği **kullanıcı verilerini bir S3 bucket'ında** depoluyorsa, bir saldırgan bunu **EC2 örneği içinde rastgele kod çalıştırmak için değiştirebilir**.
@@ -54,7 +54,7 @@ Bunlar bazı örneklerdir:
[terraform](https://cloud.hacktricks.wiki/en/pentesting-ci-cd/terraform-security.html) durum dosyalarının bulut sağlayıcılarının blob depolama alanlarına kaydedilmesi oldukça yaygındır, örneğin AWS S3. Bir durum dosyasının dosya uzantısı `.tfstate`dir ve bucket adları genellikle terraform durum dosyalarını içerdiğini gösterir. Genellikle, her AWS hesabının durum dosyalarını depolamak için böyle bir bucket'ı vardır. Ayrıca genellikle, gerçek dünya hesaplarında neredeyse her geliştiricinin `s3:*` ve bazen hatta iş kullanıcılarının `s3:Put*` erişimi vardır.
Yani, bu dosyalar üzerindeki izinlere sahipseniz, `terraform` ayrıcalıklarıyla, çoğu zaman `AdministratorAccess` ile, pipeline'da RCE elde etmenizi sağlayan bir saldırı vektörü vardır, bu da sizi bulut hesabının yöneticisi yapar. Ayrıca, `terraform`'un meşru kaynakları silmesini sağlayarak bir hizmet reddi saldırısı yapmak için bu vektörü kullanabilirsiniz.
Bu nedenle, bu dosyalar üzerindeki izinlere sahipseniz, `terraform` ayrıcalıklarıyla pipeline'da RCE elde etmenizi sağlayan bir saldırı vektörü vardır - çoğu zaman `AdministratorAccess`, sizi bulut hesabının yöneticisi yapar. Ayrıca, `terraform`'un meşru kaynakları silmesini sağlayarak bir hizmet reddi saldırısı yapmak için bu vektörü kullanabilirsiniz.
Doğrudan kullanılabilir istismar kodu için *Terraform Güvenliği* sayfasının *Terraform Durum Dosyalarını Kötüye Kullanma* bölümündeki açıklamayı takip edin:
@@ -122,7 +122,7 @@ aws s3api put-bucket-policy --policy file:///root/policy.json --bucket <bucket-n
```
### `s3:GetBucketAcl`, `s3:PutBucketAcl`
Bir saldırgan, bu izinleri **belirli bucket'lar üzerinde daha fazla erişim sağlamak için** kötüye kullanabilir.\
Bir saldırgan, bu izinleri **belirli bucket'lar üzerinde daha fazla erişim sağlamak** için kötüye kullanabilir.\
Saldırganın aynı hesapta olması gerekmediğini unutmayın. Ayrıca yazma erişimi
```bash
# Update bucket ACL