Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
punchline — Messagerie chiffrée pair-à-pair en Rust avec Noise IK et UDP NAT hole punching | Kitploit
Outils/GitHubGitHub/michal-pielka/punchline
Outils de Chiffrement/DéchiffrementSécurité RéseauProtection de la Vie PrivéeUtilitaires et FrameworksAuthentification
GitHubmichal-pielka/punchline

punchline

Messagerie chiffrée pair-à-pair en Rust avec Noise IK et UDP NAT hole punching

Voir le dépôt
19257il y a 6 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

punchline

Chat pair-à-pair chiffré de bout en bout par UDP. Pas de comptes, pas de serveur central relayant/stocker les messages, pas d'intermédiaire. Juste deux pairs, une connexion directe et un chiffrement via le protocole Noise.

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

Table des matières

  • Ce qu'il fait
  • Démarrage rapide
  • Comment ça marche
  • Référence CLI
  • Utilisation
    • Configuration
    • Gestion des pairs
    • Vérification du statut
    • Options du serveur
    • Thèmes
    • Complétions shell
  • Cryptographie
    • Poignée de main IK
    • Détermination de l'initiateur
    • Stockage des clés
  • Protocole filaire
    • Protocole de trou de serrure (hole punch)
    • Protocole de transport
    • Protocole de signal
    • Protocole STUN
  • Structure du projet
  • Installation
    • Depuis crates.io
    • Compilation depuis les sources
  • Exécution des tests
  • Stack technique
  • Licence

Ce qu'il fait

Deux personnes exécutent punchline connect <pair> sur leurs machines. Punchline traverse leurs NAT, effectue une poignée de main chiffrée et les plonge dans un chat privé – le tout en quelques millisecondes. Les serveurs STUN et de signal inclus gèrent la découverte, puis s'effacent. conversation


Démarrage rapide

cargo build --release

Démarrer les serveurs (sur une machine que les deux pairs peuvent atteindre), ou utiliser ceux que j'héberge publiquement à 64.225.107.28 (STUN : port 3478, signal : port 8743) :

punchline-stund                  # Serveur STUN - indique aux pairs leur IP publique
punchline-signald                # Serveur de signal - associe les pairs qui veulent communiquer
serveurs

Sur chaque machine des pairs :

# Générer votre identité (paire de clés X25519)
punchline keygen

# Partager votre clé publique avec votre pair
punchline pubkey

# Enregistrer sa clé
punchline peers add alice a1b2c3d4...64_hex_chars

# Se connecter (les deux pairs exécutent cette commande, ciblant l'autre)
punchline connect alice --stun <server>:3478 --signal <server>:8743

Le TUI se lance avec une vue en direct de la progression de la connexion :

  1. Découverte STUN – résolution de votre adresse externe via punchline-stund

  2. Serveur de signal – connexion à punchline-signald

  3. Attente du pair – le serveur de signaux associe les deux pairs

  4. Trou de serrure – établissement du chemin UDP direct

  5. Poignée de main Noise – échange de clés chiffré

    tableau de bord

Une fois terminé, vous êtes dans le chat. Tapez et appuyez sur Entrée. Appuyez sur Échap pour quitter.


Comment ça marche

L'ensemble du système est composé de trois binaires, tous inclus dans ce dépôt :

BinaireRôleQuand utilisé
punchline-stundServeur STUN (UDP) – répond avec l'IP:port externe du clientUniquement pendant la configuration
punchline-signaldServeur de signal (WebSocket) – associe les pairs et échange les adressesUniquement pendant la configuration
punchlineLe messager lui-même – CLI, TUI, crypto, trou de serrureToujours

Une fois la configuration initiale effectuée, les serveurs STUN et de signal ne sont plus contactés. Tout circule directement de pair à pair.


Référence CLI

punchline

CommandeDescription
keygen [--force] [-i chemin]Génère une nouvelle paire de clés d'identité X25519. Utilisez --force pour écraser sans confirmation. Utilisez -i pour spécifier le chemin de sortie.
pubkey [-i chemin]Affiche votre clé publique (64 caractères hexadécimaux). Utilisez -i pour dériver d'un fichier de clés spécifique.
connect <pair> [-i chemin] [--stun adresse] [--signal adresse]Se connecte à un pair par alias ou par clé hexadécimale brute. Utilisez -i pour spécifier la clé d'identité. Lance le TUI.
peersListe tous les pairs connus.
peers add <nom> <clé>Enregistre la clé publique d'un pair sous un surnom.
peers remove <nom>Supprime un pair par son surnom.
config pathAffiche le chemin du fichier de configuration.
config showAffiche les valeurs actuelles de la configuration.
statusAffiche l'identité, la configuration, l'accessibilité des serveurs et le nombre de pairs.
completions <shell>Génère les complétions shell (bash, zsh ou fish).

Drapeaux globaux :

DrapeauDescription
-vAugmente la verbosité des logs (-v = debug, -vv = trace).
-q, --quietSupprime toute sortie de log.

punchline-stund

DrapeauDescription
--address <adr>Adresse de liaison (par défaut : 0.0.0.0).
--port <port>Port de liaison (par défaut : 3478).
-v / -vvLogs de debug / trace.
-qMode silencieux.

punchline-signald

DrapeauDescription
--address <adr>Adresse de liaison (par défaut : 0.0.0.0).
--port <port>Port de liaison (par défaut : 8743).
-v / -vvLogs de debug / trace.
-qMode silencieux.

Utilisation

Configuration

Au lieu de passer --stun et --signal à chaque fois, créez ~/.config/punchline/config.toml :

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

Gestion des pairs

punchline peers                              # lister tous
punchline peers add alice a1b2c3d4...        # ajouter
punchline peers remove alice                 # supprimer

Les alias sont stockés dans ~/.punchline/known_peers.toml. Vous pouvez aussi vous connecter directement avec une clé hexadécimale brute de 64 caractères.

Vérification du statut

punchline status

Affiche votre identité, configuration, accessibilité des serveurs (envoie une véritable sonde STUN et une connexion TCP) et le nombre de pairs.

Options du serveur

Les deux serveurs supportent -v (debug), -vv (trace), -q (silencieux), --address et --port :

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

Thèmes

Personnalisez le TUI via ~/.config/punchline/style.toml Styles utilisés dans la vidéo :

[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

Toutes les couleurs sont en hexadécimal RVB. Si le fichier est absent, les couleurs par défaut du terminal sont utilisées.

Complétions shell

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

Cryptographie

Nom complet du protocole : Noise_IK_25519_ChaChaPoly_SHA256

Télécharger l’outil