Exemple #1
0
        public static void RunAssemblyBase64(string assembly, string method, string type, string[] args, IAgentInstance agent, string tasktype = null, string destfilename = null)
        {
            if (tasktype != null)
            {
                FileDownloadConfig modconfig = new FileDownloadConfig
                {
                    Assembly     = assembly,
                    Method       = method,
                    Moduleclass  = type,
                    Parameters   = args.ToArray <string>(),
                    FileNameDest = destfilename
                };

                TaskMsg task = new TaskMsg
                {
                    TaskType     = "download",
                    Instanceid   = RandomAString(10, new Random()),
                    DownloadTask = modconfig,
                    Agentid      = agent.AgentId
                };

                if (agent.Pivoter != null)
                {
                    task.AgentPivot = agent.Pivoter.AgentId;
                }
                agent.SendCommand(task);
            }
            else
            {
                ModuleConfig modconfig = new ModuleConfig
                {
                    Assembly    = assembly,
                    Method      = method,
                    Moduleclass = type,
                    Parameters  = args.ToArray <string>()
                };

                TaskMsg task = new TaskMsg
                {
                    TaskType   = "module",
                    Instanceid = RandomAString(10, new Random()),
                    ModuleTask = modconfig,
                    Agentid    = agent.AgentId
                };

                if (agent.Pivoter != null)
                {
                    task.AgentPivot = agent.Pivoter.AgentId;
                }
                agent.SendCommand(task);
            }
        }
Exemple #2
0
        public static void RunStandardBase64(string assembly, string method, string type, string[] args, IAgentInstance agent)
        {
            if (agent != null)
            {
                StandardConfig modconfig = new StandardConfig
                {
                    Assembly    = assembly,
                    Method      = method,
                    Moduleclass = type,
                    Parameters  = args.ToArray <string>()
                };

                TaskMsg task = new TaskMsg
                {
                    TaskType     = "standard",
                    Instanceid   = RandomAString(10, new Random()),
                    StandardTask = modconfig,
                    Agentid      = agent.AgentId
                };

                if (agent.Pivoter != null)
                {
                    task.AgentPivot = agent.Pivoter.AgentId;
                }
                agent.SendCommand(task);
            }
        }
Exemple #3
0
        public static void RunAssembly(string resname, string type, string[] args, IAgentInstance agent)
        {
            if (agent != null)
            {
                ModuleConfig modconfig = new ModuleConfig
                {
                    Assembly    = ReadResourceFile(resname),
                    Method      = "Execute",
                    Moduleclass = type,
                    Parameters  = args.ToArray <string>()
                };

                TaskMsg task = new TaskMsg
                {
                    TaskType   = "module",
                    Instanceid = RandomAString(10, new Random()),
                    ModuleTask = modconfig,
                    Agentid    = agent.AgentId
                };

                if (agent.Pivoter != null)
                {
                    task.AgentPivot = agent.Pivoter.AgentId;
                }
                agent.SendCommand(task);
            }
        }
Exemple #4
0
        private void RunSetManaged()
        {
            TaskMsg msg = new TaskMsg
            {
                Instanceid = RandomAString(10, new Random()),
                Agentid    = agent.AgentId,
                TaskType   = "managed"
            };

            InjectionManaged injectionManagedTask = new InjectionManaged();

            injectionManagedTask.Managed = true;

            msg.InjectionManagedTask = injectionManagedTask;

            agent.SendCommand(msg);
        }
        private void Run()
        {
            if (!string.IsNullOrEmpty(pipename))
            {
                TaskMsg msg = new TaskMsg();
                msg.Agentid  = agent.AgentId;
                msg.TaskType = "pivot";

                agent.SendCommand(msg);
            }
        }
        private void RunRemote(string input)
        {
            string        command   = input;
            CommandConfig cmdconfig = new CommandConfig
            {
                Command = command
            };
            TaskMsg task = new TaskMsg
            {
                TaskType    = "command",
                CommandTask = cmdconfig,
                Agentid     = agent.AgentId
            };

            if (agent.Pivoter != null)
            {
                task.AgentPivot = agent.Pivoter.AgentId;
            }
            agent.SendCommand(task);
        }
