Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
enseal — Compartilhamento seguro e efêmero de segredos para desenvolvedores. | Kitploit
Ferramentas/GitHubGitHub/fleralex/enseal
Ferramentas de Criptografia/DescriptografiaAuditoria de ConfiguraçãoExfiltração de DadosSegurança na NuvemDevSecOpsPrivacidadeUtilitários e FrameworksDetecção de SegredosAutenticação
GitHubfleralex/enseal

enseal

Compartilhamento seguro e efêmero de segredos para desenvolvedores.

55há 5 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório

enseal

CI Release Crates.io License: MIT

Compartilhamento seguro e efêmero de segredos para desenvolvedores.

Pare de colar segredos no Slack. enseal torna o caminho seguro mais rápido que o inseguro — compartilhe arquivos .env e segredos por meio de canais criptografados e de uso único com um comando e zero configuração.```bash

sender

$ enseal share .env Share code: 7-guitarist-revenge Secrets: 14 variables (staging) Expires: on first receive

recipient

$ enseal receive 7-guitarist-revenge ok: 14 secrets written to .env

root@kitploit:~
## Instalação

### De crates.io```bash
cargo install enseal

Da fonte```bash

git clone https://github.com/FlerAlex/enseal.git cd enseal cargo build --release

binary at ./target/release/enseal

root@kitploit:~
### Binários pré-compilados

Baixe de [GitHub Releases](https://github.com/FlerAlex/enseal/releases) para Linux (x86_64, aarch64), macOS (Intel, Apple Silicon) e Windows.

## Início Rápido

### Modo anônimo (sem configuração)

Compartilhe segredos usando um código único. Sem chaves, sem contas — funciona imediatamente.```bash
# terminal 1 (sender)
enseal share .env
  Share code:  7-guitarist-revenge
  Secrets:     14 variables
  Expires:     on first receive

# terminal 2 (recipient) — enter the code
enseal receive 7-guitarist-revenge
ok: 14 secrets written to .env

Funciona também com segredos únicos:```bash

terminal 1 — pipe a token

echo "my-api-token" | enseal share --label "API key" Share code: 4-orbital-hammock

terminal 2 — prints to stdout

enseal receive 4-orbital-hammock my-api-token

root@kitploit:~
Ambos os terminais devem estar abertos ao mesmo tempo — o remetente aguarda até que o destinatário se conecte.

### Modo de identidade (baseado em chave, sem códigos)

Para equipes com confiança de chave estabelecida. Criptografe para um nome, sem necessidade de coordenação.```bash
# one-time setup
enseal keys init
enseal keys export > my-key.pub          # share this with teammates
enseal keys import teammate-key.pub      # import theirs

# sender encrypts to recipient by name
enseal share .env --to sarah

# or push through the public relay (no codes at all)
enseal share .env --to sarah --relay wss://relay.enseal.dev

# or produce an encrypted file (no network)
enseal share .env --to sarah --output ./drop/

Injetar segredos em um processo (nunca tocar no disco)```bash

anonymous mode: sender gives you a code

enseal inject 7-guitarist-revenge -- npm start

identity mode: listen on relay, sender pushes when ready

enseal inject --listen --relay wss://relay.enseal.dev -- docker compose up

from an encrypted file drop

enseal inject ./staging.env.age -- python manage.py runserver

root@kitploit:~
Segredos existem apenas na memória do processo filho. Quando ele termina, eles desaparecem.

## Funcionalidades

### Três Modos de Compartilhamento

**Modo anônimo** (padrão) — baseado em wormhole, zero configuração. Um código legível por humanos é tudo que você precisa. A autenticação mútua SPAKE2 previne ataques MITM.```bash
enseal share .env                         # generates wormhole code
enseal receive 7-guitarist-revenge        # uses code

Com --relay, o modo anônimo contorna o wormhole e usa o transporte de relay enseal em vez disso. Ambos os lados devem usar o mesmo relay:```bash enseal share .env --relay ws://relay.internal:4443 # generates channel code enseal receive 3421-amber-frost --relay ws://relay.internal:4443

root@kitploit:~
**Async upload (`--upload`)** — apenas do remetente. Criptografa localmente e publica em [burnurl.dev](https://burnurl.dev), retornando uma URL autodestrutiva que o destinatário abre no navegador. Nenhuma CLI é necessária do lado do destinatário.```bash
enseal share .env --upload
#   Secret URL:  https://burnurl.dev/s/a3f9c2e1...
#   Expires:     2026-03-08 19:42:00 UTC (24h)
#   Reads:       1 (self-destructs on first open)

