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
Server.
gsocket -s ExampleSecretChangeMe /usr/sbin/sshd -D
Client.
gsocket -s ExampleSecretChangeMe ssh bob@gsocket
File transfer
Server.
blitz -s ExampleSecretChangeMe -l
Client.
blitz -s ExampleSecretChangeMe *.php
Start SFTP
Server.
gs-sftp -s ExampleSecretChangeMe -l
Client.
gs-sftp -s ExampleSecretChangeMe
systemd-root-shell #
Untuk mengizinkan pengguna login ke server sebagai root/superuser tanpa mengubah peraturan firewall, NAT, atau router.
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
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 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
Referensi: