AWS - EFS Enum

Support HackTricks

EFS

Basic Information

Amazon Elastic File System (EFS) को AWS द्वारा पूर्ण रूप से प्रबंधित, स्केलेबल, और लचीले नेटवर्क फ़ाइल सिस्टम के रूप में प्रस्तुत किया गया है। यह सेवा फ़ाइल सिस्टम बनाने और कॉन्फ़िगर करने की सुविधा प्रदान करती है जिन्हें कई EC2 उदाहरणों और अन्य AWS सेवाओं द्वारा एक साथ एक्सेस किया जा सकता है। EFS की प्रमुख विशेषताओं में स्वचालित रूप से स्केल करने की क्षमता, निम्न-लेटेंसी एक्सेस प्रदान करना, उच्च-थ्रूपुट कार्यभार का समर्थन करना, डेटा की स्थिरता की गारंटी देना, और विभिन्न AWS सुरक्षा तंत्रों के साथ सहजता से एकीकृत होना शामिल है।

डिफ़ॉल्ट रूप से, माउंट करने के लिए EFS फ़ोल्डर / होगा लेकिन इसका अलग नाम हो सकता है।

Network Access

EFS एक VPC में बनाया जाता है और डिफ़ॉल्ट रूप से सभी VPC उपनेटवर्क में सुलभ होगा। हालाँकि, EFS का एक सुरक्षा समूह होगा। EFS को माउंट करने के लिए EC2 (या किसी अन्य AWS सेवा) को एक इनबाउंड NFS (2049 पोर्ट) नियम को EFS सुरक्षा समूह में अनुमति देना आवश्यक है

इसके बिना, आप NFS सेवा से संपर्क नहीं कर पाएंगे

इस बारे में अधिक जानकारी के लिए देखें: https://stackoverflow.com/questions/38632222/aws-efs-connection-timeout-at-mount

Enumeration

# Get filesystems and access policies (if any)
aws efs describe-file-systems
aws efs describe-file-system-policy --file-system-id <id>

# Get subnetworks and IP addresses where you can find the file system
aws efs describe-mount-targets --file-system-id <id>
aws efs describe-mount-target-security-groups --mount-target-id <id>
aws ec2 describe-security-groups --group-ids <sg_id>

# Get other access points
aws efs describe-access-points

# Get replication configurations
aws efs describe-replication-configurations

# Search for NFS in EC2 networks
sudo nmap -T4 -Pn -p 2049 --open 10.10.10.0/20 # or /16 to be sure

यह हो सकता है कि EFS माउंट पॉइंट उसी VPC के अंदर हो लेकिन एक अलग सबनेट में। यदि आप सुनिश्चित करना चाहते हैं कि आप सभी EFS पॉइंट्स खोजें, तो /16 नेटमास्क को स्कैन करना बेहतर होगा

Mount EFS

sudo mkdir /efs

## Mount found
sudo apt install nfs-common
sudo mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport <IP>:/ /efs

## Mount with efs type
## You need to have installed the package amazon-efs-utils
sudo yum install amazon-efs-utils # If centos
sudo apt-get install amazon-efs-utils # If ubuntu
sudo mount -t efs <file-system-id/EFS DNS name>:/ /efs/

IAM Access

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

{
"Version": "2012-10-17",
"Id": "efs-policy-wizard-2ca2ba76-5d83-40be-8557-8f6c19eaa797",
"Statement": [
{
"Sid": "efs-statement-e7f4b04c-ad75-4a7f-a316-4e5d12f0dbf5",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "",
"Resource": "arn:aws:elasticfilesystem:us-east-1:318142138553:file-system/fs-0ab66ad201b58a018",
"Condition": {
"Bool": {
"elasticfilesystem:AccessedViaMountTarget": "true"
}
}
}
]
}

या गुमनाम पहुँच को रोक देगा:

