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
PortForwarder — Utilitaire de redirection de ports TCP en C | Kitploit
Outils/GitHubGitHub/lsecqt/portforwarder
Utilitaires GénérauxCartographie RéseauÉvasion IDS/IPSMouvement LatéralTests d'IntrusionUtilitaires et FrameworksRed Teaming
GitHublsecqt/portforwarder

PortForwarder

Utilitaire de redirection de ports TCP en C

Voir le dépôt
4111il y a 2 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

Forwardeur de port TCP Windows

Un forwardeur de port TCP haute performance pour Windows avec liste blanche IP optionnelle et capacités de journalisation détaillée.

Fonctionnalités

  • ✅ Rediriger le trafic TCP d'un port local vers n'importe quel hôte:port distant
  • ✅ Liste blanche IP optionnelle pour une sécurité renforcée
  • ✅ Mode de prise en charge du port 445 / SMB (désactive SMB et libère le port 445 pour le relais)
  • ✅ Prend en charge jusqu'à 100 connexions simultanées
  • ✅ Transfert de données bidirectionnel avec statistiques en temps réel
  • ✅ Mode verbeux pour le débogage des connexions rejetées
  • ✅ Paramètres agressifs de keepalive TCP pour la détection des connexions mortes
  • ✅ Transfert à faible latence (algorithme de Nagle désactivé)
  • ✅ Gestion gracieuse de l'arrêt (Ctrl+C)
  • ✅ Gestion des connexions thread-safe

Configuration requise

  • Système d'exploitation Windows
  • Visual Studio (pour la compilation) ou MinGW-w64
  • Bibliothèque Winsock2 (incluse avec le SDK Windows)

Compilation

À l'aide de l'invite de commandes développeur Visual Studio :

root@kitploit:~
cl PortForwarder.c /Fe:PortForwarder.exe ws2_32.lib

À l'aide de MinGW-w64 :

root@kitploit:~
gcc PortForwarder.c -o PortForwarder.exe -lws2_32

Utilisation

root@kitploit:~
PortForwarder.exe <local_port> <remote_host> <remote_port> [allowed_ip] [-v]

Paramètres

  • <local_port> - Port local sur lequel écouter (1-65535)
  • <remote_host> - Nom d'hôte ou adresse IP distante vers laquelle rediriger le trafic
  • <remote_port> - Port distant vers lequel rediriger le trafic (1-65535)
  • [allowed_ip] - Optionnel - Accepter uniquement les connexions depuis cette adresse IP
  • [-v] - Optionnel - Activer le mode verbeux (afficher les connexions rejetées)

Exemples

Transfert de port de base (sans filtrage IP)

Rediriger le port local 8080 vers le serveur distant 192.168.1.100 port 80 :

root@kitploit:~
PortForwarder.exe 8080 192.168.1.100 80

Transfert de port avec liste blanche IP

Accepter uniquement les connexions depuis 192.168.1.50 :

root@kitploit:~
PortForwarder.exe 8080 192.168.1.100 80 192.168.1.50

Transfert de port avec liste blanche IP et journalisation détaillée

Afficher les tentatives de connexion rejetées :

root@kitploit:~
PortForwarder.exe 8080 192.168.1.100 80 192.168.1.50 -v

Transfert vers un nom d'hôte distant

root@kitploit:~
PortForwarder.exe 3306 database.example.com 3306

Transfert de port SSH avec restriction IP

root@kitploit:~
PortForwarder.exe 2222 10.0.0.50 22 192.168.1.100

Prise en charge du port 445 / SMB (engagements autorisés uniquement)

Écouter sur le port SMB 445 et rediriger vers un point de terminaison SMB distant. Lorsque 445 est le port local, l'outil libère d'abord le port du serveur SMB intégré de Windows :

root@kitploit:~
PortForwarder.exe 445 10.0.0.50 445 192.168.1.100

Lorsque le port local est 445, avant de se lier, l'outil effectue automatiquement :

  1. Vérification des privilèges — confirme que le processus est exécuté avec des droits élevés (administrateur). Sinon, il s'arrête avec un message clair.
  2. Affichage du processus actuel — identifie le PID/processus actuellement lié au port 445 (normalement System, PID 4, via le pilote noyau srvnet).
  3. Désactivation de SMB et libération du port — arrête LanmanServer et les pilotes srv2 / srvnet (en arrêtant récursivement les services dépendants), en imprimant chaque étape pour plus de visibilité.
  4. Vérification et liaison — confirme que le port 445 est libre, puis se lie et transfère normalement.

