RAASnet: Ransomware-as-a-Service de código abierto

RAASnet es un proyecto escrito en Python que se creó para demostrar lo fácil que es desarrollar ransomware y ver cómo funciona. El script funciona en Windows, Linux y MacOS. En Windows se recomienda compilar payload.py en formato EXE para hacerlo más portátil.

Ni que decir tiene que el uso de esta herramienta debe limitarse a la investigación y análisis de este tipo de amenazas, nunca para dañar un tercero y/o con propósito lucrativo.

Instalación

Descarga e instala la última versión de Python 3.

Luego ejecuta:

git clone https://github.com/leonv024/RAASNet.git
pip3 install -r requirements.txt
python3 RAASNet.py

En Linux podríamos necesitar ejecutar los siguientes paquetes:

sudo apt install python3-tk python3-pil python3-pil.imagetk libgeoip1 libgeoip-dev geoip-bin

Registro

El primer paso evidentemente es registrarnos en la plataforma de RAAS (Ransomware-As-A-Service), en este caso contra la URL https://zeznzo.nl/req.py en el cloud de Google:

 

También podemos atacar directamente al servicio onion (Tor) del operador: hplqdv5fo3vw3fjyamyer7yuc7xtvtop2j3fipc7psf3pxvhoqjoqkid.onion

Si todo ha ido bien podremos loggearnos y nos encontraremos con el panel de control del afiliado:

 


Generando el payload

El siguiente paso es generar el payload que debe ser ejecutado en el equipo de la victíma. Si hacemos clic en el menú GENERATE PAYLOAD abriremos otro menú con algunas opciones interesantes:

 

Como por ejemplo cambiar el mensaje de extorsión o ransom:

 

o el método de cifrado, que en para el ejemplo mantendremos en PyCrypto. Si pulsamos el botón GENERATE la salida serán dos scripts en python: el payload y el decryptor correspondiente.

 

Si echamos un vistazo al código comprobaremos qué fácil resulta el proceso de cifrado y descifrado seleccionados:

payload.py:

cifrado

decryptor.py:

 

Como veis se trata de un cifrado en bloque (CBC) con AES. El mensaje debe tener un tamaño o longitud de 16 por lo que se añade un padding de ceros hasta completarlo. Por otro lado, además de la clave, AES también necesita un vector de inicialización (iv). Este vector de inicialización se genera con cada cifrado, y su propósito es producir diferentes datos cifrados para que un atacante no pueda hacer un criptoanálisis para inferir la clave o los datos en claro de los mensajes.

Ahora que tenemos el payload y el decryptor, si nuestra víctima usa Windows nos interesará compilar el script a EXE para hacerlo portable:

 

Ojo que ambos payloads, el script en Python y el exe son detectados por Windows Defender:

Por lo que si queréis que se ejecute en la máquina de la víctima tendréis que cambiar el encoder (por defecto morse) u ofuscarlo previamente mediante pyarmor u otra herramienta.

Tampoco olvidéis levantar el servidor que recibirá las claves en cuanto el ransomware la genere para cifrar los archivos:

 


Si todo ha ido bien (o mal para la víctima), el ransomware generará el típico mensaje de aviso/extorsión:

 

Todos los ficheros en la ruta especificada habrán sido cifrados y renombrados añadiendo .DEMON:

Y durante el proceso y tal como podéis observar en el código del payload.py la clave se habrá mandado al key collector:


y paralelamente al servidor del operador del RaaS: 


por lo que si acceder al panel debería poder verlo también:

 

Una vez que se negocie la extorsión correspondiente y la víctima obtenga la key podrá descifrar sus archivos fácilmente con el decryptor.

Lo primero que tendrá que hacer es seleccionar el tipo de cifrado oportuno:

Introducir la clave:

y seleccionar la ruta donde los archivos fueron cifrados:

 

Ojo aquí también porque si se introduce una key incorrecta los archivos a recuperar podrían corromperse y perderse:


Pero si todo ha ido bien, la victima recuperará sus archivos: 

Proyecto: https://github.com/leonv024/RAASNet

Comentarios

Publicar un comentario