Translated ['src/pentesting-cloud/aws-security/aws-privilege-escalation/

This commit is contained in:
Translator
2025-05-09 11:47:56 +00:00
parent 6da1c5585b
commit ea40108cf7
@@ -34,7 +34,7 @@ Na przykład, napastnik z tymi **uprawnieniami do bucketu cloudformation** o naz
]
}
```
I możliwe jest przejęcie, ponieważ istnieje **mały przedział czasowy od momentu przesłania szablonu** do koszyka do momentu, gdy **szablon jest wdrażany**. Napastnik może po prostu stworzyć **funkcję lambda** w swoim koncie, która **wywoła się, gdy zostanie wysłane powiadomienie z koszyka**, i **przejąć** **zawartość** tego **koszyka**.
I przejęcie jest możliwe, ponieważ istnieje **mały czas na przejęcie od momentu przesłania szablonu** do koszyka do momentu, gdy **szablon jest wdrażany**. Napastnik może po prostu stworzyć **funkcję lambda** w swoim koncie, która **wywoła się, gdy wysłane zostanie powiadomienie z koszyka**, i **przejmie** **zawartość** tego **koszyka**.
![](<../../../images/image (174).png>)
@@ -43,29 +43,29 @@ Aby uzyskać więcej informacji, sprawdź oryginalne badania: [https://rhinosecu
### `s3:PutObject`, `s3:GetObject` <a href="#s3putobject-s3getobject" id="s3putobject-s3getobject"></a>
To są uprawnienia do **pobierania i przesyłania obiektów do S3**. Wiele usług w AWS (i poza nim) używa przechowywania S3 do przechowywania **plików konfiguracyjnych**.\
Napastnik z **dostępem do odczytu** może znaleźć na nich **wrażliwe informacje**.\
Napastnik z **dostępem do zapisu** może **zmodyfikować dane, aby nadużyć jakiejś usługi i spróbować podnieść uprawnienia**.\
To są uprawnienia do **pobierania i przesyłania obiektów do S3**. Kilka usług w AWS (i poza nim) używa przechowywania S3 do przechowywania **plików konfiguracyjnych**.\
Napastnik z **dostępem do odczytu** do nich może znaleźć **wrażliwe informacje** w nich.\
Napastnik z **dostępem do zapisu** do nich mógłby **zmodyfikować dane, aby nadużyć jakiejś usługi i spróbować podnieść uprawnienia**.\
Oto kilka przykładów:
- Jeśli instancja EC2 przechowuje **dane użytkownika w koszyku S3**, napastnik może je zmodyfikować, aby **wykonać dowolny kod wewnątrz instancji EC2**.
- Jeśli instancja EC2 przechowuje **dane użytkownika w koszyku S3**, napastnik mógłby je zmodyfikować, aby **wykonać dowolny kod wewnątrz instancji EC2**.
### `s3:PutObject`, `s3:GetObject` (opcjonalnie) nad plikiem stanu terraform
Bardzo często pliki stanu [terraform](https://cloud.hacktricks.wiki/en/pentesting-ci-cd/terraform-security.html) są zapisywane w magazynie blob dostawców chmury, np. AWS S3. Sufiks pliku dla pliku stanu to `.tfstate`, a nazwy koszyków często również wskazują, że zawierają pliki stanu terraform. Zazwyczaj każde konto AWS ma jeden taki koszyk do przechowywania plików stanu, które pokazują stan konta.\
Również zazwyczaj, w rzeczywistych kontach prawie zawsze wszyscy deweloperzy mają `s3:*`, a czasami nawet użytkownicy biznesowi mają `s3:Put*`.
Więc, jeśli masz uprawnienia wymienione nad tymi plikami, istnieje wektor ataku, który pozwala na uzyskanie RCE w pipeline z uprawnieniami `terraform` - najczęściej `AdministratorAccess`, co czyni cię administratorem konta w chmurze. Możesz również użyć tego wektora do przeprowadzenia ataku typu denial of service, powodując, że `terraform` usunie legalne zasoby.
Więc, jeśli masz uprawnienia wymienione nad tymi plikami, istnieje wektor ataku, który pozwala ci uzyskać RCE w pipeline z uprawnieniami `terraform` - najczęściej `AdministratorAccess`, co czyni cię administratorem konta w chmurze. Możesz również użyć tego wektora do przeprowadzenia ataku typu denial of service, powodując, że `terraform` usunie legalne zasoby.
Postępuj zgodnie z opisem w sekcji *Nadużywanie plików stanu Terraform* na stronie *Bezpieczeństwo Terraform* w celu uzyskania bezpośrednio używalnego kodu exploita:
Postępuj zgodnie z opisem w sekcji *Abusing Terraform State Files* na stronie *Terraform Security* w celu uzyskania bezpośrednio używalnego kodu exploita:
{{#ref}}
pentesting-ci-cd/terraform-security.md#abusing-terraform-state-files
../../../pentesting-ci-cd/terraform-security.md#abusing-terraform-state-files
{{#endref}}
### `s3:PutBucketPolicy`
Napastnik, który musi być **z tego samego konta**, w przeciwnym razie wystąpi błąd `The specified method is not allowed`, z tym uprawnieniem będzie mógł przyznać sobie więcej uprawnień nad koszykiem (koszykami), co pozwoli mu na odczyt, zapis, modyfikację, usunięcie i ujawnienie koszyków.
Napastnik, który musi być **z tego samego konta**, w przeciwnym razie wystąpi błąd `The specified method is not allowed`, z tym uprawnieniem będzie mógł przyznać sobie więcej uprawnień do koszyka(ów), co pozwoli mu na odczyt, zapis, modyfikację, usunięcie i ujawnienie koszyków.
```bash
# Update Bucket policy
aws s3api put-bucket-policy --policy file:///root/policy.json --bucket <bucket-name>
@@ -124,7 +124,7 @@ aws s3api put-bucket-policy --policy file:///root/policy.json --bucket <bucket-n
### `s3:GetBucketAcl`, `s3:PutBucketAcl`
Napastnik mógłby nadużyć tych uprawnień, aby **przyznać sobie więcej dostępu** do konkretnych bucketów.\
Zauważ, że napastnik nie musi pochodzić z tego samego konta. Co więcej, dostęp do zapisu
Należy zauważ, że napastnik nie musi pochodzić z tego samego konta. Co więcej, dostęp do zapisu
```bash
# Update bucket ACL
aws s3api get-bucket-acl --bucket <bucket-name>