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

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

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

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

工具目录

分类

查看所有分类
Loading categories
zttp — 零信任SSH堡垒代理,支持基于Vault的密钥管理、RBAC策略强制、完整会话录制,以及用于对生产基础设施进行可审计访问的管理员TUI。 | Kitploit
工具/GitLabGitLab/nihal799/zttp
身份验证与授权云基础设施安全防御工具网络安全DevSecOps身份与访问管理 (IAM)
GitLabnihal799/zttp

zttp

零信任SSH堡垒代理,支持基于Vault的密钥管理、RBAC策略强制、完整会话录制,以及用于对生产基础设施进行可审计访问的管理员TUI。

查看仓库
132个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
网站

ZTTP — 零信任透明代理

一个加固的、自托管的 SSH 堡垒主机,具备基于 Vault 的密钥管理、RBAC 策略执行、完整会话录制和交互式管理 TUI——专为需要对生产基础设施进行可审计、零信任访问的团队而设计。


目录

  • 为什么选择 ZTTP
  • 架构概览
  • 功能亮点
  • 前置要求
  • 快速开始 — 服务器
  • 快速开始 — 客户端
  • 配置
  • 角色与 RBAC 策略
  • 管理控制台
  • 审计日志与会话录制
  • 从源码构建
  • Makefile 参考
  • 截图与演示
  • 项目结构
  • 安全模型
  • 贡献
  • 许可证

为什么选择 ZTTP

现代工程团队需要一种方式,为开发者提供完成工作所需的最低访问权限——不多也不少。传统的 SSH 密钥分发容易出错:密钥被共享、遗忘在笔记本电脑上,且撤销往往为时已晚。

ZTTP 通过充当进入基础设施的唯一门户来解决这一问题:

问题ZTTP 解决方案
SSH 密钥共享在笔记本电脑上密钥仅存在于 HashiCorp Vault 中——绝不落盘
无法了解谁做了什么每次按键都以 .ttyrec 格式记录
对生产环境的一揽子访问基于角色的策略引擎强制执行按环境划分的规则
无法终止活动会话通过 gRPC 端点提供 Kill-switch,可随时终止任何实时会话
对审计人员不透明管理 TUI 支持会话回放、文本日志和管理操作日志

架构概览

root@kitploit:~
开发者笔记本电脑
      │
      │  zttp
      │  (底层:SSH 通过端口 2224)
      ▼
┌─────────────────────────────────────────────────────────┐
│                     ZTTP 代理                           │
│                                                         │
│  ① 认证网关    — bcrypt/Argon2id 登录 TUI              │
│  ② RBAC 引擎   — 环境感知策略检查                      │
│  ③ Vault 获取  — 临时 SSH 密钥检索                     │
│  ④ 桥接        — 透明 TCP 隧道                         │
│  ⑤ 审计写入器  — ttyrec 帧记录器                       │
└──────────┬──────────────────────────────────────────────┘
           │  ssh(私有 IP,临时密钥)
           ▼
     目标服务器

基础设施服务(Docker Compose):


功能亮点

  • 🔐 零信任认证 — 交互式 SSH 登录 TUI,采用 bcrypt 密码哈希、速率限制,以及连续 5 次失败后锁定账户
  • 🛡️ RBAC 策略引擎 — 按角色、按环境的访问控制,通过单个优化的 PostgreSQL JOIN 实现(无往返)
  • 🗝️ 基于 Vault 的 SSH 密钥 — 私钥绝不落盘;每次会话从 HashiCorp Vault 临时获取
  • 📹 完整会话录制 — 所有会话均以 .ttyrec 格式记录,带时间戳帧
  • 🖥️ 交互式管理 TUI — 完整的终端界面,用于用户管理、服务器注册、访问授权和日志审查
  • 🔍 审计日志查看器 — 按服务器浏览会话、回放录制,或直接从管理控制台阅读干净的文本日志
  • ⚡ Kill Switch — 通过 gRPC 端点即时终止任何实时会话
  • 📋 管理操作日志 — 每项管理操作(用户创建、访问授权、日志查看)都会记录到持久化审计追踪中
  • 🌍 多平台客户端 — 适用于 Linux、macOS(amd64/arm64)和 Windows 的单二进制 CLI

前置要求

服务器(代理主机):

  • Docker ≥ 24 和 Docker Compose ≥ 2.20
  • 端口 2224 上的公网或局域网可访问 IP
  • make(可选,但推荐)

开发者(客户端):

  • 任意 SSH 客户端(ssh 命令)
  • Linux、macOS 或 Windows 机器

快速开始 — 服务器

1. 克隆仓库