O destinatário abre o URL em qualquer navegador — nenhuma instalação do enseal necessária. Adicione --passphrase para criptografar no lado do cliente antes do upload (o servidor vê apenas o texto cifrado):```bash enseal share .env --upload --passphrase # prompts for passphrase enseal share .env --upload --ttl 4 # 4-hour TTL (max 24)

root@kitploit:~
O acesso à API requer um plano Pro ou Team no burnurl.dev. Defina `BURNURL_API_KEY` com sua chave. Substitua a URL base para instâncias auto-hospedadas: `BURNURL_URL=https://burnurl.internal`.

**Modo de identidade** — criptografia de chave pública para colegas conhecidos. Criptografe para um nome.```bash
enseal keys init                          # one-time setup
enseal share .env --to sarah              # encrypt to sarah's public key

O modo identidade suporta três opções de transporte:```bash

wormhole (default, no --relay): generates a code like anonymous mode

enseal share .env --to sarah

relay push (with --relay): zero codes, pushes directly to recipient's channel

enseal share .env --to sarah --relay wss://relay.enseal.dev

file drop (with --output): no network, produces encrypted file

enseal share .env --to sarah --output ./drop/

produces ./drop/[email protected]

root@kitploit:~
### Entrada Flexível

enseal aceita segredos de múltiplas fontes:```bash
# .env file (default)
enseal share .env
enseal share staging.env

# environment profile
enseal share --env staging               # resolves to .env.staging

# pipe from stdin
echo "sk_live_abc123" | enseal share
cat secrets.env | enseal share
pass show stripe/key | enseal share --to sarah

# inline (careful — visible in shell history)
enseal share --secret "API_KEY=sk_live_abc123"

# wrap raw string as KEY=VALUE
echo "sk_live_abc123" | enseal share --as STRIPE_KEY

Interpolação de Variáveis

Referências ${VAR} são resolvidas antes do envio, para que os destinatários recebam valores totalmente expandidos:```env DB_HOST=postgres.internal DB_PORT=5432 DATABASE_URL=postgres://user:pass@${DB_HOST}:${DB_PORT}/myapp

root@kitploit:~
Suporta a sintaxe de fallback `${VAR:-default}`. Referências circulares e diretas são detectadas e rejeitadas. Use `--no-interpolate` para enviar a sintaxe `${VAR}` bruta.

### Filtragem

Controle quais variáveis são enviadas:```bash
# exclude public/non-secret vars
enseal share .env --exclude "^PUBLIC_|^NEXT_PUBLIC_"

# send only matching vars
enseal share .env --include "^DB_|^API_"

# skip .env parsing entirely (send raw file)
enseal share .env --no-filter

Recepção Inteligente

A saída se adapta ao que foi enviado:```bash

.env payload -> writes to file

enseal receive CODE ok: 14 secrets written to .env

write to specific file

enseal receive CODE --output staging.env

raw string -> prints to stdout (pipe-friendly)

enseal receive CODE sk_live_abc123

force clipboard

enseal receive CODE --clipboard ok: copied to clipboard

force stdout for any payload

enseal receive CODE --no-write

receive from encrypted file drop (identity mode)

enseal receive ./staging.env.age ok: signature verified, file decrypted ok: 14 secrets written to .env

root@kitploit:~
### Inject

Recebe segredos e os injeta diretamente como variáveis de ambiente em um processo filho. Segredos nunca tocam o sistema de arquivos.```bash
# anonymous mode: inject via wormhole code
enseal inject 7-guitarist-revenge -- npm start

# identity mode: listen for incoming transfer on relay
enseal inject --listen --relay wss://relay.enseal.dev -- docker compose up

# from encrypted file drop
enseal inject ./staging.env.age -- python manage.py runserver

Com --listen, o receptor conecta-se ao relé e aguarda. O remetente envia com enseal share .env --to alex --relay wss://relay.enseal.dev — sem códigos trocados, zero coordenação necessária.

Kit de ferramentas .env

Além de compartilhar, enseal é um kit de ferramentas de segurança .env completo:```bash

check: verify your .env has all required vars

enseal check error: missing from .env (present in .env.example): JWT_SECRET, REDIS_URL

diff: compare two .env files (keys only, never values)

enseal diff .env.development .env.staging

  • REDIS_CLUSTER_URL (only in staging)
  • DEBUG (only in development)

redact: strip values for safe sharing of structure

enseal redact .env DATABASE_URL= API_KEY= PORT=

validate: check values against schema rules

enseal validate .env error: missing required: JWT_SECRET error: PORT value "abc" is not an integer ok: 11/14 variables passed validation

