• port:
    • 2049 for nfs itself
    • 111 for the rpcbind or portmapper service
  • file sharing similar to ftp. relies on RPC
  • NFS enumeration

checklist:

  • Showmount Recon
    • Run showmount -e <target> to list exported directories
    • If exports are world-readable, you might just mount and loot freely
  • Mount Exported Shares
    • Use mount -t nfs <ip>:/share /mnt/loot to map NFS to local
    • Check perms, edit/write stuff if allowed—some shares have full access
  • Root Squashing Disabled
    • If “no_root_squash” is enabled, root on your box = root on the share
    • Drop authorized_keys in /home/user/.ssh/ and get instant access :D
  • Writable /etc/ or /home/
    • Mounting /etc? Replace cron, passwd, or init scripts
    • Mounting /home? Add SSH keys, bashrc payloads, etc.
  • Fake UID / GID Spoofing
    • NFS trusts UID/GID—so create a local user with the same UID as target box’s user
    • You’ll inherit their perms on the share—sneaky af
  • Hidden Files / Dotfiles
    • Check for .bash_history, .ssh/, .git/, .config/, .bak files
    • Can leak creds, tokens, internal paths
  • Persist via Mount Abuse
    • Drop payloads or backdoors in shared folders
    • When a cron or script runs on the NFS host, your code executes :)
  • Binary Replacement
    • If /usr/bin or script dirs are shared and writable… overwrite system binaries lol
    • Classic way to get code exec when someone runs legit tools
  • File Locking Race Conditions
    • Older NFS setups + poor locking = race attack
    • Modify file while it’s being executed—rare but spicy
  • Data Exfil via Mount
    • Use NFS itself to steal files from the network without tripping outbound rules
    • Mount a remote share on your machine and pull data quietly
  • Stale File Handles
    • NFS sometimes caches inode refs, even after deletion
    • You might access deleted or moved files via handle snooping tools
  • Version-Specific Vulns
    • Old NFS (v2/v3) has no encryption or auth
    • v4 adds a bit more security, but version negotiation might let you downgrade