root@kitploit:~
git clone https://gitlab.com/Nihal799/zttp.git
cd zttp

2. 配置环境

root@kitploit:~
cp .env.example .env

编辑 .env 并至少设置以下内容:

root@kitploit:~
PROXY_NODE_IP=<your-server-public-ip>
POSTGRES_PASSWORD=<a-strong-password>
VAULT_TOKEN=<a-strong-vault-token>

⚠️ 切勿提交你的 .env 文件。 它已列入 .gitignore。

3. 启动所有服务

root@kitploit:~
make docker-up
# 或直接:
docker compose -f deploy/docker-compose.yml up -d --build

4. 验证服务健康状态

root@kitploit:~
make docker-ps
curl http://localhost:8080/healthz

5. 构建并发布 CLI 安装程序

root@kitploit:~
make release PROXY_ADDR=<your-server-ip>:2224

这将为所有平台交叉编译客户端,并自动使用正确的服务器 URL 更新 dist/install.sh 和 dist/install.ps1。Nginx 容器将在 http://<your-server-ip>:8555/ 提供这些文件。


快速开始 — 客户端

Linux / macOS

root@kitploit:~
curl -fsSL http://<proxy-ip>:8555/install.sh | bash

Windows(PowerShell,以管理员身份运行)

root@kitploit:~
irm http://<proxy-ip>:8555/install.ps1 | iex

连接

安装完成后,连接到 ZTTP 网关:

root@kitploit:~
zttp
# 或直接:
ssh -p 2224 <your-username>@<proxy-ip>

你将看到一个终端登录界面。认证通过后,你会看到你有权访问的服务器列表。


配置

所有配置均通过环境变量(或 .env 文件)完成。完整参考请参见 .env.example。


角色与 RBAC 策略

ZTTP 采用基于角色的模型。每个用户被分配一个角色;每个角色都有一个策略,定义它可以访问哪些服务器环境。

角色和服务器分配通过管理控制台管理(见下文)。RBAC 引擎在单个 PostgreSQL 查询中执行所有检查——它绝不会向客户端暴露访问被拒绝的原因(防枚举保护)。


管理控制台

从网关菜单中选择 zttp-admin 服务器连接,或使用具有 security-admin 角色的账户登录。

管理控制台提供:

所有管理操作都会记录到审计卷中的 admin-actions.log 文件。


审计日志与会话录制

所有会话都存储在 zttp-audit-logs Docker 卷中(容器内为 /var/log/zttp/audit/)。

从管理控制台查看

  1. 以 security-admin 身份登录
  2. 选择查看审计日志
  3. 从列表中选择一个服务器
  4. 选择一个会话
  5. 选择查看文本日志(去除 ANSI 转义,可读)或播放录制(实时回放)
  6. 按 Ctrl+C 返回

从主机查看(原始)

root@kitploit:~
# 列出录制文件
sudo ls /var/lib/docker/volumes/zttp-audit-logs/_data/

# 使用 ttyplay 播放录制
sudo ttyplay /var/lib/docker/volumes/zttp-audit-logs/_data/<session-id>.ttyrec

# 阅读管理操作日志
sudo cat /var/lib/docker/volumes/zttp-audit-logs/_data/admin-actions.log

从源码构建

要求: Go 1.25+、Docker(用于交叉编译)

root@kitploit:~
# 为当前平台构建代理 + CLI
make build

# 为所有平台交叉编译 CLI(Linux、macOS、Windows)
make release PROXY_ADDR=<proxy-ip>:2224

# 运行测试
make test

# 本地运行代理(需要 Postgres 和 Vault 已在运行)
make run-proxy

Makefile 参考


截图与演示

1. 安装

安装演示 (点击播放演示)

2. 安全登录

安全登录演示 (点击播放演示)

3. 添加服务器(管理控制台)

添加服务器演示 (点击播放演示)

4. 连接到服务器(网关)

连接服务器演示 (点击播放演示)

5. Kill Switch(管理员强制退出)

Kill Switch 演示 (点击播放演示)


项目结构