template: generate .env.example with type hints

enseal template .env

DATABASE_URL=

API_KEY=<32+ character string>

PORT=<integer, 1024-65535>

root@kitploit:~
### Criptografia em Repouso

Criptografe arquivos `.env` para armazenamento seguro no git usando criptografia age:```bash
# whole-file encryption
enseal encrypt .env
ok: .env encrypted in-place (14 variables, age key)

enseal decrypt .env

# per-variable: keys visible for diffing, values encrypted
enseal encrypt .env --per-var
# DB_HOST=ENC[age:abc123...]
# DB_PORT=ENC[age:def456...]

# multi-recipient: anyone on the team can decrypt
enseal encrypt .env --to sarah --to alex

Gestão de Identidade e Chaves```bash

generate your keypair

enseal keys init

share your public key with teammates

enseal keys export > my-key.pub

import a teammate's key (shows fingerprint, prompts for confirmation)

enseal keys import sarah.pub

list all trusted keys and aliases

enseal keys list

show your key fingerprint (for out-of-band verification)

enseal keys fingerprint

remove a trusted key

enseal keys remove [email protected]

create aliases for convenience

enseal keys alias sarah [email protected]

create groups for multi-recipient sharing

enseal keys group create backend-team enseal keys group add backend-team sarah enseal keys group add backend-team alex enseal keys group list backend-team enseal share .env --to backend-team

delete a group

enseal keys group delete backend-team

root@kitploit:~
### Retransmissor Público

Um retransmissor público gratuito está disponível em `wss://relay.enseal.dev`. Use-o para testes rápidos ou quando não precisar de um retransmissor privado.```bash
# check relay health
curl https://relay.enseal.dev/health

# use it for identity-mode transfers
enseal share .env --to sarah --relay wss://relay.enseal.dev
enseal inject --listen --relay wss://relay.enseal.dev -- npm start

# or set it globally
export ENSEAL_RELAY=wss://relay.enseal.dev

Experimente você mesmo```bash

1. generate keys (one-time)

enseal keys init

2. export and import your own key (for self-testing)

enseal keys export > /tmp/mykey.pub enseal keys import /tmp/mykey.pub

enter an alias when prompted (e.g. "mykey")

3. test file drop (no network needed)

enseal share --secret "TEST=works" --to mykey --output /tmp/ enseal receive /tmp/mykey.env.age

4. test relay push (two terminals)

terminal 1 (receiver):

enseal inject --listen --relay wss://relay.enseal.dev -- env | grep TEST

terminal 2 (sender):

enseal share --secret "TEST=relay_works" --to mykey --relay wss://relay.enseal.dev

root@kitploit:~
### Relay Auto-Hospedado

Mantenha tudo dentro da sua rede. O relay é sem estado — ele vê apenas texto cifrado.```bash
# Docker (one command)
docker run -d -p 4443:4443 enseal/relay

# Or as a binary
enseal serve --port 4443

# Check relay health
curl http://localhost:4443/health

enseal serve usa WebSocket simples (ws://). Para TLS, coloque um proxy reverso (Caddy, nginx) na frente e conecte-se com wss://.

Com --relay definido, todos os modos roteiam através do seu relay:```bash

Anonymous mode — generates enseal channel code instead of wormhole code

enseal share .env --relay ws://relay.internal:4443

info: Share code: 3421-amber-frost

enseal receive 3421-amber-frost --relay ws://relay.internal:4443

Or set globally

export ENSEAL_RELAY=ws://relay.internal:4443 enseal share .env

root@kitploit:~
O modo de identidade com um relay auto-hospedado é totalmente sem código:```bash
# receiver listens on the relay
enseal inject --listen --relay ws://relay.internal:4443 -- npm start

# sender pushes directly — no code generated
enseal share .env --to alex --relay ws://relay.internal:4443
ok: pushed to alex

Validação de Esquema

Defina regras em .enseal.toml na raiz do projeto:```toml [schema] required = ["DATABASE_URL", "API_KEY", "JWT_SECRET"]

[schema.rules.DATABASE_URL] pattern = "^postgres://" description = "PostgreSQL connection string"

[schema.rules.PORT] type = "integer" range = [1024, 65535]

[schema.rules.API_KEY] min_length = 32

root@kitploit:~
Em seguida, valide:```bash
enseal validate .env

A validação também é executada automaticamente ao receber arquivos .env — detectando configurações quebradas antes que causem confusão.

Perfis de Ambiente```bash

enseal share --env staging # shares .env.staging enseal validate --env production # validates .env.production enseal diff .env.development .env.production

