Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
zttp — Proxy bastión SSH de confianza cero con gestión de claves respaldada por Vault, aplicación de políticas RBAC, grabación completa de sesiones y TUI de administración para acceso auditable a infraestructura de producción. | Kitploit
Herramientas/GitLabGitLab/nihal799/zttp
Autenticación y AutorizaciónSeguridad de Infraestructura en la NubeHerramientas DefensivasSeguridad de RedesDevSecOpsGestión de Identidad y Acceso (IAM)
GitLabnihal799/zttp

zttp

Proxy bastión SSH de confianza cero con gestión de claves respaldada por Vault, aplicación de políticas RBAC, grabación completa de sesiones y TUI de administración para acceso auditable a infraestructura de producción.

Ver Repositorio
13hace 2 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Sitio web

ZTTP — Proxy Transparente de Confianza Cero

Un bastión SSH autohospedado y endurecido con gestión de claves respaldada por Vault, aplicación de políticas RBAC, grabación completa de sesiones y una TUI administrativa interactiva — diseñado para equipos que necesitan acceso auditable y de confianza cero a la infraestructura de producción.


Tabla de Contenidos

  • Por qué ZTTP
  • Descripción General de la Arquitectura
  • Características Destacadas
  • Requisitos Previos
  • Inicio Rápido — Servidor
  • Inicio Rápido — Cliente
  • Configuración
  • Roles y Política RBAC
  • Consola de Administración
  • Registros de Auditoría y Grabaciones de Sesiones
  • Compilación desde el Código Fuente
  • Referencia del Makefile
  • Capturas de Pantalla y Demo
  • Estructura del Proyecto
  • Modelo de Seguridad
  • Contribuciones
  • Licencia

Por qué ZTTP

Los equipos de ingeniería modernos necesitan una forma de dar a los desarrolladores el acceso mínimo requerido para hacer su trabajo — ni más, ni menos. La distribución tradicional de claves SSH es propensa a errores: las claves se comparten, se olvidan en los portátiles y se revocan demasiado tarde.

ZTTP resuelve esto actuando como la única puerta hacia tu infraestructura:


Descripción General de la Arquitectura

root@kitploit:~
Portátil del Desarrollador
      │
      │  zttp
      │  (Internamente: SSH en el puerto 2224)
      ▼
┌─────────────────────────────────────────────────────────┐
│                     Proxy ZTTP                          │
│                                                         │
│  ① Puerta de Autenticación — TUI de inicio de sesión bcrypt/Argon2id │
│  ② Motor RBAC   — verificación de política consciente del entorno    │
│  ③ Obtención de Vault — recuperación efímera de claves SSH           │
│  ④ Puente        — túnel TCP transparente                            │
│  ⑤ Escritor de Auditoría — grabador de tramas ttyrec                 │
└──────────┬──────────────────────────────────────────────┘
           │  ssh (IP privada, clave efímera)
           ▼
     Servidor de Destino

Servicios de infraestructura (Docker Compose):


Características Destacadas

  • 🔐 Autenticación de confianza cero — TUI de inicio de sesión SSH interactivo con hash de contraseña bcrypt, limitación de velocidad y bloqueo de cuenta tras 5 intentos fallidos
  • 🛡️ Motor de políticas RBAC — Control de acceso por rol y por entorno con un único JOIN optimizado de PostgreSQL (sin viajes de ida y vuelta)
  • 🗝️ Claves SSH respaldadas por Vault — Las claves privadas nunca tocan el disco; se obtienen efímeramente por sesión desde HashiCorp Vault
  • 📹 Grabación completa de sesiones — Todas las sesiones se graban en formato .ttyrec con tramas con marca de tiempo
  • 🖥️ TUI administrativa interactiva — Interfaz de terminal completa para gestión de usuarios, registro de servidores, concesión de accesos y revisión de registros
  • 🔍 Visor de registros de auditoría — Explora sesiones por servidor, reproduce grabaciones o lee registros de texto limpios directamente desde la consola de administración
  • ⚡ Interruptor de emergencia — Endpoint gRPC para terminar cualquier sesión en vivo al instante
  • 📋 Registro de acciones administrativas — Cada acción administrativa (creación de usuarios, concesión de accesos, visualización de registros) se registra en una pista de auditoría persistente
  • 🌍 Cliente multiplataforma — CLI de un solo binario para Linux, macOS (amd64/arm64) y Windows