root@kitploit:~
zttp/
├── cmd/
│   ├── proxy/          # 代理服务器入口点
│   └── zttp/           # CLI 客户端入口点
├── db/
│   └── migrations/     # PostgreSQL 模式迁移
├── deploy/
│   ├── docker-compose.yml
│   ├── Dockerfile.proxy
│   └── vault-seed.sh   # 将测试 SSH 密钥填充到 Vault
├── dist/
│   ├── install.sh      # Linux/macOS 安装脚本
│   └── install.ps1     # Windows 安装脚本
├── internal/
│   ├── audit/          # 管理操作日志
│   ├── auth/           # 用户认证(bcrypt、锁定)
│   ├── cli/            # CLI 客户端 TUI 和连接逻辑
│   ├── config/         # 基于环境的配置
│   ├── killswitch/     # gRPC kill-switch 服务
│   ├── proxy/          # SSH 代理、网关 TUI、管理 TUI、桥接
│   ├── rbac/           # 基于角色的访问控制引擎
│   ├── ratelimit/      # 按 IP 速率限制
│   ├── session/        # 会话跟踪和数据库存储
│   └── vault/          # HashiCorp Vault SSH 密钥客户端
├── proto/              # gRPC 协议定义
├── tools/
│   └── hashpw/         # CLI 工具:生成 bcrypt 密码哈希
├── .env.example        # 配置模板
├── go.mod
└── Makefile

安全模型


贡献

  1. Fork 仓库
  2. 创建功能分支:git checkout -b feat/your-feature
  3. 进行修改,确保每个文件有独立的提交
  4. 运行测试:make test
  5. 开启合并请求

请勿提交:

  • .env 或任何包含密钥的文件
  • 生产服务器的真实 IP 地址或主机名
  • 编译后的二进制文件(根目录下的 zttp 二进制文件已被 .gitignore 忽略)

许可证

本项目为专有软件。保留所有权利。


使用 Go、PostgreSQL、HashiCorp Vault 和 Docker 构建。

下载工具
服务用途
zttp-proxySSH 堡垒主机(Go 二进制文件)
zttp-postgres控制平面数据库(用户、服务器、RBAC 策略)
zttp-vaultHashiCorp Vault — 存储 SSH 私钥
zttp-nginx在 /release/ 提供 CLI 安装程序
zttp-init-audit一次性容器,用于修复卷权限
变量默认值描述
PROXY_LISTEN_ADDR0.0.0.0:2222SSH 代理绑定地址
HTTP_LISTEN_ADDR0.0.0.0:8080健康检查 HTTP 地址
GRPC_LISTEN_ADDR0.0.0.0:9090Kill-switch gRPC 地址
PROXY_NODE_IP127.0.0.1烧录到 CLI 二进制文件中的外部 IP
DATABASE_URLpostgres://zttp:...PostgreSQL 连接字符串
VAULT_ADDRhttp://localhost:8201Vault 服务器 URL
VAULT_TOKENdev-root-token-zttpVault 根令牌(仅限开发环境——生产环境请使用 AppRole)
MAX_FAILED_ATTEMPTS5锁定阈值
LOCKOUT_DURATION15m账户锁定持续时间
RATE_LIMIT_PER_MIN10每个 IP 每分钟最大登录尝试次数
AUDIT_LOG_DIR/var/log/zttp/audit会话录制目录路径
SOC_WEBHOOK_URL(空)用于 SOC 告警的可选 webhook
角色访问权限
security-admin对所有环境的完全访问权限 + 管理控制台
sre-tier1包括生产环境在内的所有环境
sre-tier2仅限预发布和开发环境
dev仅限开发环境
readonly开发环境,受限命令集
菜单选项描述
添加用户创建新用户并分配角色
添加服务器注册目标服务器(主机名、IP、环境、SSH 用户)
管理服务器访问授予或撤销用户对特定服务器的访问权限
查看用户列出所有用户及其角色
查看服务器列出所有已注册的服务器
查看审计日志浏览会话、回放录制、阅读文本日志
[ 返回 ]返回服务器网关
命令描述
make build为当前平台构建代理和 CLI
make release为所有平台交叉编译 CLI 二进制文件
make release-docker在 Docker 容器内交叉编译(避免 snap/WSL 问题)
make docker-up启动所有 Docker Compose 服务
make docker-down停止所有服务并删除卷
make docker-logs跟踪代理日志
make docker-ps显示容器状态
make test运行所有 Go 测试
make migrate应用数据库迁移
make seed填充开发数据
make hashpw PW=mypassword生成 bcrypt 哈希,用于手动数据库填充
make clean删除编译后的二进制文件和构建缓存
层级机制
传输所有客户端连接均为 SSH(传输中加密)
认证bcrypt(成本 12)/ Argon2id — 模式中结构性地禁止明文
暴力破解防护账户锁定(5 次尝试 / 15 分钟)+ 按 IP 速率限制器
授权单 JOIN RBAC 查询 — 拒绝始终是通用的("Permission denied")
密钥管理SSH 私钥仅存储在 HashiCorp Vault 中,临时获取
审计追踪以 .ttyrec 格式完整记录按键,不可变的追加式管理日志
进程隔离代理以非 root(UID 65532)身份在 distroless 容器中运行
Kill switch任何实时会话均可通过 gRPC 终止,无需重启代理