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

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
punchline — Mensajero cifrado peer-to-peer en Rust con Noise IK y UDP NAT hole punching | Kitploit
Herramientas/GitHubGitHub/michal-pielka/punchline
Herramientas de Cifrado/DescifradoSeguridad de RedesPrivacidadUtilidades y FrameworksAutenticación
GitHubmichal-pielka/punchline

punchline

Mensajero cifrado peer-to-peer en Rust con Noise IK y UDP NAT hole punching

Ver Repositorio
19285hace 6 mesesRevisado por Kitploit

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

punchline

Chat peer-to-peer cifrado de extremo a extremo sobre UDP. Sin cuentas, sin servidor central que retransmita/almacene mensajes, sin intermediarios. Solo dos pares, una conexión directa y cifrado mediante el protocolo Noise.

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

Índice

  • Qué Hace
  • Inicio Rápido
  • Cómo Funciona
  • Referencia CLI
  • Uso
    • Configuración
    • Gestión de Pares
    • Verificación de Estado
    • Opciones del Servidor
    • Temas
    • Completado de Shell
  • Criptografía
    • Handshake IK
    • Determinación del Iniciador
    • Almacenamiento de Claves
  • Protocolo de Red
    • Protocolo de Perforación de NAT
    • Protocolo de Transporte
    • Protocolo de Señalización
    • Protocolo STUN
  • Estructura del Proyecto
  • Instalación
    • Desde crates.io
    • Compilación desde Fuente
  • Ejecución de Pruebas
  • Stack Tecnológico
  • Licencia

Qué Hace

Dos personas ejecutan punchline connect <peer> en sus máquinas. Punchline atraviesa sus NATs, realiza un handshake cifrado y los introduce en un chat privado, todo en milisegundos. Los servidores STUN y de señalización incluidos manejan el descubrimiento y luego se apartan. convo


Inicio Rápido

cargo build --release

Inicia los servidores (en una máquina a la que ambos pares puedan acceder), o usa los públicos que tengo alojados en 64.225.107.28 (STUN: puerto 3478, señalización: puerto 8743):

punchline-stund                  # STUN server - tells peers their public IP
punchline-signald                # Signal server - matches peers who want to talk
servers

En la máquina de cada par:

# Generate your identity (X25519 keypair)
punchline keygen

# Share your public key with your peer
punchline pubkey

# Save their key
punchline peers add alice a1b2c3d4...64_hex_chars

# Connect (both peers run this, targeting each other)
punchline connect alice --stun <server>:3478 --signal <server>:8743

La TUI se inicia con una vista en vivo del progreso de conexión:

  1. Descubrimiento STUN - resolviendo tu dirección externa mediante punchline-stund

  2. Servidor de señalización - conectándose a punchline-signald

  3. Esperando al par - el servidor de señalización empareja a ambos pares

  4. Perforación de NAT - estableciendo la ruta UDP directa

  5. Handshake Noise - intercambio de claves cifrado

    dashboard

Una vez completado, estás en el chat. Escribe y presiona Enter. Presiona Esc para salir.


Cómo Funciona

El sistema completo consta de tres binarios, todos incluidos en este repositorio:

BinarioRolCuándo se usa
punchline-stundServidor STUN (UDP) - responde con la IP:puerto externa del clienteSolo durante la configuración
punchline-signaldServidor de señalización (WebSocket) - empareja pares e intercambia direccionesSolo durante la configuración
punchlineEl mensajero en sí - CLI, TUI, criptografía, perforación de NATSiempre

Después de la configuración inicial, ya no se contacta a los servidores STUN y de señalización. Todo fluye directamente entre pares.


Referencia CLI

punchline

ComandoDescripción
keygen [--force] [-i path]Genera un nuevo par de claves de identidad X25519. Usa --force para sobrescribir sin preguntar. Usa -i para especificar la ruta de salida.
pubkey [-i path]Imprime tu clave pública (64 caracteres hexadecimales). Usa -i para derivar de un archivo de clave específico.
connect <peer> [-i path] [--stun addr] [--signal addr]Conéctate a un par por alias o clave hexadecimal directa. Usa -i para especificar la clave de identidad. Inicia la TUI.
peersLista todos los pares conocidos.
peers add <name> <key>Guarda la clave pública de un par bajo un apodo.
peers remove <name>Elimina un par por apodo.
config pathImprime la ruta del archivo de configuración.
config showMuestra los valores de configuración actuales.
statusMuestra identidad, configuración, accesibilidad del servidor y número de pares.
completions <shell>Genera completados de shell (bash, zsh o fish).

Banderas globales:

BanderaDescripción
-vAumenta la verbosidad del registro (-v = debug, -vv = trace).
-q, --quietSuprime toda la salida de registro.

punchline-stund

BanderaDescripción
--address <addr>Dirección de enlace (por defecto: 0.0.0.0).
--port <port>Puerto de enlace (por defecto: 3478).
-v / -vvRegistro debug / trace.
-qModo silencioso.

punchline-signald

BanderaDescripción
--address <addr>Dirección de enlace (por defecto: 0.0.0.0).
--port <port>Puerto de enlace (por defecto: 8743).
-v / -vvRegistro debug / trace.
-qModo silencioso.

Uso

Configuración

En lugar de pasar --stun y --signal cada vez, crea ~/.config/punchline/config.toml:

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

Gestión de Pares

punchline peers                              # list all
punchline peers add alice a1b2c3d4...        # add
punchline peers remove alice                 # remove

Los alias se almacenan en ~/.punchline/known_peers.toml. También puedes conectarte directamente con una clave hexadecimal de 64 caracteres.

Verificación de Estado

punchline status

Muestra tu identidad, configuración, accesibilidad del servidor (envía una sonda STUN real y una conexión TCP) y número de pares.

Opciones del Servidor

Ambos servidores soportan -v (debug), -vv (trace), -q (quieto), --address y --port:

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

Temas

Personaliza la TUI a través de ~/.config/punchline/style.toml Estilos usados en el 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

Todos los colores son RGB hexadecimal. Si el archivo no existe, se usan los colores predeterminados del terminal.

Completado de Shell

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

Criptografía

Nombre completo del protocolo: Noise_IK_25519_ChaChaPoly_SHA256

Descargar herramienta