Hayduk 是一款免费、开源的 Metasploit GUI,用于经授权的渗透测试。它将 Armitage 的工作流程带入你的浏览器:绘制主机拓扑、浏览模块、管理 Meterpreter 和 shell 会话,并导出行动报告。
下载一个二进制文件。运行它。连接到 Metasploit。 运行发布版二进制文件无需安装 Java、Go 或 Node.js。浏览器 UI 已内置。
Hayduk 通过 msfrpcd 连接到独立的 Metasploit Framework 实例。它不捆绑 Metasploit。
下载最新版本 · 快速开始 · 试用 Docker 实验环境 · 团队模式

界面展示使用示意性行动数据。
你需要一个 Hayduk 发布版二进制文件、一个浏览器,以及一个正在运行的 Metasploit Framework 实例。对于主机、服务、凭据和战利品等工作区功能,Metasploit 还需要连接一个数据库。
以下步骤假设 Hayduk 和 Metasploit 运行在同一台机器上。如果你需要一套现成的、带数据库和一次性目标的 Metasploit 环境,请使用 Docker 实验环境。
打开最新版本,选择与你的操作系统和处理器相匹配的压缩包。将压缩包解压到一个文件夹中。没有 Hayduk 安装程序,也无需单独设置 UI。
在运行 Metasploit 的机器上,打开终端并运行:
msfrpcd -P 'yourpassword' -S -f -a 127.0.0.1 -p 55553
将 yourpassword 替换为你自己的密码。保持此终端处于打开状态。此命令将 RPC 绑定到 localhost 的 55553 端口;-S 会为此本地连接禁用 SSL。
如果你已经在运行 msfrpcd,请使用其现有的连接设置,而不是再启动一个实例。
在解压后的文件夹中打开另一个终端。
Linux 和 macOS:
./hayduk
Windows PowerShell:
.\hayduk.exe
Hayduk 会在你的浏览器中打开 UI。如果浏览器没有打开,请复制终端中打印的完整 URL,包括 ?token=...。端口会自动分配。
在 Connect to msfrpcd 中,输入第 2 步中的设置:
| 字段 | 值 |
|---|---|
| 主机 | 127.0.0.1 |
| 端口 | 55553 |
| 用户 | msf |
| 密码 | 你在上面设置的密码 |
| 使用 SSL | 未勾选 |
点击 Connect。冷启动的 Metasploit 实例可能需要大约半分钟才能响应;连接进度会显示在对话框中。
使用 UI 期间请保持 Hayduk 运行。在其终端中按 Ctrl+C 可停止它。
请使用你获授权测试的系统或网络。扫描从已连接的 Metasploit 实例运行,因此目标必须能从该机器访问。
点击模块以进行配置。右键点击主机、会话、表格行以及树中的模块,可打开其操作菜单。
使用行动摘要卡片可打开主机、服务、会话或凭据。Discover hosts、Scan services 和 Export report 也可直接在网络地图上方使用。
网络地图会根据可用画布调整主机列。选择 Focus 可展开地图和主机检查器。Arrange hosts 会用自动布局替换已保存的位置。主机卡片显示开放服务数量和访问状态;紫色路径标识枢轴路由。

演示使用示例性活动数据。
| 能力 | 你可以做什么 |
|---|---|
| 网络拓扑 | 探索自适应子网分组、主机服务数量和枢轴路由。拖动主机、缩放,或在 Focus 模式下展开地图。 |
| Metasploit 模块 | 浏览模块树、检查可靠性等级、配置选项并选择 payload。 |
| 行动工作流 | 发现主机、扫描服务,并查找与已知服务匹配的漏洞利用候选。 |
| 会话管理 | 与 Meterpreter 和 shell 会话交互、升级 shell 并终止会话。 |
| 凭据和战利品 | 查看工作区数据,并在登录工作流中使用恢复的凭据。 |
| Hail Mary | 对选定主机启动匹配的漏洞利用,具有节奏控制和事件日志。 |
| 报告 | 导出自包含的 HTML 报告,用于行动审查和客户交付。 |
| 团队模式 | 在可信网络上与多名操作员共享行动。 |

