Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Platypus — :hammer: 一个现代的、跨平台的机器管理器 | Kitploit
工具/GitHubGitHub/wangyihang/platypus
网络安全渗透测试命令与控制红队远程访问工具
GitHubwangyihang/platypus

Platypus

🔨 一个现代的、跨平台的机器管理器

查看仓库
1.7k2272个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Platypus

GitHub stars GitHub license GitHub Release Downloads Sponsors

适用于 Linux 机器集群的主机管理枢纽。在你拥有的每台主机上安装 Platypus 代理;代理通过 TLS + protobuf 回连到你的 Platypus 服务器;通过服务器,你可以在所有托管主机上获得交互式 Shell、文件管理和网络隧道——全部通过一个中央控制平面。

截图

一个 Vercel 风格的扁平导航 UI,包含项目仪表盘、主机/监听器/会话浏览器、多主机调度控制台和管理员用户管理器。完整图库见 docs/screenshots/。重新运行 make screenshots 可从实时应用重新生成它们。

项目概览仪表盘

架构

Platypus 提供两个后端二进制文件和一个独立桌面客户端:

二进制文件角色
platypus-server守护进程。在 TLS 入站端口上接受入站代理连接;为管理工具提供 REST + WebSocket API;提供代理二进制文件的分发。
platypus-agent在每个托管主机上运行的进程。通过 TLS + protobuf 回连到服务器。

服务器纯粹是一个 API——没有嵌入的 Web UI。多个桌面端可同时连接到同一台服务器。

特性

  • 代理与服务器之间的 TLS + protobuf 通道
  • 多个入站端口,使不同网络中的集群共享一个枢纽
  • 每台主机的交互式 Shell,通过 WebSocket 流式传输
  • 文件读/写/上传/下载,支持分块传输
  • 网络隧道:本地端口转发、远程端口转发、动态 SOCKS5
  • Bearer token 认证的 REST API
  • Python SDK
  • 从 config.yml 自动启动监听器
  • 优雅关闭(在 SIGINT/SIGTERM 后 30 秒内排空连接)

文档

  • 中文文档 | 中文文档

快速开始

一键部署(推荐)

获取完整 Platypus 系统(包括服务器、Web UI 和基于 MinIO 的代理分发器)的最快方法是使用 Docker Compose:

root@kitploit:~
git clone https://github.com/WangYihang/Platypus
cd Platypus
docker-compose up -d
  • Web UI:在浏览器中打开 https://localhost:9443(容器自带自签名证书;首次访问时浏览器会提示你接受)。
  • 登录:bootstrap_secret 在首次启动时写入容器内的 /app/data/bootstrap.secret(模式 0600)。使用 docker compose exec platypus-server cat /app/data/bootstrap.secret 读取它,一次性使用来创建第一个管理员,然后删除该文件。引导完成后,该密钥不再被接受。
  • 添加代理:在 UI 中点击"Add Agent",获取一条单行的 curl ... | sh 命令,该命令已签名并绑定到项目 CA,用于向你的集群部署代理。

从源码构建

需要 Go 1.24+ 和 protoc(仅当你重新生成 protobuf 代码时需要)。

root@kitploit:~
git clone https://github.com/WangYihang/Platypus
cd Platypus
make build              # → ./build/{platypus-server,platypus-agent}

其他有用的目标:make test、make lint、make snapshot(通过 goreleaser 交叉编译)、make help。

开发(pre-commit 钩子)

贡献者应安装 git 钩子,以便在每次提交前运行 gofmt / goimports / go vet / golangci-lint:

root@kitploit:~
pip install pre-commit   # 或:pipx install pre-commit
make hooks               # 一次性:配置 .git/hooks/pre-commit
make pre-commit          # 可选:立即对每个文件运行所有钩子

构建桌面应用

需要 Node 22+、Wails CLI 依赖(wails doctor)以及平台的 WebView 库(Linux 上为 webkit2gtk-4.1,Windows 上为 WebView2,macOS 上为 WKWebView)。

root@kitploit:~
make desktop-deps       # 一次性:安装 Wails CLI + pnpm 包
make desktop-build      # → desktop/build/bin/platypus-desktop
make desktop-dev        # 热重载开发模式

或者:使用独立 Web UI(无需安装)

相同的页面、相同的功能(缺少实时事件推送),在任何浏览器中运行:

root@kitploit:~
make web-ui             # → desktop/frontend/dist-web/(静态包)
make web-ui-serve       # 在 http://localhost:8080 预览

dist-web/ 是完全静态的;可部署到 GitHub Pages / S3 / nginx。通过登录表单将其指向任何 platypus-server。

完整说明见 desktop/README.md。

从发布版二进制文件安装

从 Releases 页面 下载适用于你操作系统/架构的存档,解压并运行。

使用 Docker 运行

