Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
punchline — Mensageiro criptografado peer-to-peer em Rust com Noise IK e UDP NAT hole punching | Kitploit
Ferramentas/GitHubGitHub/michal-pielka/punchline
Ferramentas de Criptografia/DescriptografiaSegurança de RedePrivacidadeUtilitários e FrameworksAutenticação
GitHubmichal-pielka/punchline

punchline

Mensageiro criptografado peer-to-peer em Rust com Noise IK e UDP NAT hole punching

Ver Repositório
19257há 6 mesesRevisado pelo Kitploit

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

punchline

Chat ponto a ponto criptografado de ponta a ponta via UDP. Sem contas, sem servidor central retransmitindo/armazenando mensagens, sem intermediário. Apenas dois pares, uma conexão direta e criptografia pelo protocolo Noise.

https://github.com/user-attachments/assets/939e96d3-45e3-4484-9a27-28c3a0457b05

Índice

  • O que faz
  • Início rápido
  • Como funciona
  • Referência da CLI
  • Uso
    • Configuração
    • Gerenciando Pares
    • Verificação de Status
    • Opções do Servidor
    • Temas
    • Completudes do Shell
  • Criptografia
    • Handshake IK
    • Determinação do Iniciador
    • Armazenamento de Chaves
  • Protocolo de Rede
    • Protocolo de Furação de NAT
    • Protocolo de Transporte
    • Protocolo de Sinalização
    • Protocolo STUN
  • Estrutura do Projeto
  • Instalação
    • Pelo crates.io
    • Compilando a partir do código-fonte
  • Executando Testes
  • Pilha de Tecnologias
  • Licença

O que faz

Duas pessoas executam punchline connect <peer> em suas máquinas. O Punchline atravessa seus NATs, realiza um handshake criptografado e os coloca em um chat privado – tudo em alguns milissegundos. Os servidores STUN e de sinalização incluídos cuidam da descoberta e depois saem do caminho. conversa


Início rápido

cargo build --release

Inicie os servidores (em uma máquina que ambos os pares possam acessar) ou use os meus públicos hospedados em 64.225.107.28 (STUN: porta 3478, sinalização: porta 8743):

punchline-stund                  # Servidor STUN - informa aos pares seu IP público
punchline-signald                # Servidor de sinalização - combina pares que querem conversar
servidores

Em cada máquina dos pares:

# Gere sua identidade (par de chaves X25519)
punchline keygen

# Compartilhe sua chave pública com seu par
punchline pubkey

# Salve a chave dele
punchline peers add alice a1b2c3d4...64_hex_chars

# Conecte-se (ambos os pares executam isso, direcionando um ao outro)
punchline connect alice --stun <servidor>:3478 --signal <servidor>:8743

A TUI é iniciada com uma visualização do progresso da conexão ao vivo:

  1. Descoberta STUN - resolvendo seu endereço externo via punchline-stund

  2. Servidor de sinalização - conectando ao punchline-signald

  3. Aguardando o par - o servidor de sinalização combina ambos os pares

  4. Furação de NAT - estabelecendo o caminho UDP direto

  5. Handshake Noise - troca de chaves criptografada

    painel

Quando concluído, você está no chat. Digite e pressione Enter. Pressione Esc para sair.


Como funciona

Todo o sistema consiste em três binários, todos incluídos neste repositório:

BinárioFunçãoQuando usado
punchline-stundServidor STUN (UDP) - responde com o IP:porta externo do clienteApenas durante a configuração
punchline-signaldServidor de sinalização (WebSocket) - combina pares e troca endereçosApenas durante a configuração
punchlineO próprio mensageiro - CLI, TUI, criptografia, furação de NATSempre

Após a configuração inicial, os servidores STUN e de sinalização não são mais contatados. Tudo flui diretamente entre pares.


Referência da CLI

punchline

ComandoDescrição
keygen [--force] [-i caminho]Gera um novo par de chaves de identidade X25519. Use --force para sobrescrever sem confirmação. Use -i para especificar o caminho de saída.
pubkey [-i caminho]Imprime sua chave pública (64 caracteres hexadecimais). Use -i para derivar de um arquivo de chave específico.
connect <par> [-i caminho] [--stun endereço] [--signal endereço]Conecta-se a um par por apelido ou chave hex bruta. Use -i para especificar a chave de identidade. Inicia a TUI.
peersLista todos os pares conhecidos.
peers add <nome> <chave>Salva a chave pública de um par sob um apelido.
peers remove <nome>Remove um par pelo apelido.
config pathExibe o caminho do arquivo de configuração.
config showMostra os valores atuais da configuração.
statusMostra identidade, configuração, alcançabilidade do servidor e número de pares.
completions <shell>Gera completudes para o shell (bash, zsh ou fish).

Bandeiras globais:

BandeiraDescrição
-vAumenta a verbosidade do log (-v = debug, -vv = trace).
-q, --quietSuprime toda a saída de log.

punchline-stund

BandeiraDescrição
--address <endereço>Endereço de escuta (padrão: 0.0.0.0).
--port <porta>Porta de escuta (padrão: 3478).
-v / -vvLog debug / trace.
-qModo silencioso.

punchline-signald

BandeiraDescrição
--address <endereço>Endereço de escuta (padrão: 0.0.0.0).
--port <porta>Porta de escuta (padrão: 8743).
-v / -vvLog debug / trace.
-qModo silencioso.

Uso

Configuração

Em vez de passar --stun e --signal toda vez, crie ~/.config/punchline/config.toml:

stun_server = "203.0.113.10:3478"
signal_server = "203.0.113.10:8743"

Gerenciando Pares

punchline peers                              # listar todos
punchline peers add alice a1b2c3d4...        # adicionar
punchline peers remove alice                 # remover

Os apelidos são armazenados em ~/.punchline/known_peers.toml. Você também pode conectar diretamente com uma chave hex bruta de 64 caracteres.

Verificação de Status

punchline status

Mostra sua identidade, configuração, alcançabilidade do servidor (envia uma sonda STUN real e conexão TCP) e número de pares.

Opções do Servidor

Ambos os servidores suportam -v (debug), -vv (trace), -q (silencioso), --address e --port:

punchline-stund -v --port 3478
punchline-signald -v --port 8743

Temas

Personalize a TUI via ~/.config/punchline/style.toml Estilos usados no vídeo:

[colors]
my_text = "#ebdbb2"
peer_text = "#bdae93"
input_text = "#ebdbb2"
border = "#ebdbb2"
sidebar_key = "#ebdbb2"
sidebar_value = "#bdae93"

[padding]
chat_horizontal = 2
chat_vertical = 1

Todas as cores são RGB hex. Se o arquivo estiver ausente, as cores padrão do terminal são usadas.

Completudes do Shell

punchline completions bash > ~/.local/share/bash-completion/completions/punchline
punchline completions zsh > ~/.zfunc/_punchline
punchline completions fish > ~/.config/fish/completions/punchline.fish

Criptografia

Nome completo do protocolo: Noise_IK_25519_ChaChaPoly_SHA256

Baixar ferramenta