A modern, fast, and pentester-friendly NFS client built for red teams, security researchers, and anyone who wants full control over remote NFS exports β without needing to mount them.
Repository: github.com/AnvithLobo/EvilNFSClient
π Table of Contents
π What it does
EvilNFSClient is a TUI-powered, and powerful NFS client designed for offensive security workflows and regular use.
Use it as:
- A post-exploitation helper
- A privilege escalation tool
- A standalone NFS file manager (no mount needed!)
- A fast recursive uploader/downloader
β¨ Features at a glance:
- Full file manipulation (read, write, delete)
- Upload/download directories with
-r
- Set SUID/SGID/Sticky bit permissions
- Interactive shell with history + scrolling
β‘ Quick start
π§ Build from source
git clone https://github.com/AnvithLobo/EvilNFSClient
cd EvilNFSClient
go build -o evilnfsclient
./evilnfsclient <server-ip> <export-path>
π₯ Download binaries
β‘οΈ Pre-built releases: https://github.com/AnvithLobo/EvilNFSClient/releases
π§° Features
π Remote NFS operations
ls [path] β colorized directory listing
cd <path> β switch directories
tree [path] β recursive view
get [-r] <remote> [<local>] β download
mget <pattern> [<dest_dir>] β multi-download
put [-r] <local> [<remote>] β upload
mput <pattern> [<dest_path>] β multi-upload
rm [-r] <path> β delete files/folders
mkdir [-p] <path> β create directories
chmod <mode> <file> β permission editing w/ SUID/SGID
π» Local operations (prefix l)
lls [path], lcd <path>, lmkdir [-p] <path>
ποΈ Session control
help β show commands
- Arrow keys β history
- PgUp/PgDn β scroll
Ctrl + C, exit, quit β exit
π Commands (high level)
π Navigation
nfs> ls
nfs> cd public
nfs> tree
π€ Upload
nfs> put /tmp/shell.sh payload.sh
nfs> put -r ./tools /shared/tools
π₯ Download
nfs> get payload.sh ./downloaded.sh
nfs> get -r /shared/sensitive /tmp/data
π¦ Multi-file
nfs> mget *.log ./logs/
nfs> mput /tmp/*.elf /shared/payloads/
π Directory mgmt
nfs> mkdir -p /shared/a/b/c
nfs> rm -r /shared/old_stuff
π» Local commands
nfs> lcd /tmp
nfs> lmkdir -p workspace/subdir
nfs> lls
π§ͺ Examples
# Connect to NFS server with the export /shared
./evilnfsclient 192.168.1.100 /shared
# List available NFS exports on the server
./evilnfsclient --list 192.168.1.100
# Connect with overridden UID and GID
./evilnfsclient 192.168.1.100 /shared --uid 0 --gid 0
# Run a single command non-interactively
./evilnfsclient 192.168.1.100 /shared -c "ls /"
π Permissions & SUID/SGID Notes
Supported modes include full SUID, SGID, and sticky bit manipulation.
Examples:
chmod 4755 file β SUID
chmod 2755 file β SGID
chmod 6777 file β SUID + SGID
Priv-Esc scenario
nfs> put ./shell /shared/shell
nfs> chmod 6755 /shared/shell
Then on the target:
/shared/shell
β οΈ Whether the target honors SUID/SGID over NFS depends on mount + OS settings.
π¦ Installation
π Prerequisites
- Go 1.24.x+
- Access to NFS server/export
π¨ Build
git clone https://github.com/AnvithLobo/EvilNFSClient
cd EvilNFSClient
go build -o evilnfsclient
βοΈ Usage & options
./evilnfsclient <server> <export> [options]
Options:
--uid <uid> β override UID
--gid <gid> β override GID
-c <cmd> β run command (non-interactive)
π‘ Tips & behavior
- Remote paths β resolved against remote CWD
- Local paths β resolved against local CWD
~ expansion supported
- PgUp/PgDn scrolls output
- Use
-r with caution (recursive delete!)
π Project Roadmap
-
Task 1: General NFS Commands.
-
Task 2: List NFS Exports.
-
Task 3: Check for Root File System Escape.
β οΈ Disclaimer
This tool is intended strictly for authorized security testing and penetration testing. Unauthorized access to computer systems, networks, or data is illegal. Use EvilNFSClient only on systems you own or for which you have explicit permission.
By using this software you accept responsibility for your actions.
π€ Author
Anvith Lobo β https://github.com/AnvithLobo
π License
See LICENSE for details.
β¨ Built for red teamers and power users who need full control over NFS exports.