Example #1
0
        public override void Refresh()
        {
            MenuCommand setCommand = GetTaskMenuSetCommand(task, CovenantClient);

            AdditionalOptions[AdditionalOptions.IndexOf(
                                  this.AdditionalOptions.FirstOrDefault(MC => MC.Name == "Set")
                                  )] = setCommand;
            AdditionalOptions[AdditionalOptions.IndexOf(
                                  this.AdditionalOptions.FirstOrDefault(MC => MC.Name == "Unset")
                                  )] = new MenuCommandGenericUnset(setCommand.Parameters.FirstOrDefault(P => P.Name == "Option").Values);

            this.SetupMenuAutoComplete();
        }
Example #2
0
        public override bool ValidateMenuParameters(string[] parameters, bool forwardEntrance = true)
        {
            try
            {
                if (forwardEntrance)
                {
                    if (parameters.Length != 1)
                    {
                        EliteConsole.PrintFormattedErrorLine("Must specify a Task Name.");
                        EliteConsole.PrintFormattedErrorLine("Usage: Task <task_name>");
                        return(false);
                    }
                    GruntTask gruntTask = this.CovenantClient.ApiGrunttasksByTasknameGet(parameters[0]);
                    if (gruntTask == null)
                    {
                        EliteConsole.PrintFormattedErrorLine("Specified invalid Task Name: " + parameters[0]);
                        EliteConsole.PrintFormattedErrorLine("Usage: Task <task_name>");
                        return(false);
                    }
                    this.Task      = gruntTask;
                    this.MenuTitle = this.Task.Name;
                }
                MenuCommand setCommand = GetTaskMenuSetCommand(this.Task.Name, CovenantClient);
                setCommand.Parameters.FirstOrDefault(P => P.Name == "Option").Values = this.Task.Options
                                                                                       .Select(TO => new MenuCommandParameterValue {
                    Value = TO.Name
                })
                                                                                       .ToList();
                this.AdditionalOptions[AdditionalOptions.IndexOf(
                                           this.AdditionalOptions.FirstOrDefault(MC => MC.Name == "Set")
                                           )] = setCommand;
                AdditionalOptions[AdditionalOptions.IndexOf(
                                      this.AdditionalOptions.FirstOrDefault(MC => MC.Name == "Unset")
                                      )] = new MenuCommandGenericUnset(setCommand.Parameters.FirstOrDefault(P => P.Name == "Option").Values);

                this.Refresh();
            }
            catch (HttpOperationException e)
            {
                EliteConsole.PrintFormattedWarningLine("CovenantException: " + e.Response.Content);
            }
            return(true);
        }
Example #3
0
        public override void Refresh()
        {
            this.Task  = this.CovenantClient.ApiGrunttasksByIdGet(this.Task.Id ?? default);
            this.Grunt = this.CovenantClient.ApiGruntsByIdGet(this.Grunt.Id ?? default);

            var setoptionparam = this.AdditionalOptions.FirstOrDefault(AO => AO.Name == "Set")
                                 .Parameters
                                 .FirstOrDefault(P => P.Name == "Option");

            setoptionparam.Values = this.Task.Options.Select(TO => new MenuCommandParameterValue {
                Value = TO.Name
            }).ToList();

            List <string> filePathTasks = new List <string> {
                "Assembly", "AssemblyReflect", "Upload", "ShellCode"
            };

            if (filePathTasks.Contains(this.Task.Name))
            {
                var filepaths = Utilities.GetFilesForPath(Common.EliteDataFolder);
                if (!setoptionparam.Values.Select(V => V.Value).Contains("LocalFilePath"))
                {
                    setoptionparam.Values.Add(new MenuCommandParameterValue
                    {
                        Value = "LocalFilePath",
                        NextValueSuggestions = filepaths
                    });
                }
                else
                {
                    setoptionparam.Values.FirstOrDefault(V => V.Value == "LocalFilePath").NextValueSuggestions = filepaths;
                }
            }
            this.AdditionalOptions[AdditionalOptions.IndexOf(
                                       this.AdditionalOptions.FirstOrDefault(MC => MC.Name == "Unset")
                                       )] = new MenuCommandGenericUnset(setoptionparam.Values);

            this.SetupMenuAutoComplete();
        }