コード例 #1
0
        public override void Command(MenuItem menuItem, string UserInput)
        {
            MSBuildLauncherMenuItem msbuildMenuItem = (MSBuildLauncherMenuItem)menuItem;

            string[] commands = UserInput.Split(" ");
            if (commands.Length < 1 || commands.Length > 2 || commands[0].ToLower() != "code")
            {
                menuItem.PrintInvalidOptionError(UserInput);
                return;
            }
            else if (commands.Length == 2 && (!new List <string> {
                "stager", "gruntstager", "xml"
            }.Contains(commands[1].ToLower())))
            {
                EliteConsole.PrintFormattedErrorLine("Type must be one of: \"Stager\"\\\"GruntStager\" or \"XML\"");
                menuItem.PrintInvalidOptionError(UserInput);
                return;
            }
            msbuildMenuItem.Refresh();
            if (msbuildMenuItem.msbuildLauncher.LauncherString == "")
            {
                msbuildMenuItem.CovenantClient.ApiLaunchersMsbuildPost();
                msbuildMenuItem.Refresh();
                EliteConsole.PrintFormattedHighlightLine("Generated MSBuildLauncher: " + msbuildMenuItem.msbuildLauncher.LauncherString);
            }
            if (commands.Length == 1 || (commands.Length == 2 && (commands[1].ToLower() == "stager" || commands[1].ToLower() == "gruntstager")))
            {
                EliteConsole.PrintInfoLine(msbuildMenuItem.msbuildLauncher.StagerCode);
            }
            else if (commands.Length == 2 && commands[1].ToLower() == "xml")
            {
                EliteConsole.PrintInfoLine(msbuildMenuItem.msbuildLauncher.DiskCode);
            }
        }
コード例 #2
0
 public override void Command(MenuItem menuItem, string UserInput)
 {
     try
     {
         string[] commands = UserInput.Split(" ");
         if (commands.Length < 1 || commands.Length > 2 || !commands[0].Equals(this.Name, StringComparison.OrdinalIgnoreCase))
         {
             menuItem.PrintInvalidOptionError(UserInput);
             return;
         }
         if (commands.Length == 2 && !commands[1].Equals("gruntstager", StringComparison.OrdinalIgnoreCase))
         {
             EliteConsole.PrintFormattedErrorLine("Type must be one of: \"GruntStager\"");
             menuItem.PrintInvalidOptionError(UserInput);
             return;
         }
         BinaryLauncher launcher = ((BinaryLauncherMenuItem)menuItem).BinaryLauncher;
         if (launcher.LauncherString == "")
         {
             this.CovenantClient.ApiLaunchersBinaryPost();
             menuItem.Refresh();
             launcher = ((BinaryLauncherMenuItem)menuItem).BinaryLauncher;
             EliteConsole.PrintFormattedHighlightLine("Generated BinaryLauncher: " + launcher.LauncherString);
         }
         EliteConsole.PrintInfoLine(launcher.StagerCode);
     }
     catch (HttpOperationException e)
     {
         EliteConsole.PrintFormattedWarningLine("CovenantException: " + e.Response.Content);
     }
 }
コード例 #3
0
 public EliteMenu(CovenantAPI CovenantClient)
 {
     this.CovenantClient = CovenantClient;
     this.MenuStack.Add(new CovenantBaseMenuItem(this.CovenantClient, this.EventPrinter));
     this.onEventOccured = (sender, eventArgs) =>
     {
         string     context  = this.GetMenuLevelTitleStack();
         EventModel theEvent = eventArgs.theEvent;
         if (theEvent.Type == EventType.Normal)
         {
             if (this.EventPrinter.WillPrintEvent(theEvent, context))
             {
                 EliteConsole.PrintInfoLine();
                 this.EventPrinter.PrintEvent(theEvent, context);
                 this.PrintMenuLevel();
             }
         }
         else if (theEvent.Type == EventType.Download)
         {
             DownloadEvent downloadEvent = this.CovenantClient.ApiEventsDownloadByIdGet(theEvent.Id ?? default);
             string        download      = this.CovenantClient.ApiEventsDownloadByIdContentGet(downloadEvent.Id ?? default);
             System.IO.File.WriteAllBytes(System.IO.Path.Combine(Common.EliteDataFolder, theEvent.Message), Convert.FromBase64String(download));
         }
     };
 }
コード例 #4
0
        public void PrintEvent(EventModel theEvent, string Context = "*")
        {
            lock (_EventLock)
            {
                if (this.WillPrintEvent(theEvent, Context))
                {
                    switch (theEvent.Level)
                    {
                    case EventLevel.Highlight:
                        EliteConsole.PrintFormattedHighlightLine(theEvent.Message);
                        break;

                    case EventLevel.Info:
                        EliteConsole.PrintInfoLine(theEvent.Message);
                        break;

                    case EventLevel.Warning:
                        EliteConsole.PrintFormattedWarningLine(theEvent.Message);
                        break;

                    case EventLevel.Error:
                        EliteConsole.PrintFormattedErrorLine(theEvent.Message);
                        break;

                    default:
                        EliteConsole.PrintFormattedInfo(theEvent.Message);
                        break;
                    }
                    PrintedEvents.Add(theEvent.Id ?? default);
                }
            }
        }
コード例 #5
0
ファイル: UsersMenuItem.cs プロジェクト: dmsmith1991/Elite
        public override void Command(MenuItem menuItem, string UserInput)
        {
            try
            {
                string[] commands = UserInput.Split(" ");
                if (commands.Length != 1 || !commands[0].Equals(this.Name, StringComparison.OrdinalIgnoreCase))
                {
                    menuItem.PrintInvalidOptionError(UserInput);
                    EliteConsole.PrintFormattedErrorLine("Usage: Create <username> <password> [<roles>]");
                    return;
                }

                EliteConsole.PrintHighlight("Password: "******"CovenantException: " + e.Response.Content);
            }
        }
コード例 #6
0
 public override void Command(MenuItem menuItem, string UserInput)
 {
     try
     {
         string[] commands = UserInput.Split(" ");
         if (commands.Length < 1 || commands.Length > 2 || !commands[0].Equals(this.Name, StringComparison.OrdinalIgnoreCase))
         {
             menuItem.PrintInvalidOptionError(UserInput);
             return;
         }
         if (commands.Length == 2 && (!new List <string> {
             "stager", "gruntstager", "scriptlet"
         }.Contains(commands[1].ToLower())))
         {
             EliteConsole.PrintFormattedErrorLine("Type must be one of: \"Stager\"\\\"GruntStager\" or \"Scriptlet\"");
             menuItem.PrintInvalidOptionError(UserInput);
             return;
         }
         WmicLauncher launcher = ((WmicLauncherMenuItem)menuItem).WmicLauncher;
         menuItem.Refresh();
         if (launcher.LauncherString == "")
         {
             this.CovenantClient.ApiLaunchersWmicPost();
             menuItem.Refresh();
             launcher = ((WmicLauncherMenuItem)menuItem).WmicLauncher;
             EliteConsole.PrintFormattedHighlightLine("Generated WmicLauncher: " + launcher.LauncherString);
         }
         if (commands.Length == 1 || (commands.Length == 2 && commands[1].Equals("gruntstager", StringComparison.OrdinalIgnoreCase)))
         {
             EliteConsole.PrintInfoLine(launcher.StagerCode);
         }
         else if (commands.Length == 2 && commands[1].Equals("scriptlet", StringComparison.OrdinalIgnoreCase))
         {
             EliteConsole.PrintInfoLine(launcher.DiskCode);
         }
     }
     catch (HttpOperationException e)
     {
         EliteConsole.PrintFormattedWarningLine("CovenantException: " + e.Response.Content);
     }
 }
コード例 #7
0
        public override void Command(MenuItem menuItem, string UserInput)
        {
            CredentialsMenuItem credentialsMenuItem = (CredentialsMenuItem)menuItem;
            List <string>       commands            = Utilities.ParseParameters(UserInput);

            if (commands.Count() != 2)
            {
                EliteConsole.PrintFormattedErrorLine("Invalid Ticket command. Usage is: Ticket <ticket_id>");
                EliteConsole.PrintFormattedErrorLine("Valid Ticket IDs are: " + String.Join(", ", credentialsMenuItem.TicketCredentials.Select(T => T.Id.ToString())));
            }
            else if (!credentialsMenuItem.TicketCredentials.Select(T => T.Id.ToString()).Contains(commands[1]))
            {
                EliteConsole.PrintFormattedErrorLine("Invalid Ticket command. Usage is: Ticket <ticket_id>");
                EliteConsole.PrintFormattedErrorLine("Valid Ticket IDs are: " + String.Join(", ", credentialsMenuItem.TicketCredentials.Select(T => T.Id.ToString())));
            }
            else
            {
                EliteConsole.PrintFormattedInfoLine($"Ticket ID: {commands[1]} Base64EncodedTicket:");
                EliteConsole.PrintInfoLine(credentialsMenuItem.TicketCredentials.FirstOrDefault(T => T.Id.ToString().Equals(commands[1], StringComparison.OrdinalIgnoreCase)).Ticket);
            }
        }