Exemple #7
0
        public static void RunAssembly(string resname, string type, string[] args, IAgentInstance agent)
        {
            if (agent != null)
            {
                ModuleConfig modconfig = new ModuleConfig
                {
                    Assembly    = ReadResourceFile(resname),
                    Method      = "Execute",
                    Moduleclass = type,
                    Parameters  = args
                };

                if (agent.Managed)
                {
                    modconfig.Assembly = ReadResourceFile(resname);
                }
                else
                {
                    modconfig.Assembly = Convert.ToBase64String(CompressGZipAssembly(Builder.GenerateShellcode(
                                                                                         ReadResourceFile(resname), RandomAString(10, new Random()) + ".exe", type, "Execute", args)));
                }

                TaskMsg task = new TaskMsg
                {
                    TaskType   = "module",
                    Instanceid = RandomAString(10, new Random()),
                    ModuleTask = modconfig,
                    Agentid    = agent.AgentId
                };

                if (agent.Pivoter != null)
                {
                    task.AgentPivot = agent.Pivoter.AgentId;
                }
                agent.SendCommand(task);
            }
        }
Exemple #8
0
        public static void RunAssemblyBase64(string assembly, string method, string type, string[] args, IAgentInstance agent, string tasktype = null, string destfilename = null, string instanceid = null)
        {
            switch (tasktype)
            {
            case "download":
                FileDownloadConfig downloadconfig = new FileDownloadConfig
                {
                    Assembly     = assembly,
                    Method       = method,
                    Moduleclass  = type,
                    Parameters   = args.ToArray <string>(),
                    FileNameDest = destfilename
                };

                TaskMsg downloadtask = new TaskMsg
                {
                    TaskType     = "download",
                    DownloadTask = downloadconfig,
                    Agentid      = agent.AgentId
                };

                if (instanceid == null)
                {
                    downloadtask.Instanceid = RandomAString(10, new Random());
                }
                else
                {
                    downloadtask.Instanceid = instanceid;
                }

                if (agent.Pivoter != null)
                {
                    downloadtask.AgentPivot = agent.Pivoter.AgentId;
                }

                agent.SendCommand(downloadtask);
                break;

            case "migrate":
                ModuleConfig migrateconfig = new ModuleConfig
                {
                    Assembly    = assembly,
                    Method      = method,
                    Moduleclass = type,
                    Parameters  = args.ToArray <string>()
                };

                TaskMsg migratetask = new TaskMsg
                {
                    TaskType   = "migrate",
                    ModuleTask = migrateconfig,
                    Agentid    = agent.AgentId
                };

                if (instanceid == null)
                {
                    migratetask.Instanceid = RandomAString(10, new Random());
                }
                else
                {
                    migratetask.Instanceid = instanceid;
                }

                if (agent.Pivoter != null)
                {
                    migratetask.AgentPivot = agent.Pivoter.AgentId;
                }

                agent.SendCommand(migratetask);
                break;

            default:
                ModuleConfig modconfig = new ModuleConfig
                {
                    Assembly    = assembly,
                    Method      = method,
                    Moduleclass = type,
                    Parameters  = args.ToArray <string>()
                };

                if (agent.Managed)
                {
                    modconfig.Assembly = assembly;
                }
                else
                {
                    modconfig.Assembly = Convert.ToBase64String(CompressGZipAssembly(Builder.GenerateShellcode(
                                                                                         assembly, RandomAString(10, new Random()) + ".exe", type, method, args)));
                }

                TaskMsg task = new TaskMsg
                {
                    TaskType   = "module",
                    ModuleTask = modconfig,
                    Agentid    = agent.AgentId
                };

                if (instanceid == null)
                {
                    task.Instanceid = RandomAString(10, new Random());
                }
                else
                {
                    task.Instanceid = instanceid;
                }

                if (agent.Pivoter != null)
                {
                    task.AgentPivot = agent.Pivoter.AgentId;
                }

                agent.SendCommand(task);
                break;
            }
        }