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
shootback — un tunnel TCP inversé vous permet d'accéder à une cible derrière un NAT ou un pare-feu | Kitploit
Outils/GitHubGitHub/aploium/shootback
Rétro-ingénierieSécurité RéseauTests d'IntrusionRed Teaming
GitHubaploium/shootback

shootback

un tunnel TCP inversé vous permet d'accéder à une cible derrière un NAT ou un pare-feu

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

shootback

shootback est un tunnel TCP inverse qui permet d'accéder à une cible derrière un NAT ou un firewall.
Tunnel TCP inverse permettant d'accéder depuis l'extérieur à une machine du réseau interne située derrière un NAT ou un pare-feu.
Consomme moins de 1% du CPU et 8 Mo de mémoire pour 800 connexions simultanées.
Le slaver est un fichier unique et ne dépend que de la bibliothèque standard de Python (2.7/3.4+).

Fonctionnement

Schéma de fonctionnement de shoot back

Scénario typique

  1. Accéder depuis chez soi à un ordinateur du bureau/de l'école (sans IP publique)
    Depuis la maison, se connecter à un ordinateur de l'entreprise ou de l'école qui n'a pas d'IP publique indépendante.
  2. Rendre un réseau/site privé accessible publiquement.
    Permettre l'accès depuis l'extérieur à un réseau ou site interne.
  3. Aider à la pénétration de réseaux internes.
    Faciliter la pénétration des réseaux internes.
  4. Aider aux compétitions CTF hors ligne.
    Faciliter les compétitions CTF en présentiel, en donnant aux participants extérieurs l'accès à l'environnement réseau de la compétition.
  5. Se connecter à un équipement à IP dynamique, comme ADSL.
    Connexion à des appareils à IP dynamique, tels que ADSL.
  6. Chiffrement SSL entre le slaver et le master.
    Le slaver et le master prennent en charge le chiffrement SSL.

Pour commencer

  1. Prérequis :

    • Master : Python 3.4+, indépendant du système d'exploitation
    • Slaver : Python 2.7/3.4+, indépendant du système d'exploitation
    • Aucune dépendance externe, uniquement la bibliothèque standard Python
  2. Téléchargement : git clone https://github.com/aploium/shootback

  3. (Optionnel) Pour obtenir un fichier slaver.py unique, exécutez python3 build_singlefile_slaver.py

  4. Exécutez ces commandes :

    root@kitploit:~
    # Le master écoute sur le port :10000 pour le slaver, et sur le port :10080 pour vous
    python3 master.py -m 0.0.0.0:10000 -c 127.0.0.1:10080
    
    # Le slaver se connecte au master et utilise example.com comme cible du tunnel
    # Remarque : vous pouvez utiliser python2 pour le slaver, pas seulement python3
    python3 slaver.py -m 127.0.0.1:10000 -t example.com:80
    
    # Envoi d'une requête au master
    curl -v -H "host: example.com" 127.0.0.1:10080
    # -- un peu de contenu HTML de example.com --
    # -- un peu de contenu HTML de example.com --
    # -- un peu de contenu HTML de example.com --
    
  5. Un exemple plus concret (avec SSL) :
    Supposez que votre master soit 22.33.44.55 (comme dans le schéma ci-dessus)

    root@kitploit:~
    # slaver_local_ssh <---> slaver <--[SSL]--> master(22.33.44.55) <--> Vous
    
    # ---- master ----
    python3 master.py -m 0.0.0.0:10000 -c 0.0.0.0:10022 --ssl
    
    # ---- slaver ----
    # Remarque : l'option `--ssl` concerne le chiffrement slaver-master, pas SSH
    python(ou python3) slaver.py -m 22.33.44.55:10000 -t 127.0.0.1:22 --ssl
    
    # ---- VOUS ----
    ssh 22.33.44.55 -p 10022
    

Astuces

  1. Exécuter en mode daemon :
    nohup python(ou python3) slaver.py -m hôte:port -t hôte:port -q &
    ou :

    root@kitploit:~
    # screen est une commande Linux
    screen
    python(ou python3) slaver.py -m hôte:port -t hôte:port
    # appuyez sur Ctrl+A D pour détacher l'écran
    # et, si nécessaire, utilisez "screen -r" pour le rattacher
    
  2. Tout service utilisant TCP est compatible avec shootback. HTTP/FTP/Proxy/SSH/VNC/...

  3. shootback effectue uniquement le transport, il ne gère pas le chiffrement ni le proxy.
    Cependant, vous pouvez utiliser un proxy tiers (par ex. shadowsocks) comme cible du slaver.
    Par exemple :
    shadowsocks_server<-->shootback_slaver<-->shootback_master<-->shadowsocks_client(socks5)

Avertissement

  1. Sous Windows, en raison de la limitation de select.select() dans CPython, shootback ne peut pas gérer plus de 512 connexions simultanées. Vous pourriez rencontrer
    ValueError: too many file descriptors in select()
    Si vous devez gérer une telle charge sous Windows, Anaconda-Python3 est recommandé ; sa limite sous Windows est de 2048

Performances

  1. Sur mon ordinateur portable équipé d'un Intel I7-4710MQ, Windows 10 x64 :
    • 1,6 Gbits/s en transfert local (avec iperf), avec environ 5% d'occupation CPU.
    • 800 threads ApacheBench, avec moins de 1% de CPU et 8 Mo de mémoire consommée.
Télécharger l’outil
  • Pour plus d'aide, veuillez consulter python3 master.py --help et python3 slaver.py --help