DeathRansom: un ransomware escrito en Python con técnicas de evasión

DeathRansom del brasileño ReddyyZ es un ransomware desarrollado en python con fines educativos que implementa algunas sencillas pero interesantes técnicas de evasión. Primero, el script verifica si está en un sandbox, depurador, vm, etc., e intenta bypassearlo. Luego cifra todos los archivos que comienzan con el directorio definido en la línea 60 en deathransom.py. Después descarga el script de solicitud de rescate, deshabilita cmd, taskmanager y las herramientas de registro. Y comienza el contador para eliminar los archivos.

Técnicas bypass
  • Anti-Disassembly: Crea varias variables para intentar dificultar el desensamblado.
  • Anti-Debugger: Comprueba si un depurador está activo utilizando la función ctypes: windll.kernel32.IsDebuggerPresent()
  • Anti-Vm: Comprueba si la mac de la máquina es la misma que la mac vms estándar.
  • Anti-Sandbox:
    •  Sleep-Acceleration: Algunos sandboxes aceleran las funciones de sleep, esta función verifica si no ha ocurrido nada fuera de lo común.
    •  Sandbox en proceso: comprueba si hay un sandbox en los procesos en ejecución
    •  Display-Prompt: Muestra un mensaje, si el usuario interactúa con la ventana emergente, se ejecutará el malware.
    •  Idle-Time: realiza un sleep en un while y luego un proceed. Algunos sandboxes esperan un while y dejan de funcionar, eso intenta evitarlo.
    •  Check-Click: Si el usuario no hace clic la cantidad de veces necesaria, el malware no se ejecutará.
    •  Check-Cursor-Pos: Si el usuario no mueve el mouse un tiempo predeterminado, el malware no se ejecutará.
Instalación
  • Requisitos:
pip install -r requirements.txt
python3 -m pip install PyQt5

  • Claves: Generar las claves, subir la clave pública a pastebin, copiar el enlace en raw y cambiar el site en la línea 7 en deathransom.py python generate_key.py
python generate_key.py
  • Transformar time_script.py y main.py (ubicado en Ransom Request) a exe:
(pyinstaller en python2) pyinstaller --onefile --windowed time_script.py
(pyinstaller en python3) pyinstaller --onefile --windowed main.py
  • Subir los scripts a cualquier servicio de alojamiento de archivos y cambiar los enlaces en las líneas 28 y 31 en deathransom.py
  • Pasar deathransom.py a exe usando pyinstaller en la versión python2 y enjoy!
Edición de petición de rescate

Para editar el mensaje de petición de rescate, es necesario instalar PySide2. Abrir el archivo main.ui y editar lo que se quiera.

Demo


Proyecto: https://github.com/ReddyyZ/DeathRansom

Comentarios