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