Пример #1
0
        static int Main(string[] args)
        {
            // hacer load, reload, probar el global con payload, hacer el listen general con un handler, no cargar exploits sin el load

            // Linq to library assembly
            BuildLink.Dummy();

            // Configure
            //Console.InputEncoding = Encoding.UTF8;
            //Console.OutputEncoding = Encoding.UTF8;
            ConsoleCommand command = new ConsoleCommand();

            command.AddInput("banner");
            //command.AddInput("load \"XPloit.Modules.dll\"");

            //command.AddInput("use Auxiliary/Local/System");
            //command.AddInput("version");

            Console.CursorSize    = 100;
            Console.CursorVisible = false;

            command.SetBackgroundColor(ConsoleColor.White);
            command.SetBackgroundColor(ConsoleColor.Black);

            // TODO: Fix \"CryptKey=#Crypt0 M3#\" -> broken line whith white space
            // \"CryptKey=#Crypt0M3#\"
            Config cfg = ArgumentHelper.Parse <Config>(args);// ("\"Resource=d:\\temp\\console.txt\" \"Listen={Port=23 CryptKey=#Test# IPFilter={OnlyAllowed=127.0.0.1,172.22.32.51}}\" \"User={UserName=root Password=toor}\"");

            // Run file
            if (!string.IsNullOrEmpty(cfg.Resource))
            {
                try
                {
                    command.SetForeColor(ConsoleColor.Gray);
                    command.Write(Lang.Get("Reading_File", cfg.Resource));

                    foreach (string line in File.ReadAllLines(cfg.Resource))
                    {
                        string ap = line.Trim();
                        if (string.IsNullOrEmpty(ap))
                        {
                            continue;
                        }
                        command.AddInput(ap);
                    }

                    command.SetForeColor(ConsoleColor.Green);
                    command.WriteLine(Lang.Get("Ok").ToUpperInvariant());
                }
                catch
                {
                    command.SetForeColor(ConsoleColor.Red);
                    command.WriteLine(Lang.Get("Error").ToUpperInvariant());
                }
            }

            if (cfg.Connect != null)
            {
                // Connect to server
                SocketListener client = new SocketListener(cfg.Connect);

                command.SetForeColor(ConsoleColor.Gray);
                command.Write(Lang.Get("Connecting_To", client.ToString()));
                if (client.Start())
                {
                    command.SetForeColor(ConsoleColor.Green);
                    command.WriteLine(Lang.Get("Ok").ToUpperInvariant());
                }
                else
                {
                    command.SetForeColor(ConsoleColor.Red);
                    command.WriteLine(Lang.Get("Error").ToUpperInvariant());
                }

                command.SetForeColor(ConsoleColor.DarkGray);
                command.WriteLine(Lang.Get("Press_Any_Key"));

                Console.ReadKey();
            }
            else
            {
                List <IListener> listeners = new List <IListener>();

                // Launch socket listener
                if (cfg.Listen != null)
                {
                    listeners.Add(new SocketListener(cfg.Listen));
                }

                // Run listeners
                foreach (IListener listener in listeners)
                {
                    command.SetForeColor(ConsoleColor.Gray);
                    command.Write(Lang.Get("Starting_Listener", listener.ToString()));

                    if (listener.Start())
                    {
                        command.SetForeColor(ConsoleColor.Green);
                        command.WriteLine(Lang.Get("Ok").ToUpperInvariant());
                    }
                    else
                    {
                        command.SetForeColor(ConsoleColor.Red);
                        command.WriteLine(Lang.Get("Error").ToUpperInvariant());
                    }
                }

                // Console listener
                CommandListener cmd = new CommandListener(command);
                cmd.Start();
            }

            // Wait exit signal
            JobCollection.Current.KillAll();
            return(0);
        }
