diff --git a/APIModels/APIModels.csproj b/APIModels/APIModels.csproj
new file mode 100644
index 0000000..f208d30
--- /dev/null
+++ b/APIModels/APIModels.csproj
@@ -0,0 +1,7 @@
+
+
+
+ net5.0
+
+
+
diff --git a/APIModels/Class1.cs b/APIModels/Class1.cs
new file mode 100644
index 0000000..b7502f7
--- /dev/null
+++ b/APIModels/Class1.cs
@@ -0,0 +1,8 @@
+using System;
+
+namespace APIModels
+{
+ public class Class1
+ {
+ }
+}
diff --git a/APIModels/Requests/ImplantTaskRequest.cs b/APIModels/Requests/ImplantTaskRequest.cs
new file mode 100644
index 0000000..a05537b
--- /dev/null
+++ b/APIModels/Requests/ImplantTaskRequest.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+
+namespace APIModels.Requests
+{
+ [Serializable]
+ public class TaskArgs
+ {
+ public string OptionName { get; set; }
+ public string OptionValue { get; set; }
+ }
+
+ [Serializable]
+ public class ArgsRecv{
+ public List Params { get; set; }
+ }
+
+ public class ImplantTaskRequest
+ {
+ public string Command { get; set; }
+ // json str, see alpha
+ public string Args { get; set; }
+ public string File { get; set; }
+ }
+}
diff --git a/APIModels/Requests/StartHTTPListenerRequest.cs b/APIModels/Requests/StartHTTPListenerRequest.cs
new file mode 100644
index 0000000..a40f550
--- /dev/null
+++ b/APIModels/Requests/StartHTTPListenerRequest.cs
@@ -0,0 +1,14 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace APIModels.Requests
+{
+ public class StartHTTPListenerRequest
+ {
+ public string Name { get; set; }
+ public int BindPort { get; set; }
+ }
+}
diff --git a/AtlasC2b.sln b/AtlasC2b.sln
new file mode 100644
index 0000000..8415452
--- /dev/null
+++ b/AtlasC2b.sln
@@ -0,0 +1,43 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.31729.503
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Client", "Client\Client.csproj", "{5EE374BC-1028-4607-B4AC-BB11D4187DC8}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "APIModels", "APIModels\APIModels.csproj", "{CB05D019-8DE0-46C6-9BD4-72998ABA2492}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Implant", "Implant\Implant.csproj", "{6DE5ED01-804C-49BF-8F70-DF032CC6C189}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TeamServer", "TeamServer\TeamServer.csproj", "{BCC27BA8-EC55-4BED-8D2F-3FDC069D45B9}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Any CPU = Debug|Any CPU
+ Release|Any CPU = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {5EE374BC-1028-4607-B4AC-BB11D4187DC8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5EE374BC-1028-4607-B4AC-BB11D4187DC8}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5EE374BC-1028-4607-B4AC-BB11D4187DC8}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5EE374BC-1028-4607-B4AC-BB11D4187DC8}.Release|Any CPU.Build.0 = Release|Any CPU
+ {CB05D019-8DE0-46C6-9BD4-72998ABA2492}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {CB05D019-8DE0-46C6-9BD4-72998ABA2492}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {CB05D019-8DE0-46C6-9BD4-72998ABA2492}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {CB05D019-8DE0-46C6-9BD4-72998ABA2492}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6DE5ED01-804C-49BF-8F70-DF032CC6C189}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6DE5ED01-804C-49BF-8F70-DF032CC6C189}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6DE5ED01-804C-49BF-8F70-DF032CC6C189}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6DE5ED01-804C-49BF-8F70-DF032CC6C189}.Release|Any CPU.Build.0 = Release|Any CPU
+ {BCC27BA8-EC55-4BED-8D2F-3FDC069D45B9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {BCC27BA8-EC55-4BED-8D2F-3FDC069D45B9}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {BCC27BA8-EC55-4BED-8D2F-3FDC069D45B9}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {BCC27BA8-EC55-4BED-8D2F-3FDC069D45B9}.Release|Any CPU.Build.0 = Release|Any CPU
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {6DE16ECE-AC89-4765-A200-878B5007109A}
+ EndGlobalSection
+EndGlobal
diff --git a/Client/APIComms/comms.cs b/Client/APIComms/comms.cs
new file mode 100644
index 0000000..57dc33b
--- /dev/null
+++ b/Client/APIComms/comms.cs
@@ -0,0 +1,50 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Client.Comms
+{
+ class comms
+ {
+ public static string SendGET(string addr){
+ HttpWebRequest req = WebRequest.CreateHttp(addr);
+
+ using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) {
+ using (Stream stream = resp.GetResponseStream()) {
+ using (StreamReader reader = new StreamReader(stream)) { return reader.ReadToEnd(); }
+ }
+ }
+
+ }
+
+ public static string SendPOST(string addr, string content){
+ HttpWebRequest req = WebRequest.CreateHttp(addr);
+
+ byte[] data = Encoding.UTF8.GetBytes(content);
+ req.Method = "POST";
+ req.ContentType = "application/json";
+ req.ContentLength = data.Length;
+
+ using (var stream = req.GetRequestStream()) { stream.Write(data, 0, data.Length); }
+ HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
+
+ return new StreamReader(resp.GetResponseStream()).ReadToEnd();
+ }
+
+ public static string SendDELETE(string addr){
+ HttpWebRequest req = WebRequest.CreateHttp(addr);
+ req.Method = "DELETE";
+
+ using (HttpWebResponse resp = (HttpWebResponse)req.GetResponse()) {
+ using (Stream stream = resp.GetResponseStream()) {
+ using (StreamReader reader = new StreamReader(stream)) { return reader.ReadToEnd(); }
+ }
+ }
+ }
+
+ }
+}
diff --git a/Client/Client.csproj b/Client/Client.csproj
new file mode 100644
index 0000000..8cb1201
--- /dev/null
+++ b/Client/Client.csproj
@@ -0,0 +1,12 @@
+
+
+
+ Exe
+ net5.0
+
+
+
+
+
+
+
diff --git a/Client/JSON/Classes.cs b/Client/JSON/Classes.cs
new file mode 100644
index 0000000..c686698
--- /dev/null
+++ b/Client/JSON/Classes.cs
@@ -0,0 +1,96 @@
+using System;
+using System.Collections.Generic;
+using System.Net;
+
+namespace Client.JSON
+{
+ public class Classes
+ {
+ [Serializable]
+ public class TaskArgs
+ {
+ public string OptionName { get; set; }
+ public string OptionValue { get; set; }
+ }
+
+ [Serializable]
+ public class ArgsRecv
+ {
+ public List Params { get; set; }
+ }
+
+ [Serializable]
+ public class ArgsData
+ {
+ //public string Taskname { get; set; }
+ public List Params { get; set; }
+ }
+
+ [Serializable]
+ public class TaskSend
+ {
+ public string Command { get; set; }
+ public string Args { get; set; }
+ public string File { get; set; }
+ //public byte[] File { get; set; }
+ }
+
+ [Serializable]
+ public class TaskSendOut
+ {
+ public string Id { get; set; }
+ public string Command { get; set; }
+ public string Args { get; set; }
+ public string File { get; set; }
+ //public byte[] File { get; set; }
+
+ }
+
+ [Serializable]
+ public class TaskRecvOut
+ {
+ public string Id { get; set; }
+ public string TaskOut { get;set; }
+ }
+
+ [Serializable]
+ public class StartListenerData
+ {
+ public string name { get; set; }
+ public int bindPort { get; set; }
+ }
+
+ [Serializable]
+ public class IData
+ {
+ public string id { get; set; }
+ public string hostName { get; set; }
+ public string user { get; set; }
+ public string procName { get; set; }
+ public string procID { get; set; }
+ public string integrity { get; set; }
+ public string arch { get; set; }
+ public string IPAddr { get; set; }
+ }
+
+ [Serializable]
+ public class ImplantData
+ {
+ public IData data { get; set; }
+ public string lastSeen { get; set; }
+ }
+
+ [Serializable]
+ public class Listeners
+ {
+ public string Name { get; set; }
+ }
+
+ [Serializable]
+ public class ListenerData
+ {
+ public string Name { get; set; }
+ public int bindPort { get; set; }
+ }
+ }
+}
diff --git a/Client/Models/Abstracts/Task.cs b/Client/Models/Abstracts/Task.cs
new file mode 100644
index 0000000..1665326
--- /dev/null
+++ b/Client/Models/Abstracts/Task.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+
+namespace Client.Models
+{
+ abstract class Task
+ {
+ public abstract string TaskName { get; }
+ public abstract string Desc { get; }
+ public abstract List