NFS Pentesting Notes
Protocol Overview
Basic Information
Port: TCP/UDP 2049 (NFS), TCP/UDP 111 (RPC)
Protocol Type: Application layer
Purpose: Remote file system mounting and access
Security: Relies on Unix-style permissions and RPC authentication
Protocol Versions
NFSv2
UDP-based, basic operations
Basic Unix permissions
NFSv3
TCP/UDP, larger files, async writes
AUTH_SYS, better error handling
NFSv4
TCP only, stateful, single port
Kerberos, ACLs, encryption
NFSv4.1
Parallel NFS (pNFS)
Enhanced security features
Initial Enumeration
Port Scanning
RPC Information Gathering
Share Operations
Listing Shares
Mounting Shares
Common NSE Scripts
Quick Reference Commands
Access Control Bypass
Root Squashing Bypass
Permission Analysis
Configuration Files
Server Configuration
Main config:
/etc/exports
RPC settings:
/etc/default/nfs-kernel-server
Systemd unit:
/lib/systemd/system/nfs-kernel-server.service
Client Configuration
Mount settings:
/etc/fstab
RPC settings:
/etc/default/nfs-common
Systemd unit:
/lib/systemd/system/nfs-client.target
Export Options
Critical Settings
no_root_squash
High
Allows root access
insecure
High
Allows connections from ports > 1024
rw
Medium
Allows write access
sync
Low
Synchronous write operations
async
Medium
Asynchronous write operations
no_subtree_check
Low
Disables directory verification
Common Vulnerabilities
Configuration Issues
no_root_squash enabled
Insecure export options
World-readable sensitive files
Improper access controls
Version-specific
NFSv2/v3 lack encryption
RPC vulnerabilities
Authentication bypasses
Implementation Issues
Race conditions
Buffer overflows
Arbitrary file access
Post-Exploitation
Information Gathering
Privilege Escalation
Common Status Codes
NFSERR_PERM
Not owner
NFSERR_NOENT
No such file/directory
NFSERR_IO
I/O error
NFSERR_ACCES
Permission denied
NFSERR_EXIST
File exists
Best Practices for Pentesting
Initial Reconnaissance
Identify NFS version
List available shares
Check mount permissions
Analyze export options
Deep Enumeration
Mount all accessible shares
Check file permissions
Look for sensitive data
Identify misconfigurations
Documentation
Record available shares
Note mount options
Document file permissions
Save vulnerability evidence
Risk Assessment
Evaluate export options
Check for sensitive data exposure
Assess potential for privilege escalation
Consider network exposure
Common Attack Vectors
Root squashing bypass
File permission abuse
SUID binary creation
Sensitive file access
Mitigation Recommendations
Enable root squashing
Use restrictive export options
Implement proper access controls
Enable encryption (NFSv4)
Regular security audits
Network segmentation