Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
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
Venom — Venom - Un proxy multi-sauts pour testeurs de pénétration | Kitploit
Outils/GitHubGitHub/dliv3/venom
Outils de Chiffrement/DéchiffrementCartographie RéseauTests d'IntrusionCommandement et ContrôleRed TeamingOutil d'Accès à Distance
GitHubdliv3/venom

Venom

Venom - Un proxy multi-sauts pour testeurs de pénétration

Voir le dépôt
2.2k35815il y a 6 ansVé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

Venom - Un proxy multi-sauts pour testeurs de pénétration

简体中文 | English

Venom est un outil de proxy multi-niveaux développé en Go, conçu pour les testeurs de pénétration.

Venom permet de connecter plusieurs nœuds, puis d'utiliser ces nœuds comme tremplins pour construire un proxy multi-niveaux.

Les testeurs de pénétration peuvent utiliser Venom pour acheminer facilement le trafic réseau vers des couches internes multiples et gérer aisément les nœuds proxy.

Cet outil est réservé à la recherche en sécurité et à l'enseignement. L'utilisateur assume l'entière responsabilité légale et associée découlant de l'utilisation de cet outil ! L'auteur décline toute responsabilité légale ou connexe !

Caractéristiques

  • Topologie réseau visuelle
  • Proxy SOCKS5 multi-niveaux
  • Redirection de ports multi-niveaux
  • Réutilisation de ports (apache/mysql/...)
  • Tunnel SSH
  • Shell interactif
  • Téléchargement et téléversement de fichiers
  • Chiffrement des communications entre nœuds
  • Prise en charge de multiples plateformes (Linux/Windows/MacOS) et architectures (x86/x64/arm/mips)

Comme les appareils IoT (architecture arm/mips/...) ont généralement des ressources limitées, pour réduire la taille du binaire, les binaires compilés pour l'environnement IoT dans ce projet ne prennent pas en charge la réutilisation de ports ni le tunnel SSH, et les limites de concurrence et la taille du tampon sont réduites pour économiser la mémoire.

Installation

Vous pouvez télécharger et utiliser directement les exécutables précompilés dans la version.

Si vous souhaitez compiler ce projet à partir des sources, vous devez installer go >= 1.11, puis exécuter les commandes suivantes :

go get -u github.com/Dliv3/Venom/...

# $GOPATH est la variable d'environnement configurée lors de l'installation de Go, visible via la commande go env
cd $GOPATH/src/github.com/Dliv3/Venom

# Les binaires compilés sont stockés dans le dossier release du répertoire courant
./build.sh

Utilisation

Vidéo de démonstration YouTube : https://www.youtube.com/playlist?list=PLtZO9vwOND91vZ7yCmlAvISmEl2iQKjdI

