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); } }
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); } }
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)); } }; }
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); } } }
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); } }
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); } }
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); } }