StrongWind1/NFSWolf

GitHub: StrongWind1/NFSWolf

一款专为 NFS 安全设计的原生工具链,覆盖从侦察到利用的完整攻击路径。

Stars: 0 | Forks: 0

# nfswolf 快速、原生的 NFS 安全工具包。一个静态二进制文件——包含侦察、分析、逃逸、利用和交互式 Shell,**仅限授权安全研究使用**。 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/1834c13e33004821.svg)](https://github.com/StrongWind1/NFSWolf/actions/workflows/ci.yml) [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE) [![MSRV 1.94](https://img.shields.io/badge/msrv-1.94-informational)](rust-toolchain.toml) ## 仅限授权使用 nfswolf 是一个渗透测试和安全研究工具。在未经明确书面授权的情况下,对系统运行它在大多数司法管辖区属于非法行为。您独自承担如何使用它的全部责任。使用 nfswolf 即表示您接受对遵守适用法律、合同和政策的全部责任。 如果您认为在 nfswolf 自身发现了安全问题,请阅读 [SECURITY.md](SECURITY.md) 了解披露渠道。 ## 为何选择 nfswolf NFS 安全生态分散在多个 1990 年代和 2000 年代编写的轻量工具中,其中大多数仅支持 Linux 并依赖 `libnfs`。nfswolf 将完整的 NFS 攻击路径——侦察、分析、导出逃逸、Shell 访问和有针对性的利用——整合进一个纯 Rust 二进制文件,并在 `musl` 下静态链接。 | 能力 | nfswolf | showmount | nfsspy | msf NFS | nfs-ls | nfsshell | | --- | :---: | :---: | :---: | :---: | :---: | :---: | | NFSv2 / v3 / v4 | 是 | 否 | v3 | v3 | v3 | v3 | | 异步 / 并发扫描 | 是 | 否 | 否 | 是 | 否 | 否 | | AUTH_SYS UID 喷洒 | 是 | 否 | 是 | 是 | 否 | 否 | | 导出逃逸(ext4/XFS/BTRFS) | 是 | 否 | 否 | 否 | 否 | 否 | | 交互式 NFS Shell(35+ 命令) | 是 | 否 | 否 | 否 | 是 | 否 | | FUSE 挂载(`nfswolf mount`) | 是 | 否 | 否 | 否 | 否 | 否 | | NLM / NSM / 端口映射器客户端 | 是 | 否 | 否 | 否 | 否 | 否 | | 自包含 HTML / JSON / CSV 报告 | 是 | 否 | 否 | 否 | 否 | 否 | | 静态 musl 二进制文件(无 C 依赖) | 是 | 否 | 否 | 否 | 否 | 否 | | SOCKS5 代理 + 特权端口绑定 | 是 | 否 | 否 | 否 | 否 | 否 | | 隐身延迟 + 抖动 | 是 | 否 | 否 | 否 | 否 | 否 | ## 功能一览 - **36 个已记录的安全发现**(F-1.1 至 F-7.6),涵盖七个攻击类别,完整目录见 [docs/FINDINGS.md](docs/FINDINGS.md)。 - **协议**:NFSv2 / NFSv3 / NFSv4.0(通过 TCP,端口映射器使用 UDP 传输)、MOUNT v1/v3、NLM v4、NSM、端口映射器 v2。 - **引擎**:基于池的 RPC 支持断路器、AUTH_SYS 戳注入、9 步自动 UID 解析、句柄鉴别(STALE 与 BADHANDLE)。 - **攻击模块**:`uid-spray`、`brute-handle`、`escape`、`download`、`upload`、`symlink-swap`、`dir-nuke`、`lock-dos`、`harvest`。 - **交互式 Shell**:支持 Tab 补全、`get -r` / `put -r`、`--verify ` 以及所有标准类 POSIX 命令。 - **FUSE**:通过 `nfswolf mount` 本地挂载任意 NFS 导出并使用伪造的 AUTH_SYS 凭证。 - **六种报告格式**:HTML、JSON、CSV、Markdown、纯文本、ANSI 控制台。 ## 安装 ### 预构建二进制文件 从 [发布页面](https://github.com/StrongWind1/NFSWolf/releases) 下载。每个发行版均附带 `SHA256SUMS` 校验文件、`SHA256SUMS.sig` cosign 签名以及每个工件的 SLSA 构建溯源证明。 ### 仔细选择你的构件 —— `mount` 子命令**不包含**在 musl 静态构建中 | 文件 | 链接 | FUSE / `nfswolf mount` | 使用场景 | | --- | --- | :---: | --- | | `nfswolf-linux-x86_64` | musl,静态 | **否** | 零依赖二进制,可在任意 Linux 内核运行(Alpine、distroless、CI runner)。仅需 `scan` / `analyze` / `shell` / `attack`。 | | `nfswolf-linux-x86_64-full` | glibc,动态 | **是** | `nfswolf mount`(FUSE)。需要在主机上安装 libfuse3。 | | `nfswolf-linux-arm64`、`nfswolf-linux-arm64-full` | 相同区分(ARM64) | 相同区分 | ARM64 上的相同取舍。 | | `nfswolf-macos-universal`、`nfswolf-macos-arm64`、`nfswolf-macos-x86_64` | macOS | 需要 macFUSE | macOS 未内置 FUSE;若需要 `mount`,请单独安装 [macFUSE](https://osxfuse.github.io/)。 | | `nfswolf-windows-x86_64-msvc.exe`、`-gnu.exe`、`-arm64-msvc.exe` | Windows | **否** | FUSE 仅支持 Linux / macOS;无论何种构建,`nfswolf mount` 在 Windows 上均不可用。 | 如果您下载了静态 musl Linux 二进制文件并尝试运行 `nfswolf mount ...`,该命令在二进制中不存在,且 `nfswolf --help` 也不会列出它。这是**有意为之**的——`libfuse3` 无法针对 `musl` 静态链接。 ### 验证您的下载 ``` # 完整性(任何人): sha256sum -c SHA256SUMS --ignore-missing # 真实性(需要 cosign + 仓库预期的 OIDC 身份): cosign verify-blob \ --certificate-identity-regexp "^https://github\\.com/StrongWind1/NFSWolf/" \ --certificate-oidc-issuer "https://token.actions.githubusercontent.com" \ --signature SHA256SUMS.sig \ SHA256SUMS ``` ### 从源代码构建 ``` git clone https://github.com/StrongWind1/NFSWolf cd nfswolf make build # release build for the native target sudo install -Dm755 target/release/nfswolf /usr/local/bin/nfswolf ``` ### 从 crates.io 安装 ``` cargo install nfswolf --locked ``` ## 快速开始 ``` # 在 /24 上发现 NFS 基础设施: nfswolf scan 192.168.1.0/24 # 对单个主机的深度安全分析: nfswolf analyze 192.168.1.10 --html report.html # 与导出的文件系统进行交互式 Shell: nfswolf shell 192.168.1.10:/srv/nfs --uid 0 # 通过 FUSE 在本地挂载导出,伪造 UID 0: sudo nfswolf mount 192.168.1.10:/srv/nfs /mnt/target --uid 0 --allow-other # UID 喷洒以查找可访问的文件: nfswolf attack uid-spray --host 192.168.1.10 --export /srv/nfs --uid-range 0-5000 --path /etc/shadow ``` ## CLI 参考 | 子命令 | 用途 | | --- | --- | | `scan` | 全网 NFS 发现(CIDR、目标文件、单个主机) | | `analyze` | 针对 36 个发现目录对主机进行安全审计 | | `shell` | 基于 NFSv3 或 NFSv4 的交互式 REPL,支持 `get -r` / `put -r` / `--verify` | | `mount` | 使用伪造的 AUTH_SYS 凭证进行 FUSE 挂载(`--features fuse`) | | `attack ` | 有针对性的利用:`uid-spray`、`brute-handle`、`escape`、`download`、`upload`、`symlink-swap`、`dir-nuke`、`lock-dos`、`harvest` | | `export` | 将保存的分析结果渲染为 HTML / JSON / CSV / Markdown / 文本 | | `completions ` | 为 bash、zsh、fish、PowerShell 生成补全脚本 | 每个子命令的全局标志: ``` --uid AUTH_SYS UID (default 1000; use 0 for root spoof) --gid AUTH_SYS primary GID (default 1000) --aux-gids Auxiliary GIDs (max 16 per RFC 1057 §9.2) --hostname AUTH_SYS machinename field --privileged-port Bind source port <1024 (may require CAP_NET_BIND_SERVICE / root) --proxy Route all RPC through SOCKS5 (no-auth) proxy --transport-udp Use UDP for portmapper probes where supported --stealth-delay Baseline inter-RPC delay --stealth-jitter Random jitter added to each delay --no-color Strip ANSI colors -v / -vv / -vvv Verbosity (info / debug / trace) ``` 请查阅 `nfswolf <子命令> --help` 获取子命令专属标志。 ## nfswolf 不做什么 - 不利用 RPCSEC_GSS / Kerberos 挂载(仅检测)。 - 不攻击 NFS-over-TLS 通道(仅检测 `NONE` / `TLS_V1` 协商)。 - 不在未设置 `--allow-write` 时修改服务器状态。 - 不在未设置 `--allow-destructive` 时执行破坏性操作(rmdir、锁 DoS)。 - 不在未在命令行指定授权目标时运行。 ## 平台支持 | 平台 | 扫描 / 分析 / 攻击 | `mount`(FUSE) | | --- | :---: | :---: | | Linux x86_64(glibc) | 是 | 是 | | Linux x86_64(musl ) | 是 | 否 | | Linux arm64 | 是 | 是 | | macOS(Apple Silicon & Intel) | 是 | 需要 macFUSE | | Windows x86_64 / arm64 | 是 | 否 | ## 开发 参见 [CONTRIBUTING.md](CONTRIBUTING.md)。简要说明如下: ``` make hooks # install the repo pre-commit hook make dev # debug build, fast iteration make check-all # full gate: fmt, lint, audit, check, test-matrix, doc, hygiene, machete ``` ## 许可证 Apache-2.0 —— 参见 [LICENSE](LICENSE)。 ## 感谢 - [nfs3-rs](https://github.com/Vaiz/nfs3) by Vaiz —— NFSv3 / MOUNT / 端口映射器 / XDR 的基础。 - RFC 1057、RFC 1094、RFC 1813、RFC 5531、RFC 7530、RFC 2623、RFC 9289 的作者。 - 启发本工具整合的前人工具:`nfsspy`、`nfsshell`、`showmount`、Metasploit NFS 模块。
标签:BTRFS, CSV 报告, EXT4, FUSE 挂载, HTML 报告, JSON 报告, NFS, NFS Shell, NFSv2, NFSv3, NFSv4, NFS 侦察, NFS 安全, NFS 工具, NFS 枚举, NFS 渗透测试, NFS 漏洞利用, NFS 逃逸, NLM, NSM, Rust, SEO, UID 喷洒, Windows内核驱动, XFS, 关键词优化, 原生工具, 可视化界面, 导出逃逸, 并发扫描, 异步扫描, 授权测试, 文档结构分析, 端口映射器, 网络流量审计, 通知系统, 静态二进制