Requisitos Previos

Servidor (host del proxy):

  • Docker ≥ 24 y Docker Compose ≥ 2.20
  • Una IP pública o accesible desde la LAN en el puerto 2224
  • make (opcional, pero recomendado)

Desarrollador (cliente):

  • Cualquier cliente SSH (comando ssh)
  • Máquina Linux, macOS o Windows

Inicio Rápido — Servidor

1. Clonar el repositorio

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

2. Configurar tu entorno

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

Edita .env y establece como mínimo:

root@kitploit:~
PROXY_NODE_IP=<ip-publica-de-tu-servidor>
POSTGRES_PASSWORD=<una-contraseña-fuerte>
VAULT_TOKEN=<un-token-de-vault-fuerte>

⚠️ Nunca hagas commit de tu archivo .env. Está listado en .gitignore.

3. Iniciar todos los servicios

root@kitploit:~
make docker-up
# o directamente:
docker compose -f deploy/docker-compose.yml up -d --build

4. Verificar que los servicios estén saludables

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

5. Compilar y publicar los instaladores CLI

root@kitploit:~
make release PROXY_ADDR=<ip-de-tu-servidor>:2224

Esto compila de forma cruzada los clientes para todas las plataformas y actualiza automáticamente dist/install.sh y dist/install.ps1 con la URL correcta del servidor. El contenedor Nginx sirve estos archivos en http://<ip-de-tu-servidor>:8555/.


Inicio Rápido — Cliente

Linux / macOS

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

Windows (PowerShell, ejecutar como Administrador)

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

Conectar

Una vez instalado, conéctate a la puerta de enlace ZTTP:

root@kitploit:~
zttp
# o directamente:
ssh -p 2224 <tu-nombre-de-usuario>@<ip-del-proxy>

Se te presentará una pantalla de inicio de sesión de terminal. Después de la autenticación, verás una lista de servidores a los que estás autorizado a acceder.


Configuración

Toda la configuración se realiza mediante variables de entorno (o archivo .env). Consulta .env.example para la referencia completa.


Roles y Política RBAC

ZTTP utiliza un modelo basado en roles. A cada usuario se le asigna un rol; cada rol tiene una política que define a qué entornos de servidores puede acceder.

Los roles y las asignaciones de servidores se gestionan a través de la Consola de Administración (ver más abajo). El motor RBAC realiza todas las verificaciones en una sola consulta PostgreSQL — nunca expone por qué se denegó el acceso al cliente (protección contra enumeración).


Consola de Administración

Conéctate al servidor zttp-admin desde el menú de la puerta de enlace, o inicia sesión con una cuenta que tenga el rol security-admin.

La Consola de Administración proporciona:

Todas las acciones administrativas se registran en admin-actions.log dentro del volumen de auditoría.


Registros de Auditoría y Grabaciones de Sesiones

Todas las sesiones se almacenan en el volumen Docker zttp-audit-logs (/var/log/zttp/audit/ dentro del contenedor).

Visualización desde la Consola de Administración

  1. Inicia sesión como security-admin
  2. Selecciona Ver Registros de Auditoría
  3. Selecciona un servidor de la lista
  4. Selecciona una sesión
  5. Elige Ver Registro de Texto (sin ANSI, legible) o Reproducir Grabación (reproducción en tiempo real)
  6. Pulsa Ctrl+C para volver

Visualización desde el host (crudo)

root@kitploit:~
# Listar grabaciones
sudo ls /var/lib/docker/volumes/zttp-audit-logs/_data/

# Reproducir una grabación con ttyplay
sudo ttyplay /var/lib/docker/volumes/zttp-audit-logs/_data/<id-de-sesión>.ttyrec

# Leer el registro de acciones administrativas
sudo cat /var/lib/docker/volumes/zttp-audit-logs/_data/admin-actions.log

