AWS - EFS Enum

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

EFS

मौलिक जानकारी

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

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

नेटवर्क एक्सेस

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

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

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

गणना

# 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 नेटमास्क को स्कैन करना बेहतर होगा

माउंट 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 पहुंच

डिफ़ॉल्ट रूप से 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

एक्सेस पॉइंट्स

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

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

आप एक्सेस पॉइंट से फ़ाइल सिस्टम को माउंट कर सकते हैं कुछ इस तरह से:

# 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 उपयोगकर्ता और समूह को परिभाषित करके, आप मौजूदा फ़ाइल सिस्टम की अनुमतियों को संशोधित किए बिना विभिन्न एप्लिकेशन या उपयोगकर्ताओं के लिए पहुंच अनुमतियों का सरल प्रबंधन कर सकते हैं।

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

  • फ़ाइल सिस्टम तक पहुंच सरल बनाना: एक्सेस पॉइंट को एक AWS लैम्बडा फ़ंक्शन या एक AWS फारगेट टास्क से संबद्ध किया जा सकता है, सर्वरलेस और कंटेनरीकृत एप्लिकेशनों के लिए फ़ाइल सिस्टम तक पहुंच को सरल बनाने में मदद करता है।

Last updated