AWS - EFS Enum

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'ı desteklemenin diğer yolları:

EFS

Temel Bilgiler

Amazon Elastic File System (EFS), AWS tarafından tamamen yönetilen, ölçeklenebilir ve elastik bir ağ dosya sistemi olarak sunulur. Bu hizmet, birden fazla EC2 örneği ve diğer AWS hizmetleri tarafından eş zamanlı olarak erişilebilen dosya sistemlerinin oluşturulmasını ve yapılandırılmasını kolaylaştırır. EFS'nin temel özellikleri arasında manuel müdahale olmadan otomatik ölçeklendirme, düşük gecikmeli erişim sağlama, yüksek verimli iş yüklerini destekleme, veri dayanıklılığını garanti etme ve çeşitli AWS güvenlik mekanizmalarıyla sorunsuz entegrasyon yer alır.

Varsayılan olarak, bağlanacak EFS klasörü / olacaktır, ancak farklı bir isme sahip olabilir.

Ağ Erişimi

Bir EFS bir VPC içinde oluşturulur ve varsayılan olarak tüm VPC alt ağlardan erişilebilir. Bununla birlikte, EFS'nin bir Güvenlik Grubu olacaktır. EFS'ye bağlanmak için bir EC2'nin (veya başka bir AWS hizmetinin) EFS'yi bağlamasına izin vermek için, EFS güvenlik grubunda EC2 Güvenlik Grubundan gelen bir NFS (2049 portu) giriş kuralına izin vermek gerekmektedir.

Bunun olmaması durumunda, NFS hizmetine bağlantı kuramazsınız.

Bunu nasıl yapacağınız hakkında daha fazla bilgi için: https://stackoverflow.com/questions/38632222/aws-efs-connection-timeout-at-mount

Enumerasyon

# 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 bağlama noktasının aynı VPC içinde fakat farklı bir alt ağda olması mümkün olabilir. Tüm EFS noktalarını bulmak için /16 ağ maskesini taramanız daha iyi olur.

EFS Bağlama Noktasını Bağla

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 Erişimi

Varsayılan olarak, EFS'ye ağ erişimi olan herkes kök kullanıcı olarak bile onu bağlama, okuma ve yazma yeteneğine sahip olacaktır. Bununla birlikte, Dosya Sistemi politikaları, ona erişim izni olan belirli izinlere sahip prensiplerle sınırlı olabilir. Örneğin, bu Dosya Sistemi politikası, IAM iznine sahip değilseniz bile dosya sistemini bağlamanıza izin vermeyecektir:

{
"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"
}
}
}
]
}

Veya bu, anonim erişimi engelleyecektir:

IAM tarafından korunan dosya sistemlerini bağlamak için montaj komutunda "efs" türünü KESİNLİKLE kullanmanız gerektiğini unutmayın:

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

Erişim Noktaları

Erişim noktaları, paylaşılan veri kümelerine uygulama erişimini yönetmeyi kolaylaştıran bir EFS dosya sistemine özgü giriş noktalarıdır.

Bir erişim noktası oluşturduğunuzda, erişim noktası üzerinden oluşturulan dosya ve dizinler için sahibi ve POSIX izinlerini belirleyebilirsiniz. Ayrıca, erişim noktası için özel bir kök dizin tanımlayabilirsiniz, ya mevcut bir dizini belirterek ya da istenen izinlerle yeni bir tane oluşturarak. Bu, paylaşılan dosya verilerinizi uygulama veya kullanıcı başına erişime göre kontrol etmenizi sağlar ve paylaşılan dosya verilerinizi yönetmeyi ve güvence altına almayı kolaylaştırır.

Erişim noktasından Dosya Sistemini şu şekilde bağlayabilirsiniz:

# 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/

Unutmayın, bir erişim noktasını bağlamaya çalışsanız bile, NFS hizmetine ağ üzerinden ulaşabilmeniz gerekmektedir ve EFS'nin bir dosya sistemi politikası varsa, onu bağlamak için yeterli IAM izinlerine sahip olmanız gerekmektedir.

Erişim noktaları aşağıdaki amaçlar için kullanılabilir:

  • İzin yönetimini basitleştirme: Her erişim noktası için bir POSIX kullanıcısı ve grubu tanımlayarak, temel dosya sisteminin izinlerini değiştirmeden farklı uygulamaların veya kullanıcıların erişim izinlerini kolayca yönetebilirsiniz.

  • Kök dizin zorunluluğu: Erişim noktaları, EFS dosya sistemi içinde belirli bir dizine erişimi sınırlayabilir, böylece her uygulama veya kullanıcı belirlenen klasöründe çalışır. Bu, kazara veri açığa çıkmasını veya değiştirilmesini önlemeye yardımcı olur.

  • Daha kolay dosya sistemi erişimi: Erişim noktaları, AWS Lambda işlevi veya AWS Fargate görevi ile ilişkilendirilebilir, böylece serverless ve konteyner tabanlı uygulamalar için dosya sistemi erişimi kolaylaşır.

Privesc

pageAWS - EFS Privesc

Sonrası Sızma

pageAWS - EFS Post Exploitation

Kalıcılık

pageAWS - EFS Persistence
htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Last updated