diff --git a/SharpGPOAbuse/Program.cs b/SharpGPOAbuse/Program.cs index d306f30..a7df011 100644 --- a/SharpGPOAbuse/Program.cs +++ b/SharpGPOAbuse/Program.cs @@ -808,11 +808,30 @@ public static void NewStartupScript(String ScriptName, String ScriptContents, St } } + public static string XmlEncode(string s) + { + if (!string.IsNullOrEmpty(s)) + { + s = s.Replace("&", "&"); + s = s.Replace("'", "'"); + s = s.Replace("\"", """); + s = s.Replace(">", ">"); + s = s.Replace("<", "<"); + } + return s; + } + public static void NewImmediateTask(String Domain, String DomainController, String GPOName, String distinguished_name, String task_name, String author, String arguments, String command, bool Force, String objectType) { string ImmediateTaskXML; string start = @""; string end = @""; + + author = XmlEncode(author); + task_name = XmlEncode(task_name); + command = XmlEncode(command); + arguments = XmlEncode(arguments); + if (objectType.Equals("Computer")) { ImmediateTaskXML = string.Format(@"{0}NT AUTHORITY\SystemS4UHighestAvailablePT10MPT1HtruefalseIgnoreNewtruetruetruetruefalsetruetruefalsefalsefalseP3D7PT0S%LocalTimeXmlEx%%LocalTimeXmlEx%true{2}{3}", author, task_name, command, arguments, Guid.NewGuid().ToString());