diff --git a/modules/Chisel/Chisel.cpp b/modules/Chisel/Chisel.cpp index b9e4654..d1a82e0 100644 --- a/modules/Chisel/Chisel.cpp +++ b/modules/Chisel/Chisel.cpp @@ -10,11 +10,6 @@ using namespace std; constexpr std::string_view moduleName = "chisel"; constexpr unsigned long moduleHash = djb2(moduleName); -#if defined(BUILD_TEAMSERVER) || defined(BUILD_TESTS) -const std::string ToolsDirectoryFromTeamServer = "../Tools/"; -#endif - - #define BUFSIZE 512 #ifdef _WIN32 @@ -140,7 +135,7 @@ int Chisel::init(std::vector &splitedCmd, C2Message &c2Message) if(!myfile) { - std::string newInputFile=ToolsDirectoryFromTeamServer; + std::string newInputFile=m_toolsDirectoryPath; newInputFile+=inputFile; myfile.open(newInputFile, std::ios::binary); inputFile=newInputFile; diff --git a/modules/Inject/Inject.cpp b/modules/Inject/Inject.cpp index 281f1e3..9c9a6ef 100644 --- a/modules/Inject/Inject.cpp +++ b/modules/Inject/Inject.cpp @@ -11,11 +11,6 @@ using namespace std; constexpr std::string_view moduleName = "inject"; constexpr unsigned long moduleHash = djb2(moduleName); -#if defined(BUILD_TEAMSERVER) || defined(BUILD_TESTS) -const std::string ToolsDirectoryFromTeamServer = "../Tools/"; -const std::string BeaconsDirectoryFromTeamServer = "../Beacons/"; -#endif - #ifdef _WIN32 #include @@ -139,7 +134,7 @@ int Inject::init(std::vector &splitedCmd, C2Message &c2Message) if(!myfile) { - std::string newInputFile=ToolsDirectoryFromTeamServer; + std::string newInputFile=m_toolsDirectoryPath; newInputFile+=inputFile; myfile.open(newInputFile, std::ios::binary); inputFile=newInputFile; @@ -147,7 +142,7 @@ int Inject::init(std::vector &splitedCmd, C2Message &c2Message) if(!myfile) { - std::string newInputFile=BeaconsDirectoryFromTeamServer; + std::string newInputFile=m_windowsBeaconsDirectoryPath; newInputFile+=inputFile; myfile.open(newInputFile, std::ios::binary); inputFile=newInputFile; diff --git a/modules/ModuleCmd/CommonCommand.hpp b/modules/ModuleCmd/CommonCommand.hpp index 9acb229..b4dab3e 100644 --- a/modules/ModuleCmd/CommonCommand.hpp +++ b/modules/ModuleCmd/CommonCommand.hpp @@ -25,11 +25,6 @@ const std::string CmdStatusSuccess = "Success"; const std::string CmdStatusFail = "Fail"; -#if defined(BUILD_TEAMSERVER) || defined(BUILD_TESTS) -const std::string ModulesDirectoryFromTeamServer = "../Modules/"; -#endif - - class CommonCommands { public: @@ -257,7 +252,13 @@ class CommonCommands input.open(inputFile, std::ios::binary); if(!input) { - std::string newInputFile = ModulesDirectoryFromTeamServer; + std::string newInputFile = m_linuxModulesDirectoryPath; + newInputFile+=inputFile; + input.open(newInputFile, std::ios::binary); + } + if(!input) + { + std::string newInputFile = m_windowsModulesDirectoryPath; newInputFile+=inputFile; input.open(newInputFile, std::ios::binary); } @@ -357,8 +358,35 @@ class CommonCommands return 0; } + int setDirectories( const std::string& teamServerModulesDirectoryPath, + const std::string& linuxModulesDirectoryPath, + const std::string& windowsModulesDirectoryPath, + const std::string& linuxBeaconsDirectoryPath, + const std::string& windowsBeaconsDirectoryPath, + const std::string& toolsDirectoryPath, + const std::string& scriptsDirectoryPath) + { + m_teamServerModulesDirectoryPath=teamServerModulesDirectoryPath; + m_linuxModulesDirectoryPath=linuxModulesDirectoryPath; + m_windowsModulesDirectoryPath=windowsModulesDirectoryPath; + m_linuxBeaconsDirectoryPath=linuxBeaconsDirectoryPath; + m_windowsBeaconsDirectoryPath=windowsBeaconsDirectoryPath; + m_toolsDirectoryPath=toolsDirectoryPath; + m_scriptsDirectoryPath=scriptsDirectoryPath; + + return 0; + }; + private: std::vector m_commonCommands; + + std::string m_teamServerModulesDirectoryPath; + std::string m_linuxModulesDirectoryPath; + std::string m_windowsModulesDirectoryPath; + std::string m_linuxBeaconsDirectoryPath; + std::string m_windowsBeaconsDirectoryPath; + std::string m_toolsDirectoryPath; + std::string m_scriptsDirectoryPath; }; diff --git a/modules/ModuleCmd/ModuleCmd.hpp b/modules/ModuleCmd/ModuleCmd.hpp index 41b5d6d..9036650 100644 --- a/modules/ModuleCmd/ModuleCmd.hpp +++ b/modules/ModuleCmd/ModuleCmd.hpp @@ -588,6 +588,25 @@ public: return m_hash; } + int setDirectories( const std::string& teamServerModulesDirectoryPath, + const std::string& linuxModulesDirectoryPath, + const std::string& windowsModulesDirectoryPath, + const std::string& linuxBeaconsDirectoryPath, + const std::string& windowsBeaconsDirectoryPath, + const std::string& toolsDirectoryPath, + const std::string& scriptsDirectoryPath) + { + m_teamServerModulesDirectoryPath=teamServerModulesDirectoryPath; + m_linuxModulesDirectoryPath=linuxModulesDirectoryPath; + m_windowsModulesDirectoryPath=windowsModulesDirectoryPath; + m_linuxBeaconsDirectoryPath=linuxBeaconsDirectoryPath; + m_windowsBeaconsDirectoryPath=windowsBeaconsDirectoryPath; + m_toolsDirectoryPath=toolsDirectoryPath; + m_scriptsDirectoryPath=scriptsDirectoryPath; + + return 0; + }; + virtual std::string getInfo() = 0; // if an error ocurre: @@ -602,6 +621,14 @@ protected: std::string m_name; unsigned long m_hash; + std::string m_teamServerModulesDirectoryPath; + std::string m_linuxModulesDirectoryPath; + std::string m_windowsModulesDirectoryPath; + std::string m_linuxBeaconsDirectoryPath; + std::string m_windowsBeaconsDirectoryPath; + std::string m_toolsDirectoryPath; + std::string m_scriptsDirectoryPath; + private: }; diff --git a/modules/Powershell/Powershell.cpp b/modules/Powershell/Powershell.cpp index edb993f..1befdf1 100644 --- a/modules/Powershell/Powershell.cpp +++ b/modules/Powershell/Powershell.cpp @@ -20,10 +20,6 @@ using namespace std; constexpr std::string_view moduleName = "powershell"; constexpr unsigned long moduleHash = djb2(moduleName); -#if defined(BUILD_TEAMSERVER) || defined(BUILD_TESTS) -const std::string ScriptsDirectoryFromTeamServer = "../Scripts/"; -#endif - #ifdef _WIN32 __declspec(dllexport) Powershell* PowershellConstructor() @@ -246,7 +242,7 @@ int Powershell::init(std::vector &splitedCmd, C2Message &c2Message) if(!myfile) { - std::string newInputFile=ScriptsDirectoryFromTeamServer; + std::string newInputFile=m_scriptsDirectoryPath; newInputFile+=inputFile; myfile.open(newInputFile, std::ios::binary); inputFile=newInputFile;