# AWS - EFS Enum {{#include ../../../banners/hacktricks-training.md}} ## 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](https://stackoverflow.com/questions/38632222/aws-efs-connection-timeout-at-mount) ### Enumeration ```bash # Get filesystems and access policies (if any) aws efs describe-file-systems aws efs describe-file-system-policy --file-system-id # Get subnetworks and IP addresses where you can find the file system aws efs describe-mount-targets --file-system-id aws efs describe-mount-target-security-groups --mount-target-id aws ec2 describe-security-groups --group-ids # 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 ``` > [!CAUTION] > यह हो सकता है कि EFS माउंट पॉइंट उसी VPC के अंदर हो लेकिन एक अलग सबनेट में। यदि आप सुनिश्चित करना चाहते हैं कि आप सभी **EFS पॉइंट्स खोजें, तो `/16` नेटमास्क को स्कैन करना बेहतर होगा**। ### Mount EFS ```bash 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 :/ /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 :/ /efs/ ``` ### IAM Access **डिफ़ॉल्ट** रूप से, EFS तक **नेटवर्क एक्सेस** रखने वाला कोई भी व्यक्ति इसे माउंट, **पढ़ और लिख** सकता है, यहां तक कि रूट उपयोगकर्ता के रूप में भी। हालाँकि, फ़ाइल प्रणाली नीतियाँ लागू की जा सकती हैं **जो केवल विशिष्ट अनुमतियों वाले प्रिंसिपल को** इसे एक्सेस करने की अनुमति देती हैं।\ उदाहरण के लिए, यह फ़ाइल प्रणाली नीति **यहां तक कि माउंट करने की अनुमति नहीं देगी** यदि आपके पास **IAM अनुमति** नहीं है: ```json { "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" प्रकार का उपयोग करना अनिवार्य है: ```bash sudo mkdir /efs sudo mount -t efs -o tls,iam :/ /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 से फ़ाइल प्रणाली को इस तरह माउंट कर सकते हैं:** ```bash # Use IAM if you need to use iam permissions sudo mount -t efs -o tls,[iam],accesspoint= \ /efs/ ``` > [!WARNING] > ध्यान दें कि एक एक्सेस पॉइंट को माउंट करने की कोशिश करते समय, आपको **नेटवर्क के माध्यम से NFS सेवा से संपर्क करने में सक्षम होना चाहिए**, और यदि EFS में एक फ़ाइल प्रणाली **नीति** है, तो आपको इसे माउंट करने के लिए **पर्याप्त IAM अनुमतियाँ** चाहिए। एक्सेस पॉइंट का उपयोग निम्नलिखित उद्देश्यों के लिए किया जा सकता है: - **अनुमतियों के प्रबंधन को सरल बनाना**: प्रत्येक एक्सेस पॉइंट के लिए एक POSIX उपयोगकर्ता और समूह को परिभाषित करके, आप बिना अंतर्निहित फ़ाइल प्रणाली की अनुमतियों को संशोधित किए विभिन्न अनुप्रयोगों या उपयोगकर्ताओं के लिए पहुँच अनुमतियों को आसानी से प्रबंधित कर सकते हैं। - **एक रूट निर्देशिका को लागू करना**: एक्सेस पॉइंट EFS फ़ाइल प्रणाली के भीतर एक विशिष्ट निर्देशिका तक पहुँच को प्रतिबंधित कर सकते हैं, यह सुनिश्चित करते हुए कि प्रत्येक अनुप्रयोग या उपयोगकर्ता अपने निर्दिष्ट फ़ोल्डर के भीतर कार्य करता है। यह आकस्मिक डेटा एक्सपोजर या संशोधन को रोकने में मदद करता है। - **फ़ाइल प्रणाली तक पहुँच को आसान बनाना**: एक्सेस पॉइंट को AWS Lambda फ़ंक्शन या AWS Fargate कार्य के साथ जोड़ा जा सकता है, सर्वरलेस और कंटेनरयुक्त अनुप्रयोगों के लिए फ़ाइल प्रणाली तक पहुँच को सरल बनाते हुए। ## Privesc {{#ref}} ../aws-privilege-escalation/aws-efs-privesc.md {{#endref}} ## Post Exploitation {{#ref}} ../aws-post-exploitation/aws-efs-post-exploitation.md {{#endref}} ## Persistence {{#ref}} ../aws-persistence/aws-efs-persistence.md {{#endref}} {{#include ../../../banners/hacktricks-training.md}}