AWS - Sagemaker Privesc
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
iam:PassRole
, sagemaker:CreateNotebookInstance
, sagemaker:CreatePresignedNotebookInstanceUrl
Zacznij tworzyć notatnik z rolą IAM, aby uzyskać do niego dostęp:
Odpowiedź powinna zawierać pole NotebookInstanceArn
, które będzie zawierać ARN nowo utworzonego instancji notatnika. Możemy następnie użyć API create-presigned-notebook-instance-url
, aby wygenerować URL, którego możemy użyć do uzyskania dostępu do instancji notatnika, gdy będzie gotowa:
Przejdź do adresu URL w przeglądarce i kliknij na `Open JupyterLab` w prawym górnym rogu, a następnie przewiń w dół do zakładki “Launcher” i w sekcji “Other” kliknij przycisk “Terminal”.
Teraz możliwe jest uzyskanie dostępu do poświadczeń metadanych roli IAM.
Potencjalny wpływ: Privesc do roli serwisowej sagemaker.
sagemaker:CreatePresignedNotebookInstanceUrl
Jeśli na nim już działają notatniki Jupyter i możesz je wylistować za pomocą sagemaker:ListNotebookInstances
(lub odkryć je w inny sposób). Możesz wygenerować dla nich URL, uzyskać do nich dostęp i ukraść poświadczenia, jak wskazano w poprzedniej technice.
Potencjalny wpływ: Privesc do roli serwisowej sagemaker.
sagemaker:CreateProcessingJob,iam:PassRole
Napastnik z tymi uprawnieniami może sprawić, że sagemaker wykona processingjob z dołączoną rolą sagemaker. Napastnik może wskazać definicję kontenera, który będzie uruchamiany w instancji konta ECS zarządzanego przez AWS, i ukraść poświadczenia dołączonej roli IAM.
Potencjalny wpływ: Privesc do roli serwisu sagemaker.
sagemaker:CreateTrainingJob
, iam:PassRole
Napastnik z tymi uprawnieniami będzie mógł utworzyć zadanie treningowe, uruchamiając dowolny kontener na nim z przypisaną rolą. W związku z tym, atakujący będzie mógł ukraść poświadczenia roli.
Ten scenariusz jest trudniejszy do wykorzystania niż poprzedni, ponieważ musisz wygenerować obraz Dockera, który wyśle rev shell lub poświadczenia bezpośrednio do napastnika (nie możesz wskazać polecenia startowego w konfiguracji zadania treningowego).
Potencjalny wpływ: Privesc do roli serwisu sagemaker określonej.
sagemaker:CreateHyperParameterTuningJob
, iam:PassRole
Atakujący z tymi uprawnieniami będzie (potencjalnie) w stanie stworzyć zadanie treningowe hyperparametrów, uruchamiając dowolny kontener na nim z przypisaną rolą. Nie wykorzystałem tego z powodu braku czasu, ale wygląda to podobnie do wcześniejszych exploitów, śmiało wyślij PR z szczegółami eksploatacji.
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)