Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
bore — Tunnel TCP simple en Rust qui expose des ports locaux vers un serveur distant, contournant les pare-feux NAT. Léger, auto-hébergeable et facile à installer. | Kitploit
Outils/GitHubGitHub/ekzhang/bore
Utilitaires GénérauxSécurité Réseau
GitHubekzhang/bore

bore

Tunnel TCP simple en Rust qui expose des ports locaux vers un serveur distant, contournant les pare-feux NAT. Léger, auto-hébergeable et facile à installer.

Voir le dépôtSite web
11.4k514il 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

bore

Build status Crates.io

Un tunnel TCP moderne et simple en Rust qui expose des ports locaux vers un serveur distant, en contournant les pare-feux NAT standard. C'est tout ce qu'il fait : ni plus, ni moins.

Démo vidéo

root@kitploit:~
# Installation (nécessite Rust, voir les alternatives ci-dessous)
cargo install bore-cli

# Sur votre machine locale
bore local 8000 --to bore.pub

Cela exposera votre port local localhost:8000 sur l'internet public à bore.pub:<PORT>, où le numéro de port est attribué aléatoirement.

Similaire à localtunnel et ngrok, sauf que bore est conçu pour être un outil très efficace et sans opinion pour transférer le trafic TCP, simple à installer et facile à auto-héberger, sans fioritures.

