Skip to main content
  1. Posts/

Install GSocket di Linux

·5 mins·
gsocket linux gsocket
Table of Contents

GSocket adalah tool CLI yang dirancang untuk memudahkan koneksi jaringan antar perangkat yang terhalang oleh NAT atau firewall, tanpa memerlukan konfigurasi port forwarding. Tool ini menggunakan jaringan relay global (GSRN) untuk menghubungkan perangkat secara aman, bahkan jika keduanya berada di belakang jaringan yang terbatas.

Install GSocket
#

GSocket dapat diinstall di Linux, FreeBSD, macOS, Cygwin, dan lainnya menggunakan skrip instalasi atau dengan mengompilasi langsung dari GitHub.

Using Script
#

Untuk instalasi menggunakan skrip.

bash -c "$(curl -fsSL https://gsocket.io/y)"

Kemudian, Anda bisa mengakses host yang telah terinstall GSocket dengan perintah.

S="ExampleSecretChangeMe" bash -c "$(curl -fsSL https://gsocket.io/y)"

Jika sudah tidak digunakan, Anda dapat menghapusnya dengan cara berikut.

GS_UNDO=1 bash -c "$(curl -fsSL https://gsocket.io/y)"

Compile from GitHub
#

Install package yang diperlukan untuk proses kompilasi.

sudo apt install make automake autoconf gcc libevent-dev libssl-dev

Selanjutnya, jalankan skrip berikut untuk mengompilasi GSocket dari GitHub.

/bin/bash -c "$(curl -fsSL gsocket.io/install.sh)"

Static Binary
#

Anda juga bisa mengunduh GSocket melalui GitHub Gsocket.

Using GSocket
#

Berikut beberapa contoh cara menggunakan Gsocket.

Generate a Secret

gsocket -g

Start SSHD

gsocket -s ExampleSecretChangeMe /usr/sbin/sshd -D	   # Workstation A
gsocket -s ExampleSecretChangeMe ssh bob@gsocket	   # Workstation B

File transfer

blitz -s ExampleSecretChangeMe -l	   # Workstation A
blitz -s ExampleSecretChangeMe *.php	# Workstation B

Start SFTP

gs-sftp -s ExampleSecretChangeMe -l	   # Workstation A
gs-sftp -s ExampleSecretChangeMe	      # Workstation B

gs-mount

gs-mount -l                # Workstation A
gs-mount ~/mnt             # Workstation B

Pipe data from Workstation B to Workstation A

gs-netcat -l -r >warez.tar.gz    # Workstation A
gs-netcat <warez.tar.gz          # Workstation B

Execute any command (nc -e style) on Workstation A

gs-netcat -l -e "echo hello world; id; exit"   # Workstation A
gs-netcat                                      # Workstation B

Listen for a new connection

gs-netcat -s MySecret -l   # Workstation A
gs-netcat -s MySecret      # Workstation B

Spawn a PTY login shell when a client connects

gs-netcat -s MySecret -l -i   # Workstation A
gs-netcat -s MySecret -i      # Workstation B

Pipe data from client to server

gs-netcat -s MySecret -l -r >warez.tar.gz    # Workstation A (receive)
gs-netcat -s MySecret <warez.tar.gz          # Workstation B (sending)

Server to act as a SOCKS4/4a/5 server

gs-netcat -s MySecret -l -S      # Workstation A
gs-netcat -s MySecret -p 1080    # Workstation B

TCP Port Forward all connections to 192.168.6.7:22

gs-netcat -s MySecret -l -d 192.168.6.7 -p 22               # Workstation A
gs-netcat -s MySecret -p 2222                               # Workstation B
ssh -p 2222 [email protected]                                  # Workstation B
ssh -o ProxyCommand='gs-netcat -s MySecret' root@ignored    # Workstation B

OpenVPN between two firewalled workstations

# Workstation A
gsocket -s MySecret \
 openvpn \
 --dev tun1 \
 --proto tcp-server \
 --port 4422 \
 --ifconfig 10.9.8.1 10.9.8.2 \
 --secret test.key \
 --cipher AES-256-CBC

# Workstation B
gsocket -s MySecret \
 openvpn \
 --dev tun1 \
 --proto tcp-client \
 --port 4422 \
 --ifconfig 10.9.8.2 10.9.8.1 \
 --secret test.key \
 --cipher AES-256-CBC \
 --remote gsocket

Spawn a new docker environment deep inside a private network

gs-netcat -il -e "docker run --rm -it kalilinux/kali-rolling"  # Workstation A
gs-netcat -i                                                   # Workstation B

port-forward
#

Gsocket juga dapat digunakan untuk port forwarding tanpa mengubah peraturan firewall, NAT, atau router. Sebagai contoh, disini kita akan mencoba melakukan port forwarding pada service MySQL/MariaDB dengan IP 127.0.0.1 dan port 3306.

Buat service gsocket pada server MySQL/MariaDB.

nano /etc/systemd/system/gsocket-mariadb.service
Unit]
Description=Global Socket MariaDB Forward
After=network.target