Exemple de sortie :

root@kitploit:~
[445] === Prise en charge du port 445 / SMB ===
[445] Vérification des privilèges : exécution avec droits élevés (administrateur). OK
[445] Le port 445 est actuellement détenu par PID 4 (System (kernel / srvnet))
[445] Désactivation du serveur SMB et libération du port 445...
[445] Arrêt de 'LanmanServer'...
[445]   service 'LanmanServer' arrêté
[445] Arrêt de 'srv2'...
[445]   service 'srv2' arrêté
[445] Arrêt de 'srvnet'...
[445]   service 'srvnet' arrêté
[445] Le port 445 est désormais libre. Procédure de liaison en cours.
[445] (Restaurer SMB plus tard avec : net start LanmanServer)

⚠️ L'arrêt de ces services désactive le partage de fichiers/imprimantes sur l'hôte pendant toute la durée de l'engagement. Restaurez-le ensuite avec net start LanmanServer (les pilotes redémarrent à la demande ou au prochain démarrage). Utilisez uniquement sur des systèmes que vous êtes autorisé à tester.

Cas d'utilisation

Développement local

  • Accéder aux services exécutés dans des conteneurs ou des machines virtuelles
  • Rediriger les ports de WSL2 vers l'hôte Windows
  • Tester les points de terminaison webhook localement

Pont réseau

  • Relier différents segments réseau
  • Contourner les restrictions de pare-feu (utilisation autorisée uniquement)
  • Accéder aux services internes depuis la DMZ

Accès aux bases de données

  • Sécuriser les connexions aux bases de données avec une liste blanche IP
  • Tunneliser le trafic de base de données via des hôtes intermédiaires
  • Exposer des bases de données locales pour le développement à distance

Tests de sécurité

  • Surveiller et analyser les modèles de trafic TCP
  • Tester les contrôles d'accès basés sur IP
  • Auditer les tentatives de connexion avec le mode verbeux

Informations de sortie

Le forwardeur fournit une journalisation détaillée :

root@kitploit:~
[INFO] Configuration :
  Port local :  8080
  Hôte distant : 192.168.1.100
  Port distant : 80
  IP autorisée : 192.168.1.50 (mode filtré)
  Verbeux :     OFF

[INFO] Écoute sur le port 8080...
[INFO] Appuyez sur Ctrl+C pour arrêter

[INFO] Nouvelle connexion depuis 192.168.1.50:54321 ACCEPTÉE
[INFO] Connecté au distant 192.168.1.100:80
[INFO] Connexion établie, transfert du trafic...
[INFO] Fermeture de la connexion (Envoyé : 1024 octets, Reçu : 2048 octets, Total : 3072 octets)

Sortie en mode verbeux

Lorsque l'option -v est activée, les connexions rejetées sont également journalisées :

root@kitploit:~
[INFO] Connexion depuis 192.168.1.99:54322 REJETÉE (IP non autorisée)

Détails techniques

