AWS - Sagemaker Privesc
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
iam:PassRole
, sagemaker:CreateNotebookInstance
, sagemaker:CreatePresignedNotebookInstanceUrl
Comece a criar um notebook com a função IAM para acessar anexada a ele:
A resposta deve conter um campo NotebookInstanceArn
, que conterá o ARN da nova instância de notebook criada. Podemos então usar a API create-presigned-notebook-instance-url
para gerar uma URL que podemos usar para acessar a instância de notebook assim que estiver pronta:
Navegue até a URL com o navegador e clique em `Open JupyterLab` no canto superior direito, em seguida, role para baixo até a aba “Launcher” e, na seção “Other”, clique no botão “Terminal”.
Agora é possível acessar as credenciais de metadados da IAM Role.
Impacto Potencial: Privesc para o papel de serviço sagemaker especificado.
sagemaker:CreatePresignedNotebookInstanceUrl
Se houver notebooks Jupyter já em execução e você puder listá-los com sagemaker:ListNotebookInstances
(ou descobri-los de qualquer outra forma). Você pode gerar uma URL para eles, acessá-los e roubar as credenciais conforme indicado na técnica anterior.
Impacto Potencial: Privesc para o papel de serviço sagemaker anexado.
sagemaker:CreateProcessingJob,iam:PassRole
Um atacante com essas permissões pode fazer sagemaker executar um processingjob com um papel sagemaker anexado a ele. O atacante pode indicar a definição do contêiner que será executado em uma instância de conta ECS gerenciada pela AWS, e roubar as credenciais do papel IAM anexado.
Impacto Potencial: Privesc para o papel de serviço sagemaker especificado.
sagemaker:CreateTrainingJob
, iam:PassRole
Um atacante com essas permissões será capaz de criar um trabalho de treinamento, executando um contêiner arbitrário nele com um papel anexado. Portanto, o atacante poderá roubar as credenciais do papel.
Este cenário é mais difícil de explorar do que o anterior porque você precisa gerar uma imagem Docker que enviará o rev shell ou credenciais diretamente para o atacante (você não pode indicar um comando inicial na configuração do trabalho de treinamento).
Impacto Potencial: Privesc para o papel de serviço sagemaker especificado.
sagemaker:CreateHyperParameterTuningJob
, iam:PassRole
Um atacante com essas permissões poderá (potencialmente) criar um trabalho de treinamento de hiperparâmetros, executando um contêiner arbitrário nele com um papel anexado. Eu não explorei devido à falta de tempo, mas parece semelhante às explorações anteriores, sinta-se à vontade para enviar um PR com os detalhes da exploração.
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)