Esempio n. 1
0
 public Task <PowerShellLauncher> EditPowerShellLauncher(PowerShellLauncher launcher)
 {
     return(_connection.InvokeAsync <PowerShellLauncher>("EditPowerShellLauncher", launcher));
 }
 public override async void Command(MenuItem menuItem, string UserInput)
 {
     try
     {
         List <string> commands = Utilities.ParseParameters(UserInput);
         if (commands.Count() != 3 || !commands[0].Equals(this.Name, StringComparison.OrdinalIgnoreCase))
         {
             menuItem.PrintInvalidOptionError(UserInput);
             return;
         }
         PowerShellLauncher launcher = ((PowerShellLauncherMenuItem)menuItem).PowerShellLauncher;
         if (this.Parameters.FirstOrDefault(P => P.Name == "Option").Values.Select(V => V.Value).Contains(commands[1], StringComparer.OrdinalIgnoreCase))
         {
             if (commands[1].Equals("listenername", StringComparison.OrdinalIgnoreCase))
             {
                 Listener listener = this.CovenantClient.ApiListenersGet().FirstOrDefault(L => L.Name == commands[2]);
                 if (listener == null || listener.Name != commands[2])
                 {
                     EliteConsole.PrintFormattedErrorLine("Invalid ListenerName");
                     return;
                 }
                 launcher.ListenerId = listener.Id;
             }
             else if (commands[1].Equals("dotnetframeworkversion", StringComparison.OrdinalIgnoreCase))
             {
                 if (commands[2].Contains("35", StringComparison.OrdinalIgnoreCase) || commands[2].Contains("3.5", StringComparison.OrdinalIgnoreCase))
                 {
                     launcher.DotNetFrameworkVersion = DotNetVersion.Net35;
                 }
                 else if (commands[2].Contains("40", StringComparison.OrdinalIgnoreCase) || commands[2].Contains("4.0", StringComparison.OrdinalIgnoreCase))
                 {
                     launcher.DotNetFrameworkVersion = DotNetVersion.Net40;
                 }
             }
             else if (commands[1].Equals("parameterstring", StringComparison.OrdinalIgnoreCase))
             {
                 launcher.ParameterString = String.Join(" ", commands.TakeLast(commands.Count() - 2).ToList());
             }
             else if (commands[1].Equals("commtype", StringComparison.OrdinalIgnoreCase))
             {
                 if (commands[2].Equals("smb", StringComparison.OrdinalIgnoreCase))
                 {
                     launcher.CommType = CommunicationType.SMB;
                 }
                 else
                 {
                     launcher.CommType = CommunicationType.HTTP;
                 }
             }
             else if (commands[1].Equals("validatecert", StringComparison.OrdinalIgnoreCase))
             {
                 bool parsed = bool.TryParse(commands[2], out bool validate);
                 if (parsed)
                 {
                     launcher.ValidateCert = validate;
                 }
                 else
                 {
                     menuItem.PrintInvalidOptionError(UserInput);
                     return;
                 }
             }
             else if (commands[1].Equals("usecertpinning", StringComparison.OrdinalIgnoreCase))
             {
                 bool parsed = bool.TryParse(commands[2], out bool pin);
                 if (parsed)
                 {
                     launcher.UseCertPinning = pin;
                 }
                 else
                 {
                     menuItem.PrintInvalidOptionError(UserInput);
                     return;
                 }
             }
             else if (commands[1].Equals("smbpipename", StringComparison.OrdinalIgnoreCase))
             {
                 launcher.SmbPipeName = commands[2];
             }
             else if (commands[1].Equals("delay", StringComparison.OrdinalIgnoreCase))
             {
                 int.TryParse(commands[2], out int n);
                 launcher.Delay = n;
             }
             else if (commands[1].Equals("jitterpercent", StringComparison.OrdinalIgnoreCase))
             {
                 int.TryParse(commands[2], out int n);
                 launcher.JitterPercent = n;
             }
             else if (commands[1].Equals("connectattempts", StringComparison.OrdinalIgnoreCase))
             {
                 int.TryParse(commands[2], out int n);
                 launcher.ConnectAttempts = n;
             }
             else if (commands[1].Equals("killdate", StringComparison.OrdinalIgnoreCase))
             {
                 DateTime.TryParse(commands[2], out DateTime result);
                 launcher.KillDate = result;
             }
             else if (commands[1].Equals("launcherstring", StringComparison.OrdinalIgnoreCase))
             {
                 launcher.LauncherString = commands[2];
             }
             await this.CovenantClient.ApiLaunchersPowershellPutAsync(launcher);
         }
         else
         {
             menuItem.PrintInvalidOptionError(UserInput);
         }
     }
     catch (HttpOperationException e)
     {
         EliteConsole.PrintFormattedWarningLine("CovenantException: " + e.Response.Content);
     }
 }
