diff --git a/app/views_project.py b/app/views_project.py index 83abf43..0366dfa 100644 --- a/app/views_project.py +++ b/app/views_project.py @@ -45,7 +45,7 @@ def projects_route(): def project(name): project_setting = storage.get_project_setting(name) if project_setting == None: - logger.error("Project {} not found".format(name)) + logger.error("Project {} not found".format(name))<<<<< return redirect("/projects", code=302) project_setting.print() @@ -190,6 +190,7 @@ def add_project(): settings.carrier_invoke_style = CarrierInvokeStyle.BackdoorCallInstr settings.payload_location = PayloadLocation.CODE settings.fix_missing_iat = True + settings.plugin_antiemulation = "sirallocalot" # add new project settings.project_comment = comment @@ -253,7 +254,7 @@ def build_project(project_name): project_settings.try_start_final_infected_exe = False project = Project(project_settings) - prepare_project(project_name, project.settings) + prepare_project(project_name) thread = Thread(target=supermega_thread, args=(project.settings, )) thread.start() thread_running = True diff --git a/helper.py b/helper.py index bbc64f2..8a996a8 100644 --- a/helper.py +++ b/helper.py @@ -57,7 +57,7 @@ def run_exe(exefile, dllfunc="", check=True): def run_process_checkret(args, check=True): - logger.info(" > Run process: {}".format(" ".join(args))) + logger.info(" > Run process: {}".format(" ".join(args))) ret = subprocess.CompletedProcess("", 666) try: diff --git a/model/payload.py b/model/payload.py index 9f11e9a..f81d520 100644 --- a/model/payload.py +++ b/model/payload.py @@ -13,7 +13,6 @@ class Payload(): def init(self) -> bool: - logger.info("-[ Payload: {}".format(self.payload_path)) if not os.path.exists(self.payload_path): logger.error("Payload file does not exist: {}".format(self.payload_path)) return False @@ -21,6 +20,7 @@ class Payload(): with open(self.payload_path, 'rb') as f: self.payload_data = f.read() - logger.info(" Size: {} bytes".format(len(self.payload_data))) + logger.info("-[ Payload: {} ({} bytes)".format( + self.payload_path, len(self.payload_data))) return True diff --git a/model/project.py b/model/project.py index 3c84a6c..07c54ac 100644 --- a/model/project.py +++ b/model/project.py @@ -36,11 +36,10 @@ class Project(): logger.info("Injectable Path: {}".format(self.injectable.exe_filepath)) -def prepare_project(project_name, settings): - src = "{}{}/".format(PATH_CARRIER, settings.carrier_name) +def prepare_project(project_name): dst = "{}{}/".format(PATH_WEB_PROJECT, project_name) - logger.info("-[ Cleanup project: {}".format(project_name)) + logger.info("-[ Prepare and cleanup project: {}".format(project_name)) if not os.path.exists(dst): os.makedirs(dst) diff --git a/phases/injector.py b/phases/injector.py index 444d4c1..a73bb6f 100644 --- a/phases/injector.py +++ b/phases/injector.py @@ -114,8 +114,10 @@ class Injector(): exe_out = self.settings.get_inject_exe_out() carrier_invoke_style: CarrierInvokeStyle = self.settings.carrier_invoke_style - logger.info("-[ Injecting Carrier".format()) + logger.info("-[ Injecting Carrier into injectable".format()) logger.info(" Injectable: {} -> {}".format(exe_in, exe_out)) + logger.info(" Implant IAT fixup if necessary: {}".format(self.settings.fix_missing_iat)) + # Patch IAT (if necessary and wanted) self.injectable_patch_iat() @@ -197,7 +199,7 @@ class Injector(): def injectable_patch_iat(self): - logger.info(" Checking if IAT entries required by carrier are available") + #logger.info(" Checking if IAT entries required by carrier are available") iatRequests = self.injectable.get_all_iat_requests() iatMissing = [] @@ -212,7 +214,7 @@ class Injector(): iatRequest.name)) iatMissing.append(iatRequest) - logger.info(" IAT entries missing: {}".format(len(iatMissing))) + logger.info(" IAT entries missing in injectable for carrier: {}".format(len(iatMissing))) for iatRequest in iatMissing: # Not available, check if we can patch it iat_name = self.superpe.get_replacement_iat_for("KERNEL32.dll", iatRequest.name) @@ -272,7 +274,7 @@ class Injector(): return # insert data - logger.info(" Inject Carrier data into injectable .rdata/.text") + logger.info(" Inject Carrier-data into injectable") for datareuse_fixup in reusedata_fixups: logger.debug(" Handling DataReuse Fixup: {} (.code: {})".format( datareuse_fixup.string_ref, datareuse_fixup.in_code)) diff --git a/phases/templater.py b/phases/templater.py index d8cfb35..d0db508 100644 --- a/phases/templater.py +++ b/phases/templater.py @@ -28,7 +28,7 @@ def create_c_from_template(settings: Settings, payload_len: int): src = "{}{}/".format(PATH_CARRIER, settings.carrier_name) dst = "{}{}/".format(PATH_WEB_PROJECT, settings.project_name) - logger.info("-[ Carrier create Template: {}".format( + logger.info("-[ Create Carrier: {}".format( settings.project_c_path)) # check that source directory exists @@ -43,14 +43,13 @@ def create_c_from_template(settings: Settings, payload_len: int): logger.info(" Carrier: {}".format( settings.carrier_name)) - logger.info(" Carrier: Code into: {}".format( + logger.info(" Store payload in: {}".format( settings.payload_location.value)) - logger.info(" Carrier: Decoder: {}".format( + logger.info(" Use Decoder: {}".format( settings.decoder_style)) - logger.info(" Carrier: Invoker: {}".format( + logger.info(" Use Invoker: {}".format( settings.carrier_invoke_style.value)) - - logger.info(" Carrier AntiEmulation: {}".format( + logger.info(" Use AntiEmulation: {}".format( settings.plugin_antiemulation) ) if settings.plugin_guardrail != "none": diff --git a/supermega.py b/supermega.py index 08b2505..e135ab7 100644 --- a/supermega.py +++ b/supermega.py @@ -73,13 +73,6 @@ def main(): settings.plugin_guardrail_data_key = args.guardrail_key settings.plugin_guardrail_data_value = args.guardrail_value - logger.info("-( Config: Implant IAT fixup if necessary: {}".format(settings.fix_missing_iat)) - if settings.plugin_guardrail != "none": - logger.info("-( Config: Guardrails Plugin: {} {}/{}".format( - settings.plugin_guardrail, - settings.plugin_guardrail_data_key, - settings.plugin_guardrail_data_value)) - settings.decoder_style = args.decoder settings.carrier_name = args.carrier if args.payload_location == ".code": @@ -118,7 +111,7 @@ def start(settings: Settings) -> int: config.make_encryption_keys() # Prepare the project: copy all files to projects// - prepare_project(settings.project_name, settings) + prepare_project(settings.project_name) # Do the thing and catch the errors ret = False