Translated ['src/pentesting-cloud/aws-security/aws-post-exploitation/aws

This commit is contained in:
Translator
2025-08-18 14:56:37 +00:00
parent 65373b68e1
commit 15afc47ba0
2 changed files with 10 additions and 10 deletions
@@ -12,7 +12,7 @@ Aby uzyskać więcej informacji, sprawdź:
### **Złośliwe Lustro VPC -** `ec2:DescribeInstances`, `ec2:RunInstances`, `ec2:CreateSecurityGroup`, `ec2:AuthorizeSecurityGroupIngress`, `ec2:CreateTrafficMirrorTarget`, `ec2:CreateTrafficMirrorSession`, `ec2:CreateTrafficMirrorFilter`, `ec2:CreateTrafficMirrorFilterRule`
Lustrowanie ruchu VPC **duplikuje ruch przychodzący i wychodzący dla instancji EC2 w obrębie VPC** bez potrzeby instalowania czegokolwiek na samych instancjach. Ten zduplikowany ruch byłby zazwyczaj wysyłany do czegoś takiego jak system wykrywania intruzów w sieci (IDS) w celu analizy i monitorowania.\
Lustrowanie ruchu VPC **duplikuje ruch przychodzący i wychodzący dla instancji EC2 w obrębie VPC** bez potrzeby instalowania czegokolwiek na samych instancjach. Ten zduplikowany ruch byłby zazwyczaj wysyłany do systemu wykrywania intruzów w sieci (IDS) w celu analizy i monitorowania.\
Napastnik mógłby to wykorzystać do przechwycenia całego ruchu i uzyskania wrażliwych informacji:
Aby uzyskać więcej informacji, sprawdź tę stronę:
@@ -81,7 +81,7 @@ aws ec2 authorize-security-group-ingress --group-id <sg-id> --protocol tcp --por
```
### Privesc to ECS
Możliwe jest uruchomienie instancji EC2 i zarejestrowanie jej do użycia w celu uruchomienia instancji ECS, a następnie kradzież danych instancji ECS.
Możliwe jest uruchomienie instancji EC2 i zarejestrowanie jej do użycia w celu uruchamiania instancji ECS, a następnie kradzież danych instancji ECS.
For [**more information check this**](../../aws-privilege-escalation/aws-ec2-privesc.md#privesc-to-ecs).
@@ -159,7 +159,7 @@ aws ssm start-session --target i-0123456789abcdef0 \
--parameters "portNumber"="8834","localPortNumber"="8835"
# Browse to http://localhost:8835
```
Wskazówka: Skompresuj i zaszyfruj dowody przed ich eksfiltracją, aby CloudTrail nie rejestrował treści w postaci tekstu jawnego:
Wskazówka: Skonpresuj i zaszyfruj dowody przed ich eksfiltracją, aby CloudTrail nie rejestrował treści w postaci tekstu jawnego:
```bash
# On the instance
7z a evidence.7z /path/to/files/* -p'Str0ngPass!'
@@ -178,7 +178,7 @@ aws ec2 modify-snapshot-attribute --snapshot-id <snapshot_ID> --create-volume-pe
```
### EBS Ransomware PoC
Dowód koncepcji podobny do demonstracji Ransomware przedstawionej w notatkach dotyczących post-exploitation S3. KMS powinno być przemianowane na RMS, czyli Ransomware Management Service, biorąc pod uwagę, jak łatwo jest go używać do szyfrowania różnych usług AWS.
Dowód koncepcji podobny do demonstracji Ransomware przedstawionej w notatkach dotyczących post-exploitation S3. KMS powinno być nazwane RMS, czyli Ransomware Management Service, biorąc pod uwagę, jak łatwo jest go używać do szyfrowania różnych usług AWS.
Najpierw z konta AWS 'atakującego' utwórz klucz zarządzany przez klienta w KMS. W tym przykładzie pozwolimy AWS zarządzać danymi klucza, ale w realistycznym scenariuszu złośliwy aktor zachowałby dane klucza poza kontrolą AWS. Zmień politykę klucza, aby zezwolić na użycie klucza przez dowolny podmiot AWS. W przypadku tej polityki klucza nazwa konta to 'AttackSim', a reguła polityki zezwalająca na pełny dostęp nazywa się 'Outside Encryption'.
```
@@ -280,11 +280,11 @@ Reguła polityki klucza musi mieć włączone następujące uprawnienia, aby umo
- `kms:GenerateDataKeyWithoutPlainText`
- `kms:ReEncrypt`
Teraz z publicznie dostępnym kluczem do użycia. Możemy użyć konta 'ofiary', które ma uruchomione instancje EC2 z podłączonymi nieszyfrowanymi woluminami EBS. Woluminy EBS tego konta 'ofiary' są celem naszego ataku na szyfrowanie, ten atak zakłada naruszenie konta AWS o wysokich uprawnieniach.
Teraz z publicznie dostępnym kluczem do użycia. Możemy użyć konta 'ofiary', które ma uruchomione instancje EC2 z dołączonymi nieszyfrowanymi woluminami EBS. Woluminy EBS tego konta 'ofiary' są celem naszego ataku na szyfrowanie, ten atak zakłada naruszenie konta AWS o wysokich uprawnieniach.
![Pasted image 20231231172655](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/5b9a96cd-6006-4965-84a4-b090456f90c6) ![Pasted image 20231231172734](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/4294289c-0dbd-4eb6-a484-60b4e4266459)
Podobnie jak w przypadku przykładu ransomware S3. Ten atak stworzy kopie podłączonych woluminów EBS za pomocą migawków, użyje publicznie dostępnego klucza z konta 'atakującego' do szyfrowania nowych woluminów EBS, następnie odłączy oryginalne woluminy EBS od instancji EC2 i je usunie, a na końcu usunie migawki użyte do stworzenia nowo szyfrowanych woluminów EBS. ![Pasted image 20231231173130](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/34808990-2b3b-4975-a523-8ee45874279e)
Podobnie jak w przykładzie ransomware S3. Ten atak stworzy kopie dołączonych woluminów EBS za pomocą migawków, użyje publicznie dostępnego klucza z konta 'atakującego' do szyfrowania nowych woluminów EBS, następnie odłączy oryginalne woluminy EBS od instancji EC2 i je usunie, a na końcu usunie migawki użyte do stworzenia nowo szyfrowanych woluminów EBS. ![Pasted image 20231231173130](https://github.com/DialMforMukduk/hacktricks-cloud/assets/35155877/34808990-2b3b-4975-a523-8ee45874279e)
W rezultacie w koncie pozostaną tylko szyfrowane woluminy EBS.
@@ -13,11 +13,11 @@ Aby uzyskać więcej informacji o Cloud Build, sprawdź:
### `cloudbuild.builds.create`, `iam.serviceAccounts.actAs`
Dzięki temu uprawnieniu możesz **złożyć budowę w chmurze**. Maszyna cloudbuild będzie miała w swoim systemie plików **domyślnie token konta usługi cloudbuild**: `<PROJECT_NUMBER>@cloudbuild.gserviceaccount.com`. Możesz jednak **wskazać dowolne konto usługi w projekcie** w konfiguracji cloudbuild.\
Dlatego możesz po prostu sprawić, aby maszyna wyeksportowała token na twój serwer lub **uzyskać powrotną powłokę wewnątrz niej i zdobyć token** (plik zawierający token może się zmieniać).
Dlatego możesz po prostu sprawić, że maszyna wyeksfiltruje token na twój serwer lub **uzyskać powrotną powłokę wewnątrz niej i zdobyć token** (plik zawierający token może się zmieniać).
#### Bezpośrednia eksploatacja za pomocą gcloud CLI
1- Utwórz `cloudbuild.yaml` i zmodyfikuj go danymi swojego nasłuchiwacza
1- Utwórz `cloudbuild.yaml` i zmodyfikuj go danymi swojego nasłuchiwacza.
```yaml
steps:
- name: bash
@@ -32,7 +32,7 @@ logging: CLOUD_LOGGING_ONLY
gcloud builds submit --no-source --config="./cloudbuild.yaml" --service-account="projects/<PROJECT>/serviceAccounts/<SERVICE_ACCOUNT_ID>@<PROJECT_ID>.iam.gserviceaccount.com
```
#### Używanie biblioteki python gcloud
Możesz znaleźć oryginalny skrypt exploitujący [**tutaj na GitHubie**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py) (ale lokalizacja, z której pobiera token, nie działała dla mnie). Dlatego sprawdź skrypt do automatyzacji [**tworzenia, eksploatacji i czyszczenia podatnego środowiska tutaj**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) oraz skrypt python do uzyskania odwrotnego powłoki wewnątrz maszyny cloudbuild i [**ukradnięcia go tutaj**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py) (w kodzie możesz znaleźć, jak określić inne konta serwisowe)**.**
Możesz znaleźć oryginalny skrypt exploitujący [**tutaj na GitHubie**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py) (ale lokalizacja, z której pobiera token, nie działała dla mnie). Dlatego sprawdź skrypt do automatyzacji [**tworzenia, eksploatacji i czyszczenia podatnego środowiska tutaj**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) oraz skrypt python do uzyskania odwrotnego powłoki wewnątrz maszyny cloudbuild i [**ukradnij go tutaj**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py) (w kodzie możesz znaleźć, jak określić inne konta serwisowe)**.**
Aby uzyskać bardziej szczegółowe wyjaśnienie, odwiedź [https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/](https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/)
@@ -59,7 +59,7 @@ curl -X POST \
```
### `cloudbuild.connections.fetchLinkableRepositories`
Dzięki temu uprawnieniu możesz **uzyskać dostęp do repozytoriów, do których ma dostęp połączenie:**
Z tą uprawnieniem możesz **uzyskać dostęp do repozytoriów, do których ma dostęp połączenie:**
```bash
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \