From f84fd984165cfa62503d5c3d3b1265d88ff49786 Mon Sep 17 00:00:00 2001 From: Dobin Rutishauser Date: Tue, 18 Jun 2024 15:25:37 +0200 Subject: [PATCH] feature: ui new project usable defaults --- app/views_project.py | 30 ++++++++++++++++-------------- model/settings.py | 16 ++++++++++++++++ 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/app/views_project.py b/app/views_project.py index f246f7d..61f1962 100644 --- a/app/views_project.py +++ b/app/views_project.py @@ -173,6 +173,18 @@ def add_project(): # new project? if storage.get_project(project_name) == None: + # Default values for web create + settings.init_payload_injectable( + "messagebox.bin", + "data/binary/exes/procexp64.exe", + "" + ) + settings.decoder_style = DecoderStyle.XOR_2 + settings.carrier_name = "alloc_rw_rx" + settings.carrier_invoke_style = CarrierInvokeStyle.BackdoorCallInstr + settings.payload_location = PayloadLocation.CODE + settings.fix_missing_iat = True + # add new project project = WebProject(project_name, settings) project.comment = comment @@ -180,20 +192,10 @@ def add_project(): # update project else: - settings.payload_path = PATH_SHELLCODES + request.form['shellcode'] - if request.form['shellcode'] == "createfile.bin": - settings.verify = True - settings.try_start_final_infected_exe = False - else: - settings.cleanup_files_on_exit = False - - if 'dllfunc' in request.form: - settings.dllfunc = request.form['dllfunc'] - - settings.inject_exe_in = request.form['exe'] - settings.inject_exe_out = "{}{}".format( - settings.main_dir, - os.path.basename(settings.inject_exe_in).replace(".exe", ".infected.exe") + settings.init_payload_injectable( + request.form['shellcode'], + request.form['exe'], + request.form.get('dllfunc', "") ) settings.fix_missing_iat = True if request.form.get('fix_missing_iat') != None else False diff --git a/model/settings.py b/model/settings.py index 507e644..3bd9355 100644 --- a/model/settings.py +++ b/model/settings.py @@ -46,3 +46,19 @@ class Settings(): self.main_shc_path = self.main_dir + "main.bin" self.inject_exe_out = "{}{}".format( self.main_dir, os.path.basename(self.inject_exe_in).replace(".exe", ".infected.exe")) + + def init_payload_injectable(self, shellcode, injectable, dll_func): + self.payload_path = PATH_SHELLCODES + shellcode + if shellcode == "createfile.bin": + self.verify = True + self.try_start_final_infected_exe = False + else: + self.cleanup_files_on_exit = False + + self.inject_exe_in = injectable + self.inject_exe_out = "{}{}".format( + self.main_dir, + os.path.basename(self.inject_exe_in).replace(".exe", ".infected.exe") + ) + + self.dllfunc = dll_func \ No newline at end of file