GCP - Vertex AI Enumeracja
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
Vertex AI
Vertex AI to zunifikowana platforma machine learning Google Cloud do budowania, wdrażania i zarządzania modelami AI w skali. Łączy różne usługi AI i ML w jedną, zintegrowaną platformę, umożliwiając data scientistom i inżynierom ML:
- Trenowanie własnych modeli za pomocą AutoML lub custom training
- Wdrażanie modeli na skalowalnych endpointach do predykcji
- Zarządzanie cyklem życia ML od eksperymentów do produkcji
- Dostęp do pre-trained models z Model Garden
- Monitorowanie i optymalizację wydajności modeli
Agent Engine / Reasoning Engine
W przypadku Agent Engine / Reasoning Engine, aby uzyskać specyficzną enumerację i ścieżki post-exploitation związane z metadata credential theft, P4SA abuse, oraz producer/tenant project pivoting, sprawdź:
GCP - Vertex AI Post Exploitation
Kluczowe komponenty
Models
Vertex AI models reprezentują wytrenowane modele machine learning, które można wdrożyć na endpoints do serwowania predykcji. Modele mogą być:
- Uploaded z custom containers lub model artifacts
- Tworzone przez AutoML training
- Importowane z Model Garden (pre-trained models)
- Versioned z wieloma wersjami na model
Każdy model ma metadane, w tym framework, container image URI, lokalizację artifactów i konfigurację serwowania.
Endpoints
Endpoints to zasoby hostujące wdrożone modele i serwujące predykcje online. Kluczowe cechy:
- Mogą hostować wiele wdrożonych modeli (z rozdzielaniem ruchu)
- Zapewniają HTTPS endpoints do predykcji w czasie rzeczywistym
- Wspierają autoscaling w oparciu o ruch
- Mogą używać dostępu prywatnego lub publicznego
- Wspierają A/B testing poprzez rozdzielanie ruchu
Custom Jobs
Custom jobs pozwalają uruchamiać własny kod treningowy używając własnych kontenerów lub pakietów Python. Funkcje obejmują:
- Wsparcie dla distributed training z wieloma worker poolami
- Konfigurowalne machine types i accelerators (GPU/TPU)
- Dołączanie service account do dostępu do innych zasobów GCP
- Integrację z Vertex AI Tensorboard do wizualizacji
- Opcje VPC connectivity
Hyperparameter Tuning Jobs
Te joby automatycznie wyszukują optymalne hyperparametry, uruchamiając wiele prób treningowych z różnymi kombinacjami parametrów.
Model Garden
Model Garden daje dostęp do:
- Pre-trained Google models
- Open-source models (w tym Hugging Face)
- Third-party models
- Możliwości one-click deployment
Tensorboards
Tensorboards zapewniają wizualizację i monitoring eksperymentów ML, śledząc metryki, grafy modeli i postęp treningu.
Service Accounts & Permissions
Domyślnie usługi Vertex AI używają Compute Engine default service account (PROJECT_NUMBER-compute@developer.gserviceaccount.com), które ma uprawnienia Editor w projekcie. Jednak można określić custom service accounts przy:
- Tworzeniu custom jobs
- Uploadowaniu modeli
- Wdrażaniu modeli na endpoints
To konto usługi jest używane do:
- Dostępu do training data w Cloud Storage
- Zapisywania logów do Cloud Logging
- Dostępu do sekretów z Secret Manager
- Interakcji z innymi usługami GCP
Data Storage
- Model artifacts są przechowywane w bucketach Cloud Storage
- Training data zazwyczaj znajduje się w Cloud Storage lub BigQuery
- Container images są przechowywane w Artifact Registry lub Container Registry
- Logs są wysyłane do Cloud Logging
- Metrics są wysyłane do Cloud Monitoring
Encryption
Domyślnie Vertex AI używa Google-managed encryption keys. Możesz również skonfigurować:
- Customer-managed encryption keys (CMEK) z Cloud KMS
- Szyfrowanie obejmuje model artifacts, training data i endpoints
Networking
Zasoby Vertex AI można skonfigurować dla:
- Public internet access (domyślnie)
- VPC peering dla prywatnego dostępu
- Private Service Connect dla bezpiecznej łączności
- Wsparcia Shared VPC
Enumeracja
# List models
gcloud ai models list --region=<region>
gcloud ai models describe <model-id> --region=<region>
gcloud ai models list-version <model-id> --region=<region>
# List endpoints
gcloud ai endpoints list --region=<region>
gcloud ai endpoints describe <endpoint-id> --region=<region>
gcloud ai endpoints list --list-model-garden-endpoints-only --region=<region>
# List custom jobs
gcloud ai custom-jobs list --region=<region>
gcloud ai custom-jobs describe <job-id> --region=<region>
# Stream logs from a running job
gcloud ai custom-jobs stream-logs <job-id> --region=<region>
# List hyperparameter tuning jobs
gcloud ai hp-tuning-jobs list --region=<region>
gcloud ai hp-tuning-jobs describe <job-id> --region=<region>
# List model monitoring jobs
gcloud ai model-monitoring-jobs list --region=<region>
gcloud ai model-monitoring-jobs describe <job-id> --region=<region>
# List Tensorboards
gcloud ai tensorboards list --region=<region>
gcloud ai tensorboards describe <tensorboard-id> --region=<region>
# List indexes (for vector search)
gcloud ai indexes list --region=<region>
gcloud ai indexes describe <index-id> --region=<region>
# List index endpoints
gcloud ai index-endpoints list --region=<region>
gcloud ai index-endpoints describe <index-endpoint-id> --region=<region>
# Get operations (long-running operations status)
gcloud ai operations describe <operation-id> --region=<region>
# Test endpoint predictions (if you have access)
gcloud ai endpoints predict <endpoint-id> \
--region=<region> \
--json-request=request.json
# Make direct predictions (newer API)
gcloud ai endpoints direct-predict <endpoint-id> \
--region=<region> \
--json-request=request.json
Zbieranie informacji o modelu
# Get detailed model information including versions
gcloud ai models describe <model-id> --region=<region>
# Check specific model version
gcloud ai models describe <model-id>@<version> --region=<region>
# List all versions of a model
gcloud ai models list-version <model-id> --region=<region>
# Get model artifact location (usually a GCS bucket)
gcloud ai models describe <model-id> --region=<region> --format="value(artifactUri)"
# Get container image URI
gcloud ai models describe <model-id> --region=<region> --format="value(containerSpec.imageUri)"
Szczegóły punktu końcowego
# Get endpoint details including deployed models
gcloud ai endpoints describe <endpoint-id> --region=<region>
# Get endpoint URL
gcloud ai endpoints describe <endpoint-id> --region=<region> --format="value(deployedModels[0].displayName)"
# Get service account used by endpoint
gcloud ai endpoints describe <endpoint-id> --region=<region> --format="value(deployedModels[0].serviceAccount)"
# Check traffic split between models
gcloud ai endpoints describe <endpoint-id> --region=<region> --format="value(trafficSplit)"
Informacje o niestandardowym zadaniu
# Get job details including command, args, and service account
gcloud ai custom-jobs describe <job-id> --region=<region>
# Get service account used by job
gcloud ai custom-jobs describe <job-id> --region=<region> --format="value(jobSpec.workerPoolSpecs[0].serviceAccount)"
# Get container image used
gcloud ai custom-jobs describe <job-id> --region=<region> --format="value(jobSpec.workerPoolSpecs[0].containerSpec.imageUri)"
# Check environment variables (may contain secrets)
gcloud ai custom-jobs describe <job-id> --region=<region> --format="value(jobSpec.workerPoolSpecs[0].containerSpec.env)"
# Get network configuration
gcloud ai custom-jobs describe <job-id> --region=<region> --format="value(jobSpec.network)"
Kontrola dostępu
# Note: IAM policies for individual Vertex AI resources are managed at the project level
# Check project-level permissions
gcloud projects get-iam-policy <project-id>
# Check service account permissions
gcloud iam service-accounts get-iam-policy <service-account-email>
# Check if endpoints allow unauthenticated access
# This is controlled by IAM bindings on the endpoint
gcloud projects get-iam-policy <project-id> \
--flatten="bindings[].members" \
--filter="bindings.role:aiplatform.user"
Przechowywanie i artefakty
# Models and training jobs often store artifacts in GCS
# List buckets that might contain model artifacts
gsutil ls
# Common artifact locations:
# gs://<project>-aiplatform-<region>/
# gs://<project>-vertex-ai/
# gs://<custom-bucket>/vertex-ai/
# Download model artifacts if accessible
gsutil -m cp -r gs://<bucket>/path/to/artifacts ./artifacts/
# Check for notebooks in AI Platform Notebooks
gcloud notebooks instances list --location=<location>
gcloud notebooks instances describe <instance-name> --location=<location>
Model Garden
# List Model Garden endpoints
gcloud ai endpoints list --list-model-garden-endpoints-only --region=<region>
# Model Garden models are often deployed with default configurations
# Check for publicly accessible endpoints
Privilege Escalation
Na poniższej stronie możesz sprawdzić, jak abuse Vertex AI permissions to escalate privileges:
Post Exploitation
GCP - Vertex AI Post Exploitation
Źródła
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