Esempio n. 3
0
        public override void Command(MenuItem menuItem, string UserInput)
        {
            PowerShellLauncher PowerShellLauncher = ((PowerShellLauncherMenuItem)menuItem).powerShellLauncher;

            string[] commands = UserInput.Split(" ");
            if (commands.Length < 3 || commands[0].ToLower() != "set")
            {
                menuItem.PrintInvalidOptionError(UserInput);
            }
            else if (this.Parameters.FirstOrDefault(P => P.Name == "Option").Values.Select(V => V.Value.ToLower()).Contains(commands[1].ToLower()))
            {
                if (commands[1].ToLower() == "listenername")
                {
                    Listener listener = this.CovenantClient.ApiListenersGet().FirstOrDefault(L => L.Name == commands[2]);
                    if (listener == null || listener.Name != commands[2])
                    {
                        EliteConsole.PrintFormattedErrorLine("Invalid ListenerName");
                    }
                    else
                    {
                        PowerShellLauncher.ListenerId = listener.Id;
                    }
                }
                else if (commands[1].ToLower() == "parameterstring")
                {
                    PowerShellLauncher.ParameterString = String.Join(" ", commands.TakeLast(commands.Length - 2).ToList());
                }
                else if (commands[1].ToLower() == "dotnetframeworkversion")
                {
                    if (commands[2].ToLower().Contains("35") || commands[2].ToLower().Contains("3.5"))
                    {
                        PowerShellLauncher.DotNetFrameworkVersion = DotNetVersion.Net35;
                    }
                    else if (commands[2].ToLower().Contains("40") || commands[2].ToLower().Contains("4.0"))
                    {
                        PowerShellLauncher.DotNetFrameworkVersion = DotNetVersion.Net40;
                    }
                }
                else if (commands[1].ToLower() == "delay")
                {
                    int.TryParse(commands[2], out int n);
                    PowerShellLauncher.Delay = n;
                }
                else if (commands[1].ToLower() == "jitter")
                {
                    int.TryParse(commands[2], out int n);
                    PowerShellLauncher.Jitter = n;
                }
                else if (commands[1].ToLower() == "connectattempts")
                {
                    int.TryParse(commands[2], out int n);
                    PowerShellLauncher.ConnectAttempts = n;
                }
                else if (commands[1].ToLower() == "launcherstring")
                {
                    PowerShellLauncher.LauncherString = commands[2];
                }
                CovenantAPIExtensions.ApiLaunchersPowershellPut(this.CovenantClient, PowerShellLauncher);
            }
            else
            {
                menuItem.PrintInvalidOptionError(UserInput);
            }
        }
 public async Task <ActionResult <PowerShellLauncher> > EditPowerShellLauncher([FromBody] PowerShellLauncher launcher)
 {
     try
     {
         return(await _service.EditPowerShellLauncher(launcher));
     }
     catch (ControllerNotFoundException e)
     {
         return(NotFound(e.Message));
     }
     catch (ControllerBadRequestException e)
     {
         return(BadRequest(e.Message));
     }
 }