AWS - SageMaker Enum

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks

Descripción del servicio

Amazon SageMaker es la plataforma gestionada de machine-learning de AWS que conecta notebooks, infraestructura de entrenamiento, orquestación, registries y endpoints gestionados. Una compromisión de recursos de SageMaker normalmente proporciona:

  • Long-lived IAM execution roles con amplio acceso a S3, ECR, Secrets Manager o KMS.
  • Acceso a datasets sensibles almacenados en S3, EFS o dentro de feature stores.
  • Footholds de red dentro de VPCs (Studio apps, training jobs, endpoints).
  • High-privilege presigned URLs que evitan la autenticación del console.

Entender cómo está ensamblado SageMaker es clave antes de pivot, persist, or exfiltrate data.

Componentes principales

  • Studio Domains & Spaces: Web IDE (JupyterLab, Code Editor, RStudio). Cada domain tiene un sistema de archivos EFS compartido y un default execution role.
  • Notebook Instances: Instancias EC2 gestionadas para notebooks independientes; usan execution roles separados.
  • Training / Processing / Transform Jobs: Contenedores efímeros que tiran código desde ECR y datos desde S3.
  • Pipelines & Experiments: Workflows orquestados que describen todos los pasos, inputs y outputs.
  • Models & Endpoints: Artefactos empaquetados desplegados para inference vía endpoints HTTPS.
  • Feature Store & Data Wrangler: Servicios gestionados para preparación de datos y gestión de features.
  • Autopilot & JumpStart: ML automatizado y catálogo curado de modelos.
  • MLflow Tracking Servers: UI/API de MLflow gestionada con presigned access tokens.

Cada recurso referencia un execution role, ubicaciones S3, container images y configuración opcional VPC/KMS — captura todos ellos durante la 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

Anota cualquier relación de confianza entre cuentas (roles de ejecución o S3 buckets con entidades externas) y restricciones básicas como service control policies o SCPs.

Dominios de Studio, Apps y Espacios Compartidos

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

Qué registrar:

  • DomainArn, AppSecurityGroupIds, SubnetIds, DefaultUserSettings.ExecutionRole.
  • EFS montado (HomeEfsFileSystemId) y directorios home de S3.
  • Lifecycle scripts (a menudo contienen credenciales de bootstrap o código adicional push/pull).

Tip

Presigned Studio URLs can bypass authentication if granted broadly.

Notebook Instances & Lifecycle Configs

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

Los metadatos del notebook revelan:

  • Role de ejecución (RoleArn), acceso directo a internet vs. modo solo VPC.
  • Ubicaciones S3 en DefaultCodeRepository, DirectInternetAccess, RootAccess.
  • Scripts de lifecycle para credenciales o hooks de persistencia.

Entrenamiento, Procesamiento, Transform & Batch Jobs

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

Examinar:

  • AlgorithmSpecification.TrainingImage / AppSpecification.ImageUri – qué imágenes ECR están desplegadas.
  • InputDataConfig & OutputDataConfig – S3 buckets, prefijos y claves KMS.
  • ResourceConfig.VolumeKmsKeyId, VpcConfig, EnableNetworkIsolation – determinan la postura de red o de cifrado.
  • HyperParameters pueden leak secretos de entorno o cadenas de conexión.

Pipelines, Experimentos y Ensayos

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

Las definiciones de pipeline detallan cada paso, los roles asociados, las imágenes de contenedor y las variables de entorno. Los componentes de Trial suelen contener URIs de artefactos de entrenamiento, registros de S3 y métricas que sugieren el flujo de datos sensibles.

Modelos, Configuraciones de Endpoint y Endpoints Desplegados

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

Áreas de enfoque:

  • URIs de artefactos del modelo en S3 (PrimaryContainer.ModelDataUrl) y las imágenes de contenedor de inferencia.
  • Configuración de captura de datos del endpoint (S3 bucket, KMS) para posible exfiltración de logs.
  • Endpoints multi-modelo que usan S3DataSource o ModelPackage (verificar empaquetado entre cuentas).
  • Configuraciones de red y security groups adjuntos a los endpoints.

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

Conclusiones de seguridad:

  • Los feature stores en línea replican datos a Kinesis; verifique OnlineStoreConfig.SecurityConfig.KmsKeyId y la VPC.
  • Los flujos de Data Wrangler con frecuencia incrustan credenciales JDBC/Redshift o endpoints privados.
  • Los trabajos de Clarify/Model Monitor exportan datos a S3 que podrían ser legibles públicamente o accesibles entre cuentas.

Servidores de Tracking de MLflow, 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
  • Los servidores de tracking de MLflow almacenan experimentos y artefactos; las presigned URLs pueden exponerlo todo.
  • Los trabajos de Autopilot ejecutan múltiples trabajos de entrenamiento — enumera las salidas en busca de datos ocultos.
  • Las arquitecturas de referencia de JumpStart pueden desplegar roles privilegiados en la cuenta.

Consideraciones de IAM y redes

  • Enumera las políticas de IAM adjuntas a todos los roles de ejecución (Studio, notebooks, training jobs, pipelines, endpoints).
  • Revisa contextos de red: subredes, grupos de seguridad, endpoints de VPC. Muchas organizaciones aíslan los training jobs pero olvidan restringir el tráfico saliente.
  • Revisa las políticas de buckets S3 referenciadas en ModelDataUrl, DataCaptureConfig, InputDataConfig para acceso externo.

Escalada de privilegios

AWS - Sagemaker Privesc

Persistencia

Aws Sagemaker Persistence

Post-explotación

AWS - SageMaker Post-Exploitation

Acceso no autorizado

AWS - SageMaker Unauthenticated Enum

Referencias

Tip

Aprende y practica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Aprende y practica Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Apoya a HackTricks