Bläddra i källkod

Create aesencrypt.py

assume-breach 3 år sedan
förälder
incheckning
e2b0811198
1 ändrade filer med 36 tillägg och 0 borttagningar
  1. 36 0
      Harriett/Harriet/aesencrypt.py

+ 36 - 0
Harriett/Harriet/aesencrypt.py

@@ -0,0 +1,36 @@
+# 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 <raw payload file>" % 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) + ' };')