root@kitploit:~
## Como Funciona

### Modo Anônimo

**Wormhole (padrão, sem `--relay`):**

1. O remetente criptografa a carga útil com `age`
2. Uma troca de chaves SPAKE2 estabelece um segredo compartilhado através do relé público wormhole
3. A carga útil criptografada transita através do relé
4. O destinatário descriptografa com a chave negociada
5. O canal é destruído — uso único, com tempo limitado

O relé nunca vê texto simples. O código wormhole fornece autenticação mútua.

**Relé Enseal (`--relay`):**

1. O remetente criptografa a carga útil com `age` e a envia para o relé enseal sob um código de canal gerado
2. O destinatário conecta-se ao mesmo relé com o mesmo código e recebe a carga útil
3. O canal é consumido no primeiro recebimento

Não há SPAKE2 neste modo — o código do canal é a única credencial.

### Upload Assíncrono (`--upload`)

1. O remetente serializa a carga útil em um `Envelope` (JSON, verificação de integridade SHA-256)
2. Opcionalmente, criptografa no lado do cliente com uma frase-senha age scrypt (`--passphrase`)
3. Faz POST da carga útil para `burnurl.dev/api/secret` via HTTPS
4. O burnurl.dev armazena com AES-256-GCM no servidor em repouso e retorna uma URL de autodestruição
5. A URL é válida pelo TTL configurado (até 24h no plano gratuito), leitura única

O remetente compartilha a URL. O destinatário a abre em qualquer navegador — não é necessário enseal. Com `--passphrase`, a frase-senha deve ser compartilhada separadamente; o servidor nunca vê texto simples.

**Planos:** O acesso à API requer um plano Pro ou Team no burnurl.dev. Defina `BURNURL_API_KEY` como sua chave — o plano gratuito não tem acesso à API.

Substitua `BURNURL_URL` para apontar para uma instância burnurl auto-hospedada.

### Modo de Identidade (Chave Pública)

1. O remetente criptografa com a chave pública `age` do destinatário
2. O remetente assina com sua própria chave `ed25519`
3. A carga útil transita através de relé, file drop ou wormhole
4. O destinatário descriptografa com sua chave privada
5. O destinatário verifica a assinatura do remetente

A confiança baseia-se nas chaves que você importou.

**Opções de transporte no modo de identidade:**

| Transporte | Flag | Como funciona |
|---|---|---|
| Wormhole (padrão) | `--to sarah` | Gera um código, como no modo anônimo, mas com assinatura |
| Relay push | `--to sarah --relay URL` | Envia para o canal determinístico do destinatário, sem código |
| File drop | `--to sarah --output ./dir/` | Produz um arquivo `.env.age` criptografado, sem rede |

Com push de relé, o destinatário escuta com `enseal inject --listen --relay URL -- cmd` ou recebe o file drop com `enseal receive ./file.env.age`.

## Modelo de Segurança

**Protegido:**
- Segredos em trânsito (canal criptografado)
- Segredos no histórico Slack/e-mail (efêmero, sem persistência)
- Ataques MITM (SPAKE2 / autenticação de chave pública)
- Relé malicioso (criptografia E2E, relé vê apenas texto cifrado)
- Impersonação do remetente (modo de identidade: assinaturas ed25519)
- Segredos em disco (modo inject: apenas memória do processo)
- Segredos no git (criptografar: criptografia em repouso)

**Não protegido:**
- Pontos finais comprometidos (se a máquina estiver comprometida, nada ajuda)
- Distribuição de chaves (você confia nas chaves que importou — sem PKI, sem CA)

## Configuração

Opcional `.enseal.toml` na raiz do seu projeto:```toml
[defaults]
relay = "wss://relay.enseal.dev"     # public relay (identity mode)
# relay = "ws://relay.internal:4443" # self-hosted without TLS
# relay = "wss://relay.internal:4443" # self-hosted with TLS reverse proxy

[filter]
exclude = ["^PUBLIC_", "^NEXT_PUBLIC_", "^REACT_APP_"]

[identity]
default_recipient = "devops-team"

[schema]
required = ["DATABASE_URL", "API_KEY", "JWT_SECRET"]

CLI Referência```

CORE enseal share [] Send secrets (file, pipe, or --secret) enseal receive [<code|file>] Receive secrets enseal inject [] -- Inject secrets into a process enseal keys Manage identity keys and aliases enseal serve Run self-hosted relay server

Baixar ferramenta

.ENV TOOLKIT enseal check [file] Verify .env has all vars from .env.example enseal diff Compare .env files (keys only) enseal redact Replace values with enseal validate Validate against schema rules enseal template Generate .env.example with type hints