1. Paramètres de la ligne de commande admin/agent

  • Les nœuds admin et agent peuvent tous deux écouter les connexions ou initier des connexions

    Le nœud admin écoute un port, l'agent initie la connexion :

    ./admin_macos_x64 -lport 9999
    
    ./agent_linux_x64 -rhost 192.168.0.103 -rport 9999
    

    L'agent écoute un port, l'admin initie la connexion :

    ./agent_linux_x64 -lport 8888
    
    ./admin_macos_x64 -rhost 192.168.204.139 -rport 8888
    
  • Le nœud agent prend en charge la réutilisation de ports

    L'agent propose deux méthodes de réutilisation de ports :

    1. Réutilisation de ports via les options SO_REUSEPORT et SO_REUSEADDR
    2. Réutilisation de ports via iptables (Linux uniquement)

    Grâce à la fonction de réutilisation de ports de Venom, il est possible de réutiliser les ports de services comme apache, mysql, etc. sous Windows, mais pas ceux de services comme RDP, IIS pour le moment. Sous Linux, la plupart des ports de service peuvent être réutilisés. Le port réutilisé continue à fournir normalement son service d'origine.

    Première méthode de réutilisation de ports

    # Exemple avec apache sous Windows
    # Réutilise le port 80 d'apache sans affecter le service HTTP normal
    # La valeur de -lhost doit être l'IP locale, ne pas utiliser 0.0.0.0 (sinon la réutilisation échoue)
    ./agent.exe -lhost 192.168.204.139 -reuse-port 80
    
    ./admin_macos_x64 -rhost 192.168.204.139 -rport 80
    

    Deuxième méthode de réutilisation de ports

    # Exemple avec apache sous Linux
    # Nécessite les droits root
    sudo ./agent_linux_x64 -lport 8080 -reuse-port 80
    

    Cette méthode définit une règle iptables sur la machine locale pour rediriger le trafic du port reuse-port vers le port lport, puis l'agent distribue le trafic.

    Note importante : si le programme est terminé par un signal sigterm ou sigint (kill ou ctrl-c), le programme nettoie automatiquement les règles iptables. Si l'agent est tué par kill -9, le nettoyage automatique n'est pas possible (car l'agent ne peut pas gérer le signal sigkill), il faut nettoyer manuellement.

    Pour éviter que les règles iptables ne soient pas automatiquement nettoyées, empêchant l'accès au service sur le port 80, la deuxième méthode utilise iptables -m recent pour contrôler l'activation de la règle de redirection via des paquets TCP spéciaux.

    L'implémentation ici s'inspire de https://threathunter.org/topic/594545184ea5b2f5516e2033

    # Démarre les règles iptables définies par l'agent sur la machine Linux
    # Si rhost est sur le réseau interne, utilisez le proxy SOCKS5 pour le trafic du script (voir ci-dessous)
    python scripts/port_reuse.py --start --rhost 192.168.204.135 --rport 80
    
    # Connecte le nœud agent
    ./admin_macos_x64 -rhost 192.168.204.135 -rport 80
    
    # Pour désactiver la règle de redirection
    python scripts/port_reuse.py --stop --rhost 192.168.204.135 --rport 80
    
  • Chiffrement des communications entre nœuds

    Venom offre le chiffrement des communications entre nœuds. L'utilisateur peut spécifier un mot de passe via l'option -passwd, qui sera utilisé pour générer la clé de chiffrement AES.

    # Spécifie le mot de passe dlive@dubhe avec -passwd
    ./admin_macos_x64 -lport 8889 -passwd dlive@dubhe
    
    # L'agent se connecte au nœud admin avec le même mot de passe
    ./agent_macos_x64 -rhost 192.168.0.103 -rport 8889 -passwd dlive@dubhe
    

2. Commandes intégrées du nœud admin

  • help Affiche l'aide

    (admin node) >>> help
    
      help                                     Informations d'aide.
      exit                                     Quitter.
      show                                     Afficher la topologie réseau.
      getdes                                   Voir la description du nœud cible.
      setdes     [info]                        Ajouter une description au nœud cible.
      goto       [id]                          Sélectionner l'id comme nœud cible.
      listen     [lport]                       Écouter sur un port du nœud cible.
      connect    [rhost] [rport]               Connecter un nouveau nœud via le nœud cible.
      sshconnect [user@ip:port] [dport]        Connecter un nouveau nœud via tunnel SSH.
      shell                                    Démarrer un shell interactif sur le nœud cible.
      upload     [local_file]  [remote_file]   Téléverser des fichiers vers le nœud cible.
      download   [remote_file]  [local_file]   Télécharger des fichiers depuis le nœud cible.
      socks      [lport]                       Démarrer un serveur SOCKS5.
      lforward   [lhost] [sport] [dport]       Rediriger un port local sport vers un port distant dport.
      rforward   [rhost] [sport] [dport]       Rediriger un port distant sport vers un port local dport.
      
    
  • show Affiche la topologie réseau

    A représente le nœud admin, les chiffres représentent les nœuds agent.

    Le diagramme ci-dessous indique que le nœud admin est connecté au nœud 1, le nœud 1 est connecté aux nœuds 2 et 4, et le nœud 2 est connecté au nœud 3.

    (node 1) >>> show
    A
    + -- 1
         + -- 2
              + -- 3
         + -- 4
    

    Note : pour interagir avec un nouveau nœud, exécutez d'abord la commande show sur le nœud admin pour synchroniser la topologie et les identifiants des nœuds.

  • goto Opérer sur un nœud

Télécharger l’outil