(bore totalise environ 400 lignes de code Rust asynchrone et sûr, et sa configuration est triviale — il suffit d'exécuter un seul binaire pour le client et le serveur.)

Installation

macOS

bore est packagé comme une formule Homebrew core.

root@kitploit:~
brew install bore-cli

Linux

Arch Linux

bore est disponible dans l'AUR sous le nom bore.

root@kitploit:~
yay -S bore # ou votre helper AUR préféré

Gentoo Linux

bore est disponible dans l'overlay gentoo-zh.

root@kitploit:~
sudo eselect repository enable gentoo-zh
sudo emerge --sync gentoo-zh
sudo emerge net-proxy/bore

Distribution binaire

Sinon, le moyen le plus simple d'installer bore est à partir de binaires pré-construits. Ils sont disponibles sur la page des releases pour macOS, Windows et Linux. Il suffit de décompresser le fichier approprié pour votre plateforme et de déplacer l'exécutable bore dans un dossier sur votre PATH.

Cargo

Vous pouvez aussi compiler bore à partir des sources avec Cargo, le gestionnaire de paquets Rust. Cette commande installe le binaire bore dans un chemin accessible à l'utilisateur.

root@kitploit:~
cargo install bore-cli

Docker

Nous publions également des images Docker versionnées pour chaque release. L'image est construite pour une architecture AMD 64 bits. Elles sont étiquetées avec la version spécifique et vous permettent d'exécuter le binaire bore lié statiquement à partir d'un conteneur minimal "scratch".

root@kitploit:~
docker run -it --init --rm --network host ekzhang/bore <ARGS>

Utilisation détaillée

Cette section décrit l'utilisation détaillée de la commande CLI bore.

Transfert local

Vous pouvez transférer un port sur votre machine locale en utilisant la commande bore local. Celle-ci prend un argument positionnel, le port local à transférer, ainsi qu'une option obligatoire --to qui spécifie l'adresse du serveur distant.

root@kitploit:~
bore local 5000 --to bore.pub

Vous pouvez éventuellement passer une option --port pour choisir un port spécifique sur le serveur distant à exposer, mais la commande échouera si ce port n'est pas disponible. De plus, passer --local-host vous permet d'exposer un hôte différent sur votre réseau local autre que l'adresse de boucle locale localhost.

Les options complètes sont présentées ci-dessous.

root@kitploit:~
Démarre un proxy local vers le serveur distant

Usage: bore local [OPTIONS] --to <TO> <LOCAL_PORT>

Arguments:
  <LOCAL_PORT>  Le port local à exposer [env: BORE_LOCAL_PORT=]

Options:
  -l, --local-host <HOST>  L'hôte local à exposer [default: localhost]
  -t, --to <TO>            Adresse du serveur distant vers lequel exposer les ports locaux [env: BORE_SERVER=]
  -p, --port <PORT>        Port optionnel sur le serveur distant à sélectionner [default: 0]
  -s, --secret <SECRET>    Secret optionnel pour l'authentification [env: BORE_SECRET]
  -h, --help               Affiche l'aide

Auto-hébergement

Comme mentionné dans les instructions de démarrage, il existe une instance publique du serveur bore exécutée à bore.pub. Cependant, si vous souhaitez auto-héberger bore sur votre propre réseau, vous pouvez le faire avec la commande suivante :

root@kitploit:~
bore server

C'est tout ce qu'il faut ! Une fois le serveur démarré à une adresse donnée, vous pouvez alors mettre à jour la commande bore local avec l'option --to <ADDRESS> pour transférer un port local vers ce serveur distant.

Il est possible de spécifier des adresses IP différentes pour le serveur de contrôle et pour les tunnels. Cette configuration est utile dans les cas où vous pourriez vouloir que le serveur de contrôle soit sur un réseau privé tout en autorisant les connexions tunnel sur une interface publique, ou vice versa.

Les options complètes de la commande bore server sont présentées ci-dessous.

root@kitploit:~
Exécute le serveur proxy distant

Usage: bore server [OPTIONS]

Options:
      --min-port <MIN_PORT>          Numéro de port TCP minimum accepté [env: BORE_MIN_PORT=] [default: 1024]
      --max-port <MAX_PORT>          Numéro de port TCP maximum accepté [env: BORE_MAX_PORT=] [default: 65535]
  -s, --secret <SECRET>              Secret optionnel pour l'authentification [env: BORE_SECRET]
      --bind-addr <BIND_ADDR>        Adresse IP à laquelle se lier, les clients doivent y accéder [default: 0.0.0.0]
      --bind-tunnels <BIND_TUNNELS>  Adresse IP où les tunnels écouteront, par défaut --bind-addr
  -h, --help                         Affiche l'aide

Protocole

Il existe un port de contrôle implicite à 7835, utilisé pour créer de nouvelles connexions à la demande. Lors de l'initialisation, le client envoie un message « Hello » au serveur sur le port de contrôle TCP, demandant de proxifier un port distant sélectionné. Le serveur répond ensuite par un accusé de réception et commence à écouter les connexions TCP externes.

Lorsque le serveur obtient une connexion sur le port distant, il génère un UUID sécurisé pour cette connexion et le renvoie au client. Le client ouvre alors un flux TCP séparé vers le serveur et envoie un message « Accept » contenant l'UUID sur ce flux. Le serveur proxifie ensuite les deux connexions entre elles.

Pour des raisons de correction et pour éviter les fuites de mémoire, les connexions entrantes ne sont conservées par le serveur que pendant 10 secondes maximum avant d'être abandonnées si le client ne les accepte pas.

Authentification

Sur un déploiement personnalisé de bore server, vous pouvez éventuellement exiger un secret pour empêcher le serveur d'être utilisé par d'autres. Le protocole exige que les clients vérifient la possession du secret sur chaque connexion TCP en répondant à des défis aléatoires sous forme de codes HMAC. (Ce secret n'est utilisé que pour la poignée de main initiale, et aucun trafic ultérieur n'est chiffré par défaut.)

root@kitploit:~
# sur le serveur
bore server --secret my_secret_string

# sur le client
bore local <LOCAL_PORT> --to <TO> --secret my_secret_string

Si un secret n'est pas présent dans les arguments, bore tentera également de lire la variable d'environnement BORE_SECRET.

Remerciements

Créé par Eric Zhang (@ekzhang1). Sous licence MIT.

L'auteur tient à remercier les contributeurs et mainteneurs du projet Tokio pour avoir rendu possible l'écriture de services réseau ergonomiques et efficaces en Rust.

Télécharger l’outil