AWS - SageMaker Enum
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.
Przegląd usługi
Amazon SageMaker jest zarządzaną przez AWS platformą uczenia maszynowego, która spaja together notebooks, infrastrukturę treningową, orkiestrację, rejestry oraz zarządzane endpoints. A compromise of SageMaker resources typically provides:
- Długotrwałe execution roles IAM z szerokim dostępem do S3, ECR, Secrets Manager lub KMS.
- Dostęp do wrażliwych zbiorów danych przechowywanych w S3, EFS lub wewnątrz feature stores.
- Punkty zaczepienia w sieci wewnątrz VPC (Studio apps, training jobs, endpoints).
- Presigned URLs o wysokich uprawnieniach, które omijają uwierzytelnianie w konsoli.
Zrozumienie, jak SageMaker jest złożony, jest kluczowe zanim wykonasz pivot, persist, lub exfiltrate data.
Core Building Blocks
- Studio Domains & Spaces: Web IDE (JupyterLab, Code Editor, RStudio). Każdy domain ma współdzielony system plików EFS i domyślną execution role.
- Notebook Instances: Zarządzane instancje EC2 dla standalone notebooks; używają osobnych execution roles.
- Training / Processing / Transform Jobs: Ephemeral containers, które pobierają kod z ECR i dane ze S3.
- Pipelines & Experiments: Orkiestracje workflow opisujące wszystkie kroki, inputy i outputy.
- Models & Endpoints: Spakowane artefakty wdrożone do inference przez HTTPS endpoints.
- Feature Store & Data Wrangler: Zarządzane usługi do przygotowania danych i zarządzania cechami.
- Autopilot & JumpStart: Zautomatyzowane ML i kuratorowany katalog modeli.
- MLflow Tracking Servers: Zarządzane UI/API MLflow z presigned access tokens.
Każdy zasób odwołuje się do execution role, lokalizacji S3, container images oraz opcjonalnej konfiguracji VPC/KMS — uchwyć je wszystkie podczas enumeration.
Account & Global Metadata
REGION=us-east-1
# Portfolio status, used when provisioning Studio resources
aws sagemaker get-sagemaker-servicecatalog-portfolio-status --region $REGION
# List execution roles used by models (extend to other resources as needed)
aws sagemaker list-models --region $REGION --query 'Models[].ExecutionRoleArn' --output text | tr ' ' '
' | sort -u
# Generic tag sweep across any SageMaker ARN you know
aws sagemaker list-tags --resource-arn <sagemaker-arn> --region $REGION
Zanotuj wszelkie cross-account trust (execution roles lub S3 buckets z external principals) oraz podstawowe ograniczenia, takie jak service control policies lub SCPs.
Domeny Studio, Aplikacje i Wspólne Przestrzenie
aws sagemaker list-domains --region $REGION
aws sagemaker describe-domain --domain-id <domain-id> --region $REGION
aws sagemaker list-user-profiles --domain-id-equals <domain-id> --region $REGION
aws sagemaker describe-user-profile --domain-id <domain-id> --user-profile-name <profile> --region $REGION
# Enumerate apps (JupyterServer, KernelGateway, RStudioServerPro, CodeEditor, Canvas, etc.)
aws sagemaker list-apps --domain-id-equals <domain-id> --region $REGION
aws sagemaker describe-app --domain-id <domain-id> --user-profile-name <profile> --app-type JupyterServer --app-name default --region $REGION
# Shared collaborative spaces
aws sagemaker list-spaces --domain-id-equals <domain-id> --region $REGION
aws sagemaker describe-space --domain-id <domain-id> --space-name <space> --region $REGION
# Studio lifecycle configurations (shell scripts at start/stop)
aws sagemaker list-studio-lifecycle-configs --region $REGION
aws sagemaker describe-studio-lifecycle-config --studio-lifecycle-config-name <name> --region $REGION
Co zapisać:
DomainArn,AppSecurityGroupIds,SubnetIds,DefaultUserSettings.ExecutionRole.- Zamontowane EFS (
HomeEfsFileSystemId) oraz katalogi domowe S3. - Skrypty cyklu życia (często zawierają bootstrap credentials lub dodatkowy kod do push/pull).
Tip
Presigned Studio URLs mogą obejść uwierzytelnianie, jeśli są przyznane zbyt szeroko.
Instancje Notebooków i konfiguracje cyklu życia
aws sagemaker list-notebook-instances --region $REGION
aws sagemaker describe-notebook-instance --notebook-instance-name <name> --region $REGION
aws sagemaker list-notebook-instance-lifecycle-configs --region $REGION
aws sagemaker describe-notebook-instance-lifecycle-config --notebook-instance-lifecycle-config-name <cfg> --region $REGION
Metadane notebooka ujawniają:
- Rola wykonawcza (
RoleArn), bezpośredni dostęp do internetu vs. tryb tylko VPC. - Lokalizacje S3 w
DefaultCodeRepository,DirectInternetAccess,RootAccess. - Skrypty lifecycle umożliwiające pozyskanie poświadczeń lub wdrożenie mechanizmów utrwalania.
Trening, przetwarzanie, transformacja i zadania wsadowe
aws sagemaker list-training-jobs --region $REGION
aws sagemaker describe-training-job --training-job-name <job> --region $REGION
aws sagemaker list-processing-jobs --region $REGION
aws sagemaker describe-processing-job --processing-job-name <job> --region $REGION
aws sagemaker list-transform-jobs --region $REGION
aws sagemaker describe-transform-job --transform-job-name <job> --region $REGION
Skrupulatnie sprawdź:
AlgorithmSpecification.TrainingImage/AppSpecification.ImageUri– które obrazy ECR są wdrożone.InputDataConfig&OutputDataConfig– S3 buckets, prefixes, and KMS keys.ResourceConfig.VolumeKmsKeyId,VpcConfig,EnableNetworkIsolation– określają konfigurację sieciową lub ustawienia szyfrowania.HyperParametersmogą leak environment secrets lub connection strings.
Pipelines, Experiments & Trials
aws sagemaker list-pipelines --region $REGION
aws sagemaker list-pipeline-executions --pipeline-name <pipeline> --region $REGION
aws sagemaker describe-pipeline --pipeline-name <pipeline> --region $REGION
aws sagemaker list-experiments --region $REGION
aws sagemaker list-trials --experiment-name <experiment> --region $REGION
aws sagemaker list-trial-components --trial-name <trial> --region $REGION
Definicje potoku opisują każdy krok, powiązane role, obrazy kontenerów i zmienne środowiskowe. Komponenty Trial często zawierają URI artefaktów treningowych, logi S3 i metryki, które sugerują przepływ danych wrażliwych.
Modele, konfiguracje endpointów & wdrożone endpointy
aws sagemaker list-models --region $REGION
aws sagemaker describe-model --model-name <name> --region $REGION
aws sagemaker list-endpoint-configs --region $REGION
aws sagemaker describe-endpoint-config --endpoint-config-name <cfg> --region $REGION
aws sagemaker list-endpoints --region $REGION
aws sagemaker describe-endpoint --endpoint-name <endpoint> --region $REGION
Obszary zainteresowania:
- URI artefaktów modeli w S3 (
PrimaryContainer.ModelDataUrl) oraz obrazy kontenerów do inferencji. - Konfiguracja przechwytywania danych endpointu (S3 bucket, KMS) pod kątem możliwej eksfiltracji logów.
- Endpointy multi-model używające
S3DataSourcelubModelPackage(sprawdź cross-account packaging). - Konfiguracje sieciowe i grupy zabezpieczeń przypisane do endpointów.
Feature Store, Data Wrangler & Clarify
aws sagemaker list-feature-groups --region $REGION
aws sagemaker describe-feature-group --feature-group-name <feature-group> --region $REGION
aws sagemaker list-data-wrangler-flows --region $REGION
aws sagemaker describe-data-wrangler-flow --flow-name <flow> --region $REGION
aws sagemaker list-model-quality-job-definitions --region $REGION
aws sagemaker list-model-monitoring-schedule --region $REGION
Wnioski dotyczące bezpieczeństwa:
- Online feature stores replikują dane do Kinesis; sprawdź
OnlineStoreConfig.SecurityConfig.KmsKeyIdi VPC. - Data Wrangler flows często zawierają osadzone poświadczenia JDBC/Redshift lub prywatne endpoints.
- Clarify/Model Monitor jobs eksportują dane do S3, które mogą być publicznie czytelne (world-readable) lub dostępne z innych kont (cross-account).
MLflow Tracking Servers, Autopilot & JumpStart
aws sagemaker list-mlflow-tracking-servers --region $REGION
aws sagemaker describe-mlflow-tracking-server --tracking-server-name <name> --region $REGION
aws sagemaker list-auto-ml-jobs --region $REGION
aws sagemaker describe-auto-ml-job --auto-ml-job-name <name> --region $REGION
aws sagemaker list-jumpstart-models --region $REGION
aws sagemaker list-jumpstart-script-resources --region $REGION
- MLflow tracking servers przechowują eksperymenty i artefakty; presigned URLs mogą ujawnić wszystko.
- Autopilot jobs uruchamiają wiele training jobs — enumerate outputs w poszukiwaniu ukrytych danych.
- Architektury referencyjne JumpStart mogą wdrażać privileged roles w obrębie konta.
Rozważania dotyczące IAM i sieci
- Wylicz IAM policies przypisane do wszystkich execution roles (Studio, notebooks, training jobs, pipelines, endpoints).
- Sprawdź konteksty sieciowe: subnets, security groups, VPC endpoints. Wiele organizacji izoluje training jobs, ale zapomina ograniczyć outbound traffic.
- Przejrzyj S3 bucket policies referencjonowane w
ModelDataUrl,DataCaptureConfig,InputDataConfigpod kątem dostępu zewnętrznego.
Privilege Escalation
Persistence
Post-Exploitation
AWS - SageMaker Post-Exploitation
Unauthorized Access
AWS - SageMaker Unauthenticated Enum
Referencje
- AWS SageMaker Documentation
- AWS CLI SageMaker Reference
- SageMaker Studio Architecture
- SageMaker Security Best Practices
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

