AWS - Sagemaker Privesc
Last updated
Last updated
Aprende y practica Hacking en AWS: Aprende y practica Hacking en GCP:
iam:PassRole
, sagemaker:CreateNotebookInstance
, sagemaker:CreatePresignedNotebookInstanceUrl
Comienza a crear un notebook con el rol IAM para acceder adjunto a él:
La respuesta debe contener un campo NotebookInstanceArn
, que contendrá el ARN de la nueva instancia de notebook creada. Luego podemos usar la API create-presigned-notebook-instance-url
para generar una URL que podemos usar para acceder a la instancia de notebook una vez que esté lista:
Navega a la URL con el navegador y haz clic en `Open JupyterLab` en la parte superior derecha, luego desplázate hacia abajo a la pestaña “Launcher” y en la sección “Other”, haz clic en el botón “Terminal”.
Ahora es posible acceder a las credenciales de metadatos del Rol IAM.
Impacto Potencial: Privesc al rol de servicio de sagemaker especificado.
sagemaker:CreatePresignedNotebookInstanceUrl
Si hay Jupyter notebooks ya en ejecución en él y puedes listarlos con sagemaker:ListNotebookInstances
(o descubrirlos de cualquier otra manera). Puedes generar una URL para ellos, acceder a ellos y robar las credenciales como se indicó en la técnica anterior.
Impacto Potencial: Privesc al rol de servicio de sagemaker adjunto.
sagemaker:CreateProcessingJob,iam:PassRole
Un atacante con esos permisos puede hacer que sagemaker ejecute un processingjob con un rol de sagemaker adjunto. El atacante puede indicar la definición del contenedor que se ejecutará en una instancia de cuenta ECS gestionada por AWS, y robar las credenciales del rol de IAM adjunto.
Impacto Potencial: Privesc al rol de servicio de sagemaker especificado.
sagemaker:CreateTrainingJob
, iam:PassRole
Un atacante con esos permisos podrá crear un trabajo de entrenamiento, ejecutando un contenedor arbitrario en él con un rol adjunto. Por lo tanto, el atacante podrá robar las credenciales del rol.
Este escenario es más difícil de explotar que el anterior porque necesitas generar una imagen de Docker que enviará el rev shell o las credenciales directamente al atacante (no puedes indicar un comando de inicio en la configuración del trabajo de entrenamiento).
Impacto Potencial: Privesc al rol de servicio de sagemaker especificado.
sagemaker:CreateHyperParameterTuningJob
, iam:PassRole
Un atacante con esos permisos podrá (potencialmente) crear un trabajo de entrenamiento de hiperparámetros, ejecutando un contenedor arbitrario en él con un rol adjunto. No he explotado debido a la falta de tiempo, pero parece similar a las explotaciones anteriores, siéntete libre de enviar un PR con los detalles de la explotación.
Aprende y practica Hacking en AWS: Aprende y practica Hacking en GCP:
Revisa los !
Únete al 💬 o al o síguenos en Twitter 🐦 .
Comparte trucos de hacking enviando PRs a los y repositorios de github.