2022-03-19 18:09:14 -07:00
|
|
|
|
using System.Text;
|
2021-12-26 17:40:51 -08:00
|
|
|
|
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
|
|
|
|
|
using Client.Models;
|
|
|
|
|
|
|
|
|
|
using static Client.Models.Client;
|
|
|
|
|
|
|
|
|
|
namespace Client.Utils.ImplantUtils
|
|
|
|
|
{
|
|
|
|
|
class TasksOut : Models.Util
|
|
|
|
|
{
|
|
|
|
|
private JSON.Classes.TaskRecvOut taskData { get; set; }
|
|
|
|
|
|
|
|
|
|
public override string UtilName => "TasksOut";
|
|
|
|
|
|
|
|
|
|
public override string Desc => "Return all tasks for given implant";
|
|
|
|
|
|
|
|
|
|
public override string UtilExecute(string[] opts)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
StringBuilder _out = new StringBuilder();
|
|
|
|
|
|
|
|
|
|
var tasks = Comms.comms.SendGET($"{TeamServerAddr}/Implants/{CurrentImplant}/tasks").TrimStart('[').TrimEnd(']');
|
|
|
|
|
if (tasks.Length == 0) { throw new AtlasException("[*] No tasks to view\n"); }
|
|
|
|
|
|
2022-03-19 18:09:14 -07:00
|
|
|
|
if (tasks.Contains("},{\"id")) { tasks = tasks.Replace("},{\"id", "}&{\"id"); }
|
2021-12-26 17:40:51 -08:00
|
|
|
|
|
|
|
|
|
var taskList = tasks.Split('&');
|
|
|
|
|
|
2022-03-19 18:09:14 -07:00
|
|
|
|
foreach (var _task in taskList) {
|
2021-12-26 17:40:51 -08:00
|
|
|
|
taskData = JsonConvert.DeserializeObject<JSON.Classes.TaskRecvOut>(_task);
|
2022-03-19 18:09:14 -07:00
|
|
|
|
_out.AppendLine($"{taskData.Id} {taskData.TaskName}");
|
2021-12-26 17:40:51 -08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return _out.ToString();
|
|
|
|
|
|
|
|
|
|
} catch (AtlasException e) { return e.Message; }
|
|
|
|
|
catch (System.Net.WebException) { return $"[-] Connection to teamserver could not be established or no implant currently set\n"; }
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|