9.8 KiB
2049 - NFS Hizmeti Pentesting
AWS hackleme konusunda sıfırdan kahramana dönüşün htARTE (HackTricks AWS Kırmızı Takım Uzmanı)ile öğrenin!
- Bir cybersecurity şirketinde çalışıyor musunuz? Şirketinizi HackTricks'te reklamını görmek ister misiniz? veya PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz? ABONELİK PLANLARINI kontrol edin!
- The PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonunu.
- Resmi PEASS & HackTricks ürünlerini edinin.
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter'da 🐦@carlospolopm'u takip edin.
- Hacking hilelerinizi hacktricks repo ve hacktricks-cloud repo'ya PR göndererek paylaşın.
Temel Bilgiler
NFS, kullanıcıların ağ üzerinden dosyalara yerel bir dizin içindeymiş gibi sorunsuz erişim sağlamasını sağlayan bir istemci/sunucu sistemi olarak tasarlanmıştır.
Bu protokolün dikkate değer bir yönü, yerleşik bir kimlik doğrulama veya yetkilendirme mekanizması olmamasıdır. Bunun yerine, yetkilendirme, dosya sistemi bilgilerine dayanır ve sunucu, istemci tarafından sağlanan kullanıcı bilgilerini dosya sisteminin gerektirdiği yetkilendirme formatına doğru bir şekilde çevirmekle görevlidir, temel olarak UNIX sözdizimini takip eder.
Kimlik doğrulama genellikle UNIX UID
/GID
tanımlayıcıları ve grup üyeliklerine dayanır. Ancak, istemciler ve sunucular arasındaki UID
/GID
eşlemelerindeki potansiyel uyumsuzluk nedeniyle bir zorluk ortaya çıkar ve sunucu tarafından ek doğrulama yapılamaz. Sonuç olarak, bu protokol, bu kimlik doğrulama yöntemine dayandığı için güvenilen ağlar içinde kullanmak için en uygun olanıdır.
Varsayılan port: 2049/TCP/UDP (sadece 4. sürüm için TCP veya UDP gereklidir).
2049/tcp open nfs 2-3 (RPC #100003
Sürümler
-
NFSv2: Bu sürüm, çeşitli sistemlerle geniş uyumluluğuyla tanınır ve başlangıç işlemlerini çoğunlukla UDP üzerinden gerçekleştirerek önemini belirtir. Serinin en eski sürümü olan NFSv2, gelecekteki gelişmeler için temel oluşturdu.
-
NFSv3: Bir dizi geliştirme ile tanıtılan NFSv3, önceki sürümünü destekleyen değişken dosya boyutlarını destekleyerek ve gelişmiş hata raporlama mekanizmaları sunarak önceki sürümünü genişletti. Gelişmelerine rağmen, NFSv2 istemcileriyle tam geriye dönük uyumlulukta sınırlamalarla karşılaştı.
-
NFSv4: NFS serisinin dönüm noktası olan NFSv4, ağlar arasında dosya paylaşımını modernize etmek için tasarlanmış bir dizi özellik getirdi. Dikkate değer iyileştirmeler arasında yüksek güvenlik için Kerberos'un entegrasyonu, port eşlemcilerine ihtiyaç duymadan güvenlik duvarlarını aşabilme ve İnternet üzerinden çalışabilme yeteneği, Erişim Kontrol Listeleri (ACL'ler) için destek ve durum tabanlı işlemlerin tanıtılması bulunur. Performans iyileştirmeleri ve durum tabanlı bir protokolün benimsenmesi, NFSv4'ü ağ dosya paylaşım teknolojilerinde önemli bir ilerleme olarak ayırt eder.
Her NFS sürümü, ağ ortamlarının gelişen ihtiyaçlarını ele almak, güvenliği, uyumluluğu ve performansı aşamalı olarak artırmak amacıyla geliştirilmiştir.
Numaralandırma
Kullanışlı nmap komut dosyaları
nfs-ls #List NFS exports and check permissions
nfs-showmount #Like showmount -e
nfs-statfs #Disk statistics and info from NFS share
Kullanışlı metasploit modülleri
Metasploit, birçok farklı ağ hizmetini hedef almak için kullanılan güçlü bir araçtır. Aşağıda, NFS hizmeti için kullanışlı olan bazı Metasploit modüllerini bulabilirsiniz:
auxiliary/scanner/nfs/nfsmount
: Bu modül, NFS sunucularını taramak ve paylaşımları listelemek için kullanılır.auxiliary/scanner/nfs/nfsenum
: Bu modül, NFS sunucularında dosya ve dizinleri keşfetmek için kullanılır.exploit/linux/nfs/nfsd
: Bu modül, NFS sunucularında güvenlik açıklarını sömürmek için kullanılır.exploit/solaris/nfs/nfsd
: Bu modül, Solaris işletim sistemli NFS sunucularında güvenlik açıklarını sömürmek için kullanılır.exploit/windows/nfs/nfsd
: Bu modül, Windows işletim sistemli NFS sunucularında güvenlik açıklarını sömürmek için kullanılır.
Bu modüller, NFS hizmetini hedef almak ve güvenlik açıklarını tespit etmek veya sömürmek için kullanılabilir. Metasploit'in sunduğu diğer modüllerle birlikte, kapsamlı bir NFS pentesting deneyimi sağlarlar.
scanner/nfs/nfsmount #Scan NFS mounts and list permissions
Bağlama
Hangi klasörün sunucunun bağlamaya uygun olduğunu bilmek için aşağıdaki komutu kullanabilirsiniz:
showmount -e <IP>
Ardından şunu kullanarak bağlayın:
mount -t nfs [-o vers=2] <ip>:<remote_folder> <local_folder> -o nolock
Örnek:
mkdir /mnt/new_back
mount -t nfs [-o vers=2] 10.12.0.150:/backup /mnt/new_back -o nolock
İzinler
Eğer UID tarafından sadece bazı kullanıcıların erişebildiği dosya veya klasörleri içeren bir klasörü bağlarsanız. Bu UID'ye sahip bir kullanıcıyı yerel olarak oluşturabilir ve bu kullanıcıyı kullanarak dosya/klasöre erişebilirsiniz.
NSFShell
Dosyalara erişmek için UID ve GID'yi kolayca listelemek, bağlamak ve değiştirmek için nfsshell kullanabilirsiniz.
Yapılandırma dosyaları
/etc/exports
/etc/lib/nfs/etab
Tehlikeli Ayarlar
-
Okuma ve Yazma İzinleri (
rw
): Bu ayar, dosya sisteminden hem okuma hem de yazma işlemlerine izin verir. Bu geniş erişimin sonuçlarını düşünmek önemlidir. -
Güvensiz Portların Kullanımı (
insecure
): Bu etkinleştirildiğinde, sistem 1024'den büyük portları kullanabilir. Bu aralıktaki portların güvenliği daha az sıkı olabilir ve riski artırabilir. -
Gömülü Dosya Sistemlerinin Görünürlüğü (
nohide
): Bu yapılandırma, başka bir dosya sistemi bir ihracat edilen dizinin altına bağlandığında bile dizinleri görünür hale getirir. Her dizin, uygun yönetim için kendi ihracat girişine ihtiyaç duyar. -
Kök Dosyalarının Sahipliği (
no_root_squash
): Bu ayarla, kök kullanıcısı tarafından oluşturulan dosyalar, en az ayrıcalık ilkesini göz ardı ederek orijinal UID/GID değerlerini korur ve aşırı izinler sağlayabilir. -
Tüm Kullanıcıların Sıkıştırılmaması (
no_all_squash
): Bu seçenek, kullanıcı kimliklerinin sistem genelinde korunmasını sağlar, ancak doğru şekilde yönetilmezse izin ve erişim kontrol sorunlarına yol açabilir.
NFS hatalı yapılandırmalarını kullanarak Ayrıcalık Yükseltme
NFS no_root_squash ve no_all_squash ayrıcalık yükseltme
HackTricks Otomatik Komutları
Protocol_Name: NFS #Protocol Abbreviation if there is one.
Port_Number: 2049 #Comma separated if there is more than one.
Protocol_Description: Network File System #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for NFS
Note: |
NFS is a system designed for client/server that enables users to seamlessly access files over a network as though these files were located within a local directory.
#apt install nfs-common
showmount 10.10.10.180 ~or~showmount -e 10.10.10.180
should show you available shares (example /home)
mount -t nfs -o ver=2 10.10.10.180:/home /mnt/
cd /mnt
nano into /etc/passwd and change the uid (probably 1000 or 1001) to match the owner of the files if you are not able to get in
https://book.hacktricks.xyz/pentesting/nfs-service-pentesting
Entry_2:
Name: Nmap
Description: Nmap with NFS Scripts
Command: nmap --script=nfs-ls.nse,nfs-showmount.nse,nfs-statfs.nse -p 2049 {IP}
AWS hacklemeyi sıfırdan kahraman olmaya kadar öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
- Bir cybersecurity şirketinde mi çalışıyorsunuz? Şirketinizi HackTricks'te reklamını görmek ister misiniz? veya PEASS'ın en son sürümüne veya HackTricks'i PDF olarak indirmek ister misiniz? ABONELİK PLANLARINI kontrol edin!
- The PEASS Ailesi'ni, özel NFT'lerimiz koleksiyonumuzu keşfedin.
- Resmi PEASS & HackTricks ürünlerini edinin.
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter'da beni takip edin 🐦@carlospolopm.
- Hacking hilelerinizi hacktricks repo ve hacktricks-cloud repo'ya PR göndererek paylaşın.