Пример #2
0
        static int Main(string[] args)
        {
            // hacer load, reload, probar el global con payload, hacer el listen general con un handler, no cargar exploits sin el load

            // Linq to library assembly
            BuildLink.Dummy();

            // Configure
            //Console.InputEncoding = Encoding.UTF8;
            //Console.OutputEncoding = Encoding.UTF8;
            using (CommandLayer command = new CommandLayer(new ConsoleIO()))
            {
                command.SetBackgroundColor(ConsoleColor.White);
                command.SetBackgroundColor(ConsoleColor.Black);

                command.AddInput("banner");
#if DEBUG
                if (Debugger.IsAttached)
                {
                    command.AddInput("Play Debug.txt");
                }
#endif

                if (GeoLite2LocationProvider.Current == null)
                {
                    /// TODO: Config the default GeoIp
                    if (GeoLite2LocationProvider.LoadCurrent(
                            Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"GeoLite2", "GeoLite2-Blocks-IP.csv.gz"),
                            Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"GeoLite2", "GeoLite2-City-Locations-es.csv.gz")))
                    {
                        command.WriteInfo("Loaded GeoIp", GeoLite2LocationProvider.Current.Count.ToString(), ConsoleColor.Green);
                    }
                }

                // TODO: Fix \"CryptKey=#Crypt0 M3#\" -> broken line whith white space
                // \"CryptKey=#Crypt0M3#\"
                Config cfg = ArgumentHelper.Parse <Config>(args);// ("\"Replay=d:\\temp\\console.txt\" \"Listen={Port=23 CryptKey=#Test# IPFilter={OnlyAllowed=127.0.0.1,172.22.32.51}}\" \"User={UserName=root Password=toor}\"");

                // Run file
                if (!string.IsNullOrEmpty(cfg.Play))
                {
                    try
                    {
                        command.SetForeColor(ConsoleColor.Gray);
                        command.Write(Lang.Get("Reading_File", cfg.Play));

                        foreach (string line in File.ReadAllLines(cfg.Play, Encoding.UTF8))
                        {
                            string ap = line.Trim();
                            if (string.IsNullOrEmpty(ap) || ap.StartsWith("#") || ap.StartsWith("//"))
                            {
                                continue;
                            }
                            command.AddInput(ap);
                        }

                        command.SetForeColor(ConsoleColor.Green);
                        command.WriteLine(Lang.Get("Ok").ToUpperInvariant());
                    }
                    catch
                    {
                        command.SetForeColor(ConsoleColor.Red);
                        command.WriteLine(Lang.Get("Error").ToUpperInvariant());
                    }
                }

                if (cfg.Connect != null)
                {
                    // Connect to server
                    SocketListener client = new SocketListener(cfg.Connect);

                    command.SetForeColor(ConsoleColor.Gray);
                    command.Write(Lang.Get("Connecting_To", client.ToString()));
                    if (client.Start())
                    {
                        command.SetForeColor(ConsoleColor.Green);
                        command.WriteLine(Lang.Get("Ok").ToUpperInvariant());
                    }
                    else
                    {
                        command.SetForeColor(ConsoleColor.Red);
                        command.WriteLine(Lang.Get("Error").ToUpperInvariant());
                    }

                    command.SetForeColor(ConsoleColor.DarkGray);
                    command.WriteLine(Lang.Get("Press_Any_Key"));

                    Console.ReadKey();
                }
                else
                {
                    List <IListener> listeners = new List <IListener>();

                    // Launch socket listener
                    if (cfg.Listen != null)
                    {
                        listeners.Add(new SocketListener(cfg.Listen));
                    }

                    // Run listeners
                    foreach (IListener listener in listeners)
                    {
                        command.SetForeColor(ConsoleColor.Gray);
                        command.Write(Lang.Get("Starting_Listener", listener.ToString()));

                        if (listener.Start())
                        {
                            command.SetForeColor(ConsoleColor.Green);
                            command.WriteLine(Lang.Get("Ok").ToUpperInvariant());
                        }
                        else
                        {
                            command.SetForeColor(ConsoleColor.Red);
                            command.WriteLine(Lang.Get("Error").ToUpperInvariant());
                        }
                    }

                    // Console listener
                    CommandListener cmd = new CommandListener(command);
                    cmd.Start();
                }
            }

            // Wait exit signal
            JobCollection.Current.KillAll();
            return(0);
        }