Compilación desde el Código Fuente

Requisitos: Go 1.25+, Docker (para compilación cruzada)

root@kitploit:~
# Compilar proxy + CLI para la plataforma actual
make build

# Compilación cruzada del CLI para todas las plataformas (Linux, macOS, Windows)
make release PROXY_ADDR=<ip-del-proxy>:2224

# Ejecutar pruebas
make test

# Ejecutar proxy localmente (requiere Postgres + Vault ya en ejecución)
make run-proxy

Referencia del Makefile


Capturas de Pantalla y Demo

1. Instalación

Demo de Instalación (Haz clic para reproducir la demo)

2. Inicio de Sesión Seguro

Demo de Inicio de Sesión Seguro (Haz clic para reproducir la demo)

3. Agregar Servidor (Consola de Administración)

Demo de Agregar Servidor (Haz clic para reproducir la demo)

4. Conectar al Servidor (Puerta de Enlace)

Demo de Conexión al Servidor (Haz clic para reproducir la demo)

5. Interruptor de Emergencia (Expulsión Administrativa)

Demo del Interruptor de Emergencia (Haz clic para reproducir la demo)


Estructura del Proyecto

root@kitploit:~
zttp/
├── cmd/
│   ├── proxy/          # Punto de entrada del servidor proxy
│   └── zttp/           # Punto de entrada del cliente CLI
├── db/
│   └── migrations/     # Migraciones de esquema de PostgreSQL
├── deploy/
│   ├── docker-compose.yml
│   ├── Dockerfile.proxy
│   └── vault-seed.sh   # Siembra claves SSH de prueba en Vault
├── dist/
│   ├── install.sh      # Script de instalación para Linux/macOS
│   └── install.ps1     # Script de instalación para Windows
├── internal/
│   ├── audit/          # Registro de acciones administrativas
│   ├── auth/           # Autenticación de usuarios (bcrypt, bloqueo)
│   ├── cli/            # TUI del cliente CLI y lógica de conexión
│   ├── config/         # Configuración basada en entorno
│   ├── killswitch/     # Servicio gRPC de interruptor de emergencia
│   ├── proxy/          # Proxy SSH, TUI de puerta de enlace, TUI administrativa, puente
│   ├── rbac/           # Motor de control de acceso basado en roles
│   ├── ratelimit/      # Limitación de velocidad por IP
│   ├── session/        # Seguimiento de sesiones y almacenamiento en BD
│   └── vault/          # Cliente de claves SSH de HashiCorp Vault
├── proto/              # Definiciones de protocolo gRPC
├── tools/
│   └── hashpw/         # Herramienta CLI: generar hash de contraseña bcrypt
├── .env.example        # Plantilla de configuración
├── go.mod
└── Makefile

Modelo de Seguridad


Contribuciones

  1. Haz un fork del repositorio
  2. Crea una rama de características: git checkout -b feat/tu-característica
  3. Realiza tus cambios, asegurando que cada archivo tenga su propio commit
  4. Ejecuta las pruebas: make test
  5. Abre una solicitud de fusión

Por favor, no hagas commit de:

  • .env o cualquier archivo que contenga secretos
  • Direcciones IP reales o hostnames de servidores de producción
  • Binarios compilados (el binario zttp en la raíz está en .gitignore)

Licencia

Este proyecto es propietario. Todos los derechos reservados.


Construido con Go, PostgreSQL, HashiCorp Vault y Docker.

Descargar herramienta
ProblemaSolución ZTTP
Claves SSH compartidas en portátilesLas claves viven solo en HashiCorp Vault — nunca en disco
Sin visibilidad de quién hizo quéCada pulsación de tecla se graba en formato .ttyrec
Acceso generalizado a producciónEl motor de políticas basado en roles aplica reglas por entorno
Sin forma de detener una sesión activaEndpoint gRPC de interrupción que termina cualquier sesión en vivo
Acceso opaco para auditoresTUI administrativa con reproducción de sesiones, registros de texto y registros de acciones administrativas
ServicioPropósito
zttp-proxyEl bastión SSH (binario Go)
zttp-postgresBase de datos del plano de control (usuarios, servidores, políticas RBAC)
zttp-vaultHashiCorp Vault — almacena las claves privadas SSH
zttp-nginxSirve los instaladores CLI en /release/
zttp-init-auditContenedor de un solo uso que corrige los permisos de volumen
VariableValor por DefectoDescripción
PROXY_LISTEN_ADDR0.0.0.0:2222Dirección de enlace del proxy SSH
HTTP_LISTEN_ADDR0.0.0.0:8080Dirección HTTP de verificación de salud
GRPC_LISTEN_ADDR0.0.0.0:9090Dirección gRPC del interruptor de emergencia
PROXY_NODE_IP127.0.0.1IP externa integrada en los binarios CLI
DATABASE_URLpostgres://zttp:...Cadena de conexión de PostgreSQL
VAULT_ADDRhttp://localhost:8201URL del servidor Vault
VAULT_TOKENdev-root-token-zttpToken raíz de Vault (solo desarrollo — usa AppRole en producción)
MAX_FAILED_ATTEMPTS5Umbral de bloqueo
LOCKOUT_DURATION15mDuración del bloqueo de cuenta
RATE_LIMIT_PER_MIN10Máximo de intentos de inicio de sesión por minuto por IP
AUDIT_LOG_DIR/var/log/zttp/auditRuta del directorio de grabación de sesiones
SOC_WEBHOOK_URL(vacío)Webhook opcional para alertas del SOC
RolAcceso
security-adminAcceso completo a todos los entornos + Consola de Administración
sre-tier1Todos los entornos, incluida producción
sre-tier2Solo puesta en escena y desarrollo
devSolo entorno de desarrollo
readonlyEntorno de desarrollo, conjunto de comandos restringido
Opción de MenúDescripción
Agregar UsuarioCrear un nuevo usuario con asignación de rol
Agregar ServidorRegistrar un servidor de destino (hostname, IP, entorno, usuario SSH)
Gestionar Acceso a ServidoresOtorgar o revocar acceso de usuarios a servidores específicos
Ver UsuariosListar todos los usuarios y sus roles
Ver ServidoresListar todos los servidores registrados
Ver Registros de AuditoríaExplorar sesiones, reproducir grabaciones, leer registros de texto
[ Atrás ]Volver a la puerta de enlace de servidores
ComandoDescripción
make buildCompilar proxy y CLI para la plataforma actual
make releaseCompilación cruzada de binarios CLI para todas las plataformas
make release-dockerCompilación cruzada dentro de un contenedor Docker (evita problemas de snap/WSL)
make docker-upIniciar todos los servicios de Docker Compose
make docker-downDetener todos los servicios y eliminar volúmenes
make docker-logsSeguir los registros del proxy
make docker-psMostrar el estado de los contenedores
make testEjecutar todas las pruebas Go
make migrateAplicar migraciones de base de datos
make seedSembrar datos de desarrollo
make hashpw PW=micontraseñaGenerar un hash bcrypt para la siembra manual de la base de datos
make cleanEliminar binarios compilados y caché de compilación
CapaMecanismo
TransporteTodas las conexiones de clientes son SSH (cifradas en tránsito)
Autenticaciónbcrypt (costo 12) / Argon2id — el texto plano está estructuralmente prohibido en el esquema
Protección contra fuerza brutaBloqueo de cuenta (5 intentos / 15 min) + limitador de velocidad por IP
AutorizaciónConsulta RBAC de un solo JOIN — las denegaciones son siempre genéricas ("Permiso denegado")
Gestión de secretosLas claves privadas SSH se almacenan exclusivamente en HashiCorp Vault, obtenidas efímeramente
Pista de auditoríaGrabación completa de pulsaciones de teclas en formato .ttyrec, registro administrativo inmutable de solo anexión
Aislamiento de procesosEl proxy se ejecuta como no root (UID 65532) dentro de un contenedor distroless
Interruptor de emergenciaCualquier sesión en vivo puede terminarse vía gRPC sin reiniciar el proxy