带有示例活动数据的图形聚焦模式。
该仓库包含一个一次性 Metasploit 实验环境,配有数据库和可选的目标容器。运行它即可针对实时目标尝试演示中的工作流程。
你需要 Git、Docker 和 Docker Compose。请在支持该仓库 .sh 脚本的 shell 中运行以下命令:
git clone https://github.com/jolovicdev/hayduk.git
cd hayduk
scripts/msf/up.sh --with-vulnbox
实验室就绪后,脚本会打印目标容器的 IP 地址。启动你下载的 Hayduk 二进制文件,并使用 Host 127.0.0.1、Port 55553、User msf、Password testpass123 进行连接,且不勾选 use SSL。使用打印出的目标 IP 进行首次扫描。
若只想启动 Metasploit 及其数据库,请在不带 --with-vulnbox 的情况下运行 scripts/msf/up.sh。
完成后,请在仓库根目录下运行以下命令。该命令会移除实验室容器及其卷,包括实验室数据库数据:
scripts/msf/down.sh
使用操作员可访问的特定接口地址运行下载的二进制文件:
./hayduk --team --listen 192.168.1.10:8787
将 192.168.1.10 替换为你机器的地址。团队模式要求使用明确的非回环地址;诸如 0.0.0.0 之类的通配地址会被拒绝。
分享终端中打印的完整令牌 URL。每位操作员在浏览器中打开它并选择一个名称。事件日志会将操作归因于这些名称。
团队模式使用一个共享令牌和纯 HTTP。操作员名称只是标签,并非经过验证的身份。请像对待密码一样对待令牌 URL,并且仅在可信网络上使用团队模式。阅读安全策略了解完整的信任模型。
| 问题 | 需要检查的内容 |
|---|---|
| 浏览器未打开 | 打开 Hayduk 打印的完整令牌 URL。你也可以使用 ./hayduk --no-browser 启动。 |
| Hayduk 无法连接 | 检查 msfrpcd 是否正在运行,以及主机、端口、用户名和密码是否匹配。 |
| SSL 连接失败 | 当 msfrpcd 使用 -S 运行时,请取消勾选 use SSL;当守护进程使用 SSL 时则启用它。 |
| 连接耗时较长 | 观察连接对话框。冷启动的 Metasploit 实例可能需要大约半分钟才能响应。 |
| 主机或服务缺失 | 检查所选工作区、Metasploit 的数据库连接,以及从 Metasploit 到目标的可达性。 |
是的。Hayduk 遵循 Armitage 的图形化 Metasploit 工作流,包括网络拓扑、模块启动、Hail Mary 和共享行动。它是一个独立实现,具有浏览器 UI 和单个 Go 二进制文件。
不包含。Hayduk 是 Metasploit 的 msfrpcd 服务的 GUI 客户端。请使用你现有的 Metasploit 安装或随附的 Docker 实验环境。
Hayduk 发布版二进制文件不需要额外的语言运行时。从源码构建需要 Go 和 Node.js。仅当你选择使用随附的实验环境时才需要 Docker。
可以。在 Host 中输入 Metasploit 机器的可达地址,并匹配其 RPC 端口、凭据和 SSL 设置。快速入门中仅限 localhost 的 RPC 命令只接受来自同一台机器的连接。
是的。Hayduk 在 MIT 许可证下发布。
进行开发时,请使用 Go 1.26.1 或更高版本、CI 中使用的 Node.js 24、npm 和 Make。在仓库根目录下执行:
make
./bin/hayduk
make 会安装 UI 依赖、构建并嵌入 UI,并编译 bin/hayduk。
在初始构建完成后,在一个终端中运行 UI 服务器:
cd ui
npm run dev
在仓库根目录下的第二个终端中:
make dev
打开 Hayduk 打印的 URL。UI 变更会通过开发代理重新加载。
在仓库根目录下运行以下命令:
make test # Go and UI tests
npm --prefix ui run lint
make # Type-check, build the UI, and compile the binary
make integration # Requires the running Docker lab
协议类型是生成的。在 tygo 可用的情况下,编辑 internal/protocol/protocol.go 后运行 make gen;make gen-check 会检查生成的类型是否发生漂移。
Hayduk 借鉴了由 Raphael Mudge 创建的 Armitage 所建立的图形化攻击管理工作流。它通过 go-msf 连接到 Metasploit。