Nota Importante
oWoWare ransomware desarrollado con fines educativos, simulación y demostración de ataques.
El autor no se hace responsable del mal uso de la misma.
oWoWare es un ransomware enfocado en servidores web, desarrollado en PHP. Proporciona una interfaz segura para la administración de la herramienta y la ejecución de comandos en la terminal. Con funcionalidades de cifrado y descifrado de archivos usando AES-256-CBC (Cipher Block Chaining con una clave de 256 bits)
, así como una terminal integrada, oWoWare está diseñado para realizar pruebas técnicas y de concientización sobre la protección ante ataques tipo ransomware.
POC Completo Video
Descripción
1. Cifrado de archivos:
- Tipo de cifrado usado:
- Se utiliza AES-256-CBC (Cipher Block Chaining con una clave de 256 bits), que es un algoritmo de cifrado simétrico.
- La clave de cifrado debe tener al menos 32 caracteres para garantizar la seguridad en este modo.
- El código también genera un IV (Vector de Inicialización) usando
openssl_random_pseudo_bytes()
que se concatena al contenido cifrado y se almacena junto al archivo.
|
|
- Proceso de cifrado:
- Cada archivo en el directorio especificado es cifrado, omitiendo archivos llamados
index.html
oindex.php
. - El contenido cifrado incluye el IV y el contenido cifrado concatenados. Este contenido cifrado reemplaza el archivo original.
- Cada archivo en el directorio especificado es cifrado, omitiendo archivos llamados
|
|
- Manejo de errores:
- El código maneja errores en la lectura de archivos, en la generación del IV, el proceso de cifrado, y la escritura de los archivos cifrados.
- Los errores se almacenan en un arreglo
$error_files
, y los archivos procesados con éxito se listan en$processed_files
.
2. Descifrado de archivos:
-
Proceso de descifrado:
- El IV se extrae del contenido cifrado y se usa para descifrar los archivos utilizando la misma clave simétrica
(AES-256-CBC)
. - Los archivos descifrados se reescriben con el contenido original, restaurando el archivo.
- El IV se extrae del contenido cifrado y se usa para descifrar los archivos utilizando la misma clave simétrica
-
Manejo de errores:
- Los errores en la lectura, descifrado y escritura de archivos se manejan de forma similar al proceso de cifrado.
|
|
3. Manejo del Login y Seguridad:
-
Autenticación:
- El sistema de login compara un nombre de usuario predefinido (
admin
) y una contraseña almacenada como un hash bcrypt. - El hash almacenado utiliza bcrypt con un costo de trabajo de 15, lo que garantiza que los intentos de fuerza bruta sean lentos.
- Se protege contra ataques de fuerza bruta al limitar los intentos de inicio de sesión a 5 fallidos antes de bloquear al usuario por 15 minutos.
- El sistema de login compara un nombre de usuario predefinido (
-
Tokens CSRF (Cross-Site Request Forgery):
- Para proteger contra ataques CSRF, se genera y valida un token CSRF en cada solicitud POST.
-
Regeneración de ID de sesión:
- Una vez que el usuario se autentica con éxito, se genera una nueva sesión con
session_regenerate_id(true)
para evitar ataques de fijación de sesión.
- Una vez que el usuario se autentica con éxito, se genera una nueva sesión con
|
|
4. Cifrado de Archivos según Directorio:
- El usuario puede especificar un directorio para cifrar o descifrar sus archivos. La ruta del directorio se valida antes de proceder.
- El código utiliza
RecursiveDirectoryIterator
yRecursiveIteratorIterator
para iterar sobre los archivos y directorios dentro del directorio objetivo.
5. Archivos creados al cifrar el directorio:
- Archivos
index.html
oindex.php
:- Se genera o actualiza un archivo
index.php
oindex.html
en cada directorio cifrado con un mensaje indicando que los archivos han sido cifrados. - El contenido del archivo incluye un mensaje que simula un ataque de ransomware, pidiendo $600 en Bitcoin a una dirección específica.
- Se genera o actualiza un archivo
|
|
6. Funcionalidad de la Terminal Integrada:
- El sistema tiene una terminal integrada que permite ejecutar comandos desde el navegador.
- Los comandos permitidos están restringidos por una lista blanca (
$allowed_commands
) que incluye comandos comunes de administración de sistemas comols
,cd
,whoami
,ping
, entre otros. - Los resultados de los comandos ejecutados se muestran en la interfaz de usuario en tiempo real.
- Cada comando ejecutado se registra en un archivo de log en el directorio
logs/comandos.log
.
|
|
7. Manejo de la Contraseña para Cifrar/Descifrar:
- El usuario debe proporcionar una clave de cifrado (mínimo de 32 caracteres) para cifrar o descifrar los archivos.
- Si la clave es menor a 32 caracteres, se muestra un error indicando que la clave es insuficiente.
|
|
Descargar oWoWare
⚠️ Advertencia: Uso en Ambientes Controlados
Descripción de la Herramienta
Esta herramienta está diseñada con fienes educativos su función principal es el cifrado y descifrado de archivos, así como para la ejecución de comandos en una terminal integrada. Proporciona funcionalidades avanzadas para manejar archivos a nivel de sistema, incluyendo la posibilidad de cifrar directorios completos utilizando el algoritmo AES-256-CBC. También incluye una interfaz para la ejecución de comandos directamente en el servidor.
Riesgos Potenciales
1. Cifrado de Archivos
El cifrado de archivos es una operación extremadamente delicada. Si las claves de cifrado se pierden o gestionan incorrectamente, los archivos pueden quedar irrecuperables. Además, cualquier mal uso del sistema de cifrado podría comprometer la integridad de los archivos o la seguridad de los datos.
2. Ejecución de Comandos
La terminal integrada permite la ejecución de una lista predefinida de comandos del sistema. Aunque se han tomado precauciones para limitar los comandos permitidos, un mal uso de esta funcionalidad podría llevar a la modificación o eliminación accidental de archivos del servidor.
Recomendaciones de Uso
1. Ambiente Controlado
Esta herramienta debe ser utilizada exclusivamente en entornos controlados, como servidores de desarrollo o entornos de prueba. Nunca debe ser implementada en servidores de producción o en sistemas accesibles al público sin las debidas precauciones de seguridad.
2. Acceso Restringido
Asegúrate de que solo usuarios con privilegios adecuados tengan acceso a esta herramienta. El uso de autenticación por sesión y control de intentos de login es fundamental para evitar accesos no autorizados.
3. Copia de Seguridad
Antes de ejecutar cualquier operación de cifrado o descifrado, realiza copias de seguridad de los archivos y directorios involucrados. El cifrado mal gestionado puede resultar en la pérdida total de datos si no se cuenta con la clave correcta para descifrar.
4. Seguridad de la Clave
Para el cifrado de archivos, la clave debe ser de al menos 32 caracteres. Nunca compartas esta clave en entornos inseguros, y utiliza canales cifrados si necesitas transmitirla a otro usuario.
Términos de Uso
- Responsabilidad: El desarrollador no se responsabiliza por daños, pérdidas o modificaciones no deseadas de archivos que puedan derivarse del uso inapropiado de esta herramienta.
- Propósito Educativo: Esta herramienta debe ser utilizada principalmente con fines educativos o en entornos cerrados de prueba.
Nota importante: Si decides usar esta herramienta en un entorno de producción, hazlo bajo tu propio riesgo y asegúrate de realizar auditorías exhaustivas de seguridad.