[Service]
Type=simple
Restart=always
RestartSec=10
ExecStart=gs-netcat -s ExampleSecretChangeMe -l -d 127.0.0.1 -p 3306

[Install]
WantedBy=multi-user.target

Kemudian start service gsocket-mariadb.

systemctl daemon-reload
systemctl enable --now gsocket-mariadb

Untuk dapat terhubung ke port forwarding, pada sisi client jalankan perintah berikut.

gs-netcat -s ExampleSecretChangeMe -p 3306

Selanjutnya test login.

mysql -h 127.0.0.1 -u admin
Pastikan user database [email protected] sudah dibuat di server.

systemd-root-shell
#

Untuk mengizinkan pengguna login ke server sebagai root/superuser tanpa mengubah peraturan firewall, NAT, atau router.

Buat file .env untuk menyimpan environment. (opsional)

nano /root/gsocket/.env
GS_HOST=192.156.87.1

Buat service gsocket pada workstation A.

nano /etc/systemd/system/gsocket.service
[Unit]
Description=Global Socket Root Shell
After=network.target

[Service]
Type=simple
Restart=always
RestartSec=10
WorkingDirectory=/root
EnvironmentFile=/root/gsocket/.env
ExecStart=gs-netcat -k /root/gsocket-key.txt -il

[Install]
WantedBy=multi-user.target

Kemudian buat file yang berisi random key.

gsocket -g > /root/gsocket-key.txt
chmod 600 /root/gsocket-key.txt
# cat gsocket-key.txt
StrongSecretKey

Start service gsocket.

systemctl daemon-reload
systemctl enable --now gsocket

Pastikan service gsocket running.

# systemctl status gsocket
● gsocket.service - Global Socket Root Shell
   Loaded: loaded (/etc/systemd/system/gsocket.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2025-02-21 22:29:49 WIB; 2min 20s ago
 Main PID: 1830 (gs-netcat)
    Tasks: 1 (limit: 10823)
   Memory: 552.0K
   CGroup: /system.slice/gsocket.service
           └─1830 /usr/local/bin/gs-netcat -k ********************* -il
[...]

Pada workstation B, jalankan perintah berikut untuk login sebagai root/superuser ke workstation A.

gs-netcat -s StrongSecretKey -i

user-shell
#

Untuk mengizinkan akses ke workstation A tanpa hak istimewa root/superuser dan tanpa mengubah peraturan firewall, NAT, atau router.

Tambahkan backdoor berikut ke dalam file .bash_profile pada user di workstation A.

killall -0 gs-netcat 2>/dev/null || (GSOCKET_ARGS="-s StrongSecretKey -liqD" SHELL=/bin/bash exec -a -bash gs-netcat)

Logout dan login kembali sebagai user untuk menerapkan perubahan.

Pada workstation B, jalankan perintah berikut untuk mengakses workstation A tanpa hak istimewa root/superuser.

gs-netcat -s StrongSecretKey -i

wireguard
#

Contoh konfigurasi mengalihkan trafik WireGuard ke Global Socket Relay Network.

Server

nano /etc/wireguard/server.conf
[Interface]
# Server
Address = 10.37.0.1/24
ListenPort = 51820
PrivateKey = 4E48vR7v8OUJO5OEYkOUUZmF55UOYVqo9l9w2eRS50k=
PostUp = sysctl -w net.ipv4.ip_forward=1
PreUp = gs-netcat -s AnyKindOfRandomString -Cul -d 127.0.0.1 -p 51820 &
PostDOwn = killall -g gs-netcat

[Peer]
# Client #1
PublicKey = KRYz7Jsbu1pS6ALHLqCUqG4KsFh9GcK3II+3bFscYUU=
AllowedIPs = 10.37.0.2/32

Client

nano /etc/wireguard/client.conf
[Interface]
# client. ME
Address = 10.37.0.2/32
PrivateKey = SOnUcf+KuXIWXfhpZpHtTC097ihBNUXT2igp5IuJsWY=
# Make gs-netcat listen on UDP 31337
PreUp = gs-netcat -s AnyKindOfRandomString -Cu -p 31337 &
PostDown = killall -g gs-netcat

[Peer]
# server
Endpoint = 127.0.0.1:31337
PublicKey = gjBE/V1pGdIu7yTGWtZvObxIf9+ErH9aRP+jsBuiXC4=
AllowedIPs = 10.37.0.0/24
PersistentKeepalive = 25

Aktifkan WireGuard di Server dan Client.

Server

wg-quick up server

Client

wg-quick up client

Referensi:

Related

How to Configure cGroups v2 on Linux
·2 mins
linux linux
How to Disable User Crontab in Linux
·1 min
linux linux
Cara Mengaktifkan Jumbo Frame
·2 mins
linux linux ubuntu windows
Using Tuned in Linux
·2 mins
linux linux
Using Google Dork Tool on Linux
·2 mins
linux linux
Membuat RAID Array dengan mdadm
·6 mins
linux linux ubuntu