# Red Team Operator course code template # payload encryption with AES # # author: reenz0h (twitter: @sektor7net) import sys from Crypto.Cipher import AES from os import urandom import hashlib KEY = urandom(16) def pad(s): # o = lambda x: x if isinstance(x, int) else ord(x) # handle data being bytes not string return s + (AES.block_size - len(s) % AES.block_size) * chr(AES.block_size - len(s) % AES.block_size) def aesenc(plaintext, key): k = hashlib.sha256(key).digest() iv = 16 * '\x00' plaintext = pad(plaintext) cipher = AES.new(k, AES.MODE_CBC, iv) # o = lambda x: x if isinstance(x, int) else ord(x) # handle data being bytes not string return cipher.encrypt(bytes(plaintext)) try: o = lambda x: x if isinstance(x, int) else ord(x) # handle data being bytes not string plaintext = open(sys.argv[1], "rb").read() except: print("File argument needed! %s " % sys.argv[0]) sys.exit() ciphertext = aesenc(plaintext, KEY) print('AESkey[] = { 0x' + ', 0x'.join(hex(ord(x))[2:] for x in KEY) + ' };') print('payload[] = { 0x' + ', 0x'.join(hex(ord(x))[2:] for x in ciphertext) + ' };')