ध्यान दें कि IAM द्वारा सुरक्षित फ़ाइल सिस्टम को माउंट करने के लिए आपको माउंट कमांड में "efs" प्रकार का उपयोग करना अनिवार्य है:

sudo mkdir /efs
sudo mount -t efs -o tls,iam  <file-system-id/EFS DNS name>:/ /efs/
# To use a different pforile from ~/.aws/credentials
# You can use: -o tls,iam,awsprofile=namedprofile

Access Points

Access points एक application-विशिष्ट प्रवेश बिंदु हैं एक EFS फ़ाइल प्रणाली में जो साझा डेटा सेट्स तक एप्लिकेशन पहुंच प्रबंधित करना आसान बनाते हैं।

जब आप एक access point बनाते हैं, तो आप फाइलों और निर्देशिकाओं के लिए मालिक और POSIX अनुमतियाँ निर्दिष्ट कर सकते हैं जो access point के माध्यम से बनाई जाती हैं। आप access point के लिए एक कस्टम रूट निर्देशिका भी परिभाषित कर सकते हैं, या तो एक मौजूदा निर्देशिका निर्दिष्ट करके या इच्छित अनुमतियों के साथ एक नई बनाकर। यह आपको आपकी EFS फ़ाइल प्रणाली तक पहुंच को प्रति-एप्लिकेशन या प्रति-उपयोगकर्ता आधार पर नियंत्रित करने की अनुमति देता है, जिससे आपके साझा फ़ाइल डेटा को प्रबंधित और सुरक्षित करना आसान हो जाता है।

आप access point से फ़ाइल प्रणाली को इस तरह माउंट कर सकते हैं:

# Use IAM if you need to use iam permissions
sudo mount -t efs -o tls,[iam],accesspoint=<access-point-id> \
<file-system-id/EFS DNS> /efs/

ध्यान दें कि एक एक्सेस पॉइंट को माउंट करने की कोशिश करने पर भी आपको नेटवर्क के माध्यम से NFS सेवा से संपर्क करने में सक्षम होना चाहिए, और यदि EFS में एक फ़ाइल प्रणाली नीति है, तो आपको इसे माउंट करने के लिए पर्याप्त IAM अनुमतियाँ चाहिए।

एक्सेस पॉइंट का उपयोग निम्नलिखित उद्देश्यों के लिए किया जा सकता है:

  • अनुमतियों के प्रबंधन को सरल बनाना: प्रत्येक एक्सेस पॉइंट के लिए एक POSIX उपयोगकर्ता और समूह को परिभाषित करके, आप बिना अंतर्निहित फ़ाइल प्रणाली की अनुमतियों को संशोधित किए विभिन्न अनुप्रयोगों या उपयोगकर्ताओं के लिए पहुँच अनुमतियों को आसानी से प्रबंधित कर सकते हैं।

  • एक रूट निर्देशिका को लागू करना: एक्सेस पॉइंट EFS फ़ाइल प्रणाली के भीतर एक विशिष्ट निर्देशिका तक पहुँच को प्रतिबंधित कर सकते हैं, यह सुनिश्चित करते हुए कि प्रत्येक अनुप्रयोग या उपयोगकर्ता अपने निर्दिष्ट फ़ोल्डर के भीतर कार्य करता है। यह आकस्मिक डेटा एक्सपोजर या संशोधन को रोकने में मदद करता है।

  • फ़ाइल प्रणाली तक पहुँच को आसान बनाना: एक्सेस पॉइंट को AWS Lambda फ़ंक्शन या AWS Fargate कार्य के साथ जोड़ा जा सकता है, सर्वरलेस और कंटेनरयुक्त अनुप्रयोगों के लिए फ़ाइल प्रणाली तक पहुँच को सरल बनाते हुए।

Privesc

AWS - EFS Privesc

Post Exploitation

AWS - EFS Post Exploitation

Persistence

AWS - EFS Persistence
HackTricks का समर्थन करें

Last updated