
RAASnet es un proyecto escrito en Python que se creó para demostrar lo fácil que es desarrollar ransomware y estudiar o analizar su funcionamiento. El script se encuentra disponible para Microsoft Windows, GNU/Linux y MacOS. En Microsoft Windows se recomienda compilar payload.py en formato EXE para hacerlo más portátil.
Principales características
- Generar una carga útil de ransomware
- Con o sin carga útil GUI
- Funciona en Microsoft Windows, GNU/Linux y MacOS
- Encriptación súper rápida con PyCrypto
- Compilación a EXE, APP o ejecutable Unix/Linux
- Icono personalizado para su carga útil EXE
- Recibe las claves de las víctimas
- Desencriptar archivos
- Modo de demostración (la carga útil no encripta nada)
- Modo de pantalla completa (la advertencia ocupa toda la pantalla)
- Mensaje de advertencia personalizado para su víctima
- Imagen personalizada en su carga útil
- Modo fantasma (cambia el nombre añadiendo la extensión .DEMON en lugar de cifrar los archivos)
- Múltiples métodos de encriptación
- Seleccione las extensiones de los archivos a los que va dirigido
- Decida si el payload debe autodestruirse (sólo en modo consola)
- Decidir la unidad de destino para el cifrado (directorio de trabajo)
- Acceso al servidor verificado a través del reenvío de puertos VPN
- Codificar la carga útil como código Morse
Instalación
Primero, descargamos e instalamos la última versión de Python 3. Posteriormente, procedemos con la ejecución de los siguientes comandos:
git clone https://github.com/leonv024/RAASNet.git
pip3 install -r requirements.txt
python3 RAASNet.py
Cabe mencionar que, como anotación importante, en GNU/Linux podríamos necesitar instalar python3-tk, python3-pil, python3-pil.imagetk, libgeoip1, libgeoip-dev y 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, por lo cual es prudente utilizar información totalmente falsa ingresando datos que no se relacionen de ninguna manera con nuestra persona:
También podemos atacar directamente al servicio onion (TOR) del operador: https://hplqdv5fo3vw3fjyamyer7yuc7xtvtop2j3fipc7psf3pxvhoqjoqkid.onion
Si todo marcha bien, ingresaremos nuestras credenciales 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, entre otras opciones podemos cambiar el mensaje de extorsión o ransom:
O también el método de cifrado, que en la presente demostración mantendremos como 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:
Cifrado con payload.py:
Descifrado con decryptor.py:
Como podemos observar, se trata de un cifrado en bloque (CBC) con AES. El mensaje debe tener un tamaño o longitud de 16 bits, por lo cual se rellena con ceros hasta completarlo. No obstante, además de la clave, AES también necesita un vector de inicialización (Initialization Vector). 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 utiliza Microsoft Windows nos interesará compilar el script a EXE para hacerlo portable:
Sin embargo, debemos recordar que ambos payloads, el script en Python y el EXE, son detectados por Windows Defender:
De esta forma, si queremos que se ejecute en la máquina de la víctima tendremos que cambiar el encoder (por defecto morse) u ofuscarlo previamente mediante pyarmor u otra herramienta.
Tampoco olvidemos levantar el servidor que recibirá las claves en cuanto el ransomware la genere para cifrar los archivos:
Si todo sigue bien, 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 la extensión .DEMON:
Por otra parte, como podremos apreciar, en el código del payload.py la clave se enviará al recolector de claves:
Y, del mismo modo, al servidor del operador del RaaS:
De esta manera, el susodicho podrá verlo sin problemas en el panel de control al momento de acceder a su cuenta:
Una vez que se negocie la extorsión correspondiente y la víctima obtenga la clave, 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:
Algo importante que debemos tener en cuenta es que si se introduce una clave incorrecta los archivos a recuperar podrían corromperse y perderse:
Pero si todo marcha correctamente, la victima recuperará sus archivos:
Repositorio del proyecto en Github: RaasNet
Los comentarios están cerrados.