Optimisations des performances

  • Taille du tampon : tampons de 8 Ko pour un transfert de données efficace
  • TCP_NODELAY : algorithme de Nagle désactivé pour une latence plus faible
  • Keepalive : paramètres agressifs (10s initial, 1s d'intervalle) pour détecter les connexions mortes
  • Pool de threads : jusqu'à 100 connexions simultanées avec des threads de transfert dédiés
  • Accept non bloquant : select() basé sur un délai d'attente pour un arrêt réactif

Gestion des connexions

Chaque connexion génère un thread de transfert dédié qui :

  1. Établit la connexion avec l'hôte distant
  2. Définit les options de socket (délais d'attente, keepalive, TCP_NODELAY)
  3. Utilise select() pour le transfert bidirectionnel
  4. Suit les octets transférés dans chaque direction
  5. Ferme gracieusement les deux sockets lors de la terminaison

Gestion des erreurs

Le forwardeur gère les erreurs réseau courantes avec élégance :

  • WSAECONNRESET - Connexion réinitialisée par le pair
  • WSAECONNABORTED - Connexion abandonnée
  • WSAENETRESET - Le réseau a provoqué une déconnexion
  • WSAETIMEDOUT - La connexion a expiré

Sécurité des threads

  • Les sections critiques protègent le tableau de connexions
  • Indicateur volatile running pour un arrêt propre
  • Synchronisation des threads lors du nettoyage

Considérations de sécurité

⚠️ Notes de sécurité importantes :

  1. Liste blanche IP : utilisez le paramètre [allowed_ip] en production pour restreindre l'accès
  2. Aucun chiffrement : ce forwardeur ne chiffre pas le trafic. Utilisez-le avec des tunnels SSH ou des VPN pour les données sensibles
  3. Authentification : pas d'authentification intégrée. Assurez-vous que le service distant dispose d'une sécurité appropriée
  4. Pare-feu : configurez le pare-feu Windows pour restreindre l'accès au port d'écoute
  5. Journalisation : désactivez le mode verbeux en production pour éviter le gonflement des fichiers journaux
  6. Limites de ressources : la limite de 100 connexions évite l'épuisement des ressources

Dépannage

Port déjà utilisé

root@kitploit:~
[ERROR] bind() a échoué : 10048

Solution : une autre application utilise le port. Choisissez un port local différent ou arrêtez le service en conflit.

Impossible de se connecter au distant

root@kitploit:~
[ERROR] connect() vers le distant a échoué : 10061

Solution : vérifiez que l'hôte distant est accessible et que le service est en cours d'exécution sur le port spécifié.

Permission refusée

root@kitploit:~
[ERROR] bind() a échoué : 10013

Solution : les ports inférieurs à 1024 peuvent nécessiter des privilèges d'administrateur. Exécutez en tant qu'administrateur ou utilisez un numéro de port plus élevé.

Connexion rejetée

root@kitploit:~
[INFO] Connexion depuis X.X.X.X:XXXXX REJETÉE (IP non autorisée)

Solution : activez le mode verbeux (-v) pour voir les IP rejetées, ou supprimez le filtrage IP.

Arrêt du forwardeur

Appuyez sur Ctrl+C pour arrêter gracieusement le forwardeur. Il va :

  1. Arrêter d'accepter de nouvelles connexions
  2. Attendre la fin des connexions actives (jusqu'à 5 secondes)
  3. Fermer tous les sockets
  4. Nettoyer les ressources
  5. Afficher la confirmation du nettoyage

Limitations

  • Windows uniquement : utilise l'API Winsock2 (non portable vers Linux/macOS)
  • IPv4 uniquement : prend actuellement en charge uniquement les adresses IPv4
  • Filtre IP unique : une seule adresse IP autorisée peut être spécifiée
  • Pas d'équilibrage de charge : le trafic est redirigé vers un seul point de terminaison distant
  • Aucune inspection du trafic : transfert TCP brut sans analyse du contenu
  • Aucune limitation de bande passante : pas de limitation de débit ou de QoS intégrée

Améliorations futures

Fonctionnalités potentielles pour les versions futures :

  • Prise en charge IPv6
  • Liste blanche/noire IP multiple
  • Wrapper de chiffrement SSL/TLS
  • Tableau de bord des statistiques de trafic
  • Prise en charge des fichiers de configuration
  • Limitation de bande passante
  • Équilibrage de charge round-robin
  • Limitation du taux de connexion
  • Prise en charge multiplateforme (Linux/macOS)

Licence

Ce logiciel est fourni tel quel à des fins éducatives et d'administration réseau légitimes. Utilisez-le de manière responsable et conformément aux lois et réglementations applicables.

Contribution

Les contributions sont les bienvenues ! Veuillez vous assurer que :

  • Le code suit le style existant
  • Les modifications sont bien testées sur Windows
  • Les commentaires expliquent la logique complexe
  • Le README est mis à jour pour les nouvelles fonctionnalités

Support

Pour les problèmes, questions ou demandes de fonctionnalités, veuillez ouvrir un ticket dans le dépôt du projet.

Vous pouvez également soutenir mon travail sur Patreon


Télécharger l’outil