root@kitploit:~
docker build -t platypus-server .
docker run --rm -p 9443:9443 \
  -e PLATYPUS_DEV=1 \
  -v $(pwd)/config.yml:/config.yml \
  platypus-server

设置 PLATYPUS_DEV=1 启用磁盘 KEK 回退,使全新启动"开箱即用";生产环境应取消该环境变量,改为设置 PLATYPUS_CA_KEK(32 字节十六进制;openssl rand -hex 32),这样 CA 私钥加密密钥就不会被写入加密数据库旁。

运行

root@kitploit:~
./build/platypus-server                # 前台运行;按 Ctrl-C 优雅关闭

生产环境下,建议通过 systemd 运行服务器,而不是手动后台启动。

生产注意事项

  • 仅单实例。 不透明令牌验证器将已验证的令牌缓存在每个进程的 LRU 中。吊销(登出、密码更改、AAT 吊销、用户删除)会同步地从同一进程的缓存中删除条目——但多副本部署目前没有跨进程失效通道,因此被吊销的令牌最多可以在其他副本上保持生效缓存 TTL(30 秒)。在跨进程吊销功能推出前,不要针对同一数据库运行多个 platypus-server。受支持的形态是垂直扩展 + HA 备用;不支持水平负载均衡副本。
  • PLATYPUS_CA_KEK 在环境变量中。 CA 私钥使用 AES-256-GCM 根据这个 32 字节十六进制值进行密封。如果未设置此变量,服务器将拒绝启动,除非同时存在 PLATYPUS_DEV=1(这会启用仅用于开发的磁盘回退,位于 <data-dir>/ca.kek——这在生产环境中不安全,因为密文和密钥位于同一卷上)。
  • 桌面级视口,不支持移动布局(尚未)。 Web UI 针对 ≥ 1280px 视口;轨道/侧边栏/状态栏边框占用约 300px,使内容主体处于 80–100 个字符的阅读甜区。当前没有针对窄窗口的响应式折叠——低于 1024px 的视口将在表格上显示水平滚动条。平板/手机支持在待办列表中(UX 审计中的 P4),但不妨碍使用;管理工作是桌面工作。
  • 对象存储凭据。 当启用分发器时(设置了 distributor.store.endpoint),应设置 PLATYPUS_DISTRIBUTOR_STORE_ACCESS_KEY_ID 和 PLATYPUS_DISTRIBUTOR_STORE_SECRET_ACCESS_KEY,而不是将它们硬编码到 config.yml 中。附带的 config.docker.yml 已将这些 YAML 字段保留为空。

使用方法

拓扑结构

  • 服务器:192.168.88.129
    • 统一 TLS 入站(REST API + 代理链接 + 安装程序):0.0.0.0:9443
  • 托管主机:192.168.88.130(运行 platypus-agent)

快速游览

首先,运行 ./platypus-server。如果不存在 config.yml,则会从 assets/config.example.yml 生成一个。默认值是合理的。

要注册新的托管主机:

  1. 打开 Web UI / 桌面应用,导航到项目,点击 Add Agent。
  2. 选择目标操作系统/架构和 TTL,点击 Generate。
  3. 复制 UI 显示的单行命令并在托管主机上运行。

服务器渲染的单行命令类似于:

root@kitploit:~
curl -fsSL https://<server>:9443/api/v1/install/<one-shot-token> | sh

一次性安装令牌在发出后不久过期,并在第一次成功命中后被消耗。服务器返回的脚本:

  • 嵌入项目 CA,以便使用 curl --cacert 验证代理二进制文件下载(没有 -k,没有 TOFU);
  • 注入一次性 PAT,使代理能够完成注册并获取其 mTLS 客户端证书;
  • 如果服务器未配置项目 CA,则拒绝运行,除非操作员显式设置 PLATYPUS_INSECURE_DOWNLOAD=1。

不要手动编写针对旧版 /agent/<host>:<port> 路径的 curl http://... URL——该流程已被移除。始终通过 UI 渲染安装命令,以便携带信任锚点。

桌面端/Web端

打开桌面应用(platypus-desktop)或 Web UI(make web-ui-serve),填写服务器 URL 和密钥即可进入。标签页:会话(所有已拨入的代理)、终端、文件、隧道、监听器。

高级用法

  • REST API
  • Python SDK

其他资料

  • KCon 2019 演讲
  • GCSIS 2021 演讲

贡献者

该项目得益于所有贡献者。感谢所有人。

支持者

感谢所有支持者!🙏 [成为支持者]

赞助商

通过成为赞助商来支持本项目。你的 Logo 将在此处显示并链接到你的网站。 [成为赞助商]

下载工具
platypus-desktop原生(Wails v2)桌面 GUI。通过 URL + 密钥连接到任何可达的服务器;标签式 UI 包含会话、终端、监听器、文件、隧道。详见 desktop/。