ENCRYPTION enseal encrypt Encrypt .env for git storage enseal decrypt Decrypt an encrypted .env

root@kitploit:~
### `share` flags```
--to <name>              Identity mode: encrypt to recipient (alias, group, or identity)
--output <dir>           File drop: write encrypted file (identity mode, no network)
--upload                 Post to burnurl.dev (async, browser-readable, no CLI on recipient side)
--ttl <hours>            Secret TTL for --upload (1-24, default: 24)
--passphrase             Encrypt client-side before --upload (prompts; server never sees plaintext)
--secret <value>         Inline secret (raw string or KEY=VALUE)
--label <name>           Human label for raw/piped secrets
--as <KEY>               Wrap raw input as KEY=<value>
--relay <url>            Route through relay server. Anonymous mode: uses enseal relay transport
                         (generates channel code, bypasses wormhole). Identity mode: push to
                         recipient's channel. Also: ENSEAL_RELAY env var.
--env <profile>          Environment profile (resolves to .env.<profile>)
--exclude <pattern>      Regex to exclude vars
--include <pattern>      Regex to include only matching vars
--no-filter              Send raw file, skip .env parsing
--no-interpolate         Don't resolve ${VAR} references before sending
--words <n>              Words in wormhole code (2-5, default: 2). Wormhole mode only (no --relay).
--quiet / -q             Minimal output

receive flags```

--output Write to specific file --clipboard Copy to clipboard instead of stdout/file --no-write Print to stdout even for .env payloads --relay Use specific relay server --quiet / -q Minimal output

root@kitploit:~
### `inject` bandeiras```
--listen                 Listen for incoming identity-mode transfer (requires --relay)
--relay <url>            Use specific relay server (also: ENSEAL_RELAY)
--quiet / -q             Minimal output

keys subcomandos```

enseal keys init Generate your keypair enseal keys export Print your public key bundle enseal keys import Import a colleague's public key enseal keys list Show all trusted keys and aliases enseal keys remove Remove a trusted key enseal keys fingerprint Show your key fingerprint enseal keys alias Map short name to identity enseal keys group create Create a named group enseal keys group add Add identity to group enseal keys group remove Remove identity from group enseal keys group list [name] List groups or group members enseal keys group delete Delete a group

root@kitploit:~
### `serve` bandeiras```
--port <port>            Listen port (default: 4443)
--bind <addr>            Bind address (default: 0.0.0.0)
--max-mailboxes <n>      Max concurrent channels (default: 100)
--channel-ttl <seconds>  Idle channel lifetime (default: 300)
--max-payload <bytes>    Max WebSocket message size (default: 1048576)
--rate-limit <n>         Max connections per minute per IP (default: 10)
--health                 Print server health check and exit

encrypt / decrypt flags```

--per-var Per-variable encryption (keys visible, values encrypted) --to Encrypt to specific recipients (multi-key)

root@kitploit:~
### Flags globais```
--verbose / -v           Debug output (never prints secret values)
--quiet / -q             Minimal output (for scripting)

Comparação

ensealSlack DM1Password Sharedotenvxcroc
Configuração zeroSimSimNãoNãoSim
Criptografia ponta a pontaSimNãoSimN/DSim
Efêmero (sem histórico)SimNãoSimN/DSim
Consciente de .envSimNãoNãoSimNão
Injeção em processoSimNãoNãoSimNão
Validação de esquemaSimNãoNãoNãoNão
Criptografia em repousoSimN/DN/DSimNão
Retransmissão auto-hospedávelSimNãoNãoN/DSim
Suporte a string bruta/pipeSimSimNãoNãoSim

Roteiro

  • v0.1 — Núcleo: compartilhar/receber, pipe/stdin, kit de ferramentas .env (verificar, diff, redigir) (concluído)
  • v0.2 — Modo identidade: chaves, aliases, flag --to (concluído)
  • v0.3 — Comando inject, retransmissão auto-hospedável (concluído)
  • v0.4 — Validação de esquema, modelos, interpolação, perfis (concluído)
  • v0.5 — Criptografia em repouso (criptografar/descriptografar) (concluído)
  • v0.10 — Grupos, Helm chart, documentação (concluído)
  • v0.11 — Endurecimento de segurança, sincronização de docs (concluído)
  • v0.12 — .enseal.toml conectado, relay privado para modo anônimo (concluído)
  • v0.16 — Upload assíncrono via burnurl.dev (--upload) (atual)
  • v1.0 — Publicação no crates.io, polimento final

Licença

MIT