
Ransomware completamente indetectable y evasivo escrito en Rust, utilizando una técnica BYOVD para deshabilitar soluciones AV/EDR en los sistemas infectados.
https://github.com/user-attachments/assets/5a1fc9b5-a647-41f6-a152-7b9d97381adc
Este proyecto demuestra cómo un controlador legítimo y firmado puede ser armado para evadir defensas e implementar ransomware simulando un ciberataque real.
🚨 Probado en Windows 11 Pro 24H2. Completamente indetectable a partir de la fecha de lanzamiento inicial: 23-02-2026.
Evasión Bypass de UAC BitDefender ✅ ✅ Kaspersky ✅ ✅ MS Defender ✅ ❌
VEN0m emplea la técnica clásica BYOVD, pero a diferencia de AV-EDR-KILLER, que explota un controlador vulnerable que expone la función del kernel ZwTerminateProcess a usuarios sin privilegios, aprovecha un controlador vulnerable incluido en IObit Malware Fighter v12.1.0, lo cual es bastante irónico ya que lo estamos usando para evadir.
El controlador en cuestión es IMFForceDelete.sys, que expone un IOCTL que permite a usuarios sin privilegios eliminar archivos arbitrariamente. Esta vulnerabilidad se rastrea como CVE-2025-26125, y el controlador aún no está en la lista de bloqueo de Microsoft.
Para desencadenar la eliminación arbitraria, simplemente invocamos una llamada API DeviceIoControl con el código IOCTL 0x8016E000, un puntero void largo a una cadena Unicode ancha que representa el archivo objetivo y la longitud total multiplicada por 2 (ya que wstr_file.len() devuelve el número de elementos u16 y cada elemento ocupa 2 bytes) convertido a u32 para ajustarse al parámetro DWORD de la convención de llamada API.
> DeviceIoControl(hDriver, 0x8016E000, wstr_file.as_ptr() as LPVOID, (wstr_file.len() * 2) as u32, ptr::null_mut(), 0, &mut bytes_returned, ptr::null_mut())
[!NOTE]
+ ❓ ¿Por qué falló AV-EDR-Killer contra ciertos productos AV/EDR?
La idea principal era explotar un controlador que tiene IOCTLs sin protección que exponen la función del kernel
ZwTerminateProcess, lo que otorga a cualquier aplicación en modo usuario capacidades de terminación a nivel de kernel. La debilidad de esta técnica es que algunos productos AV/EDR enganchan dicha función y pueden interceptar las llamadas a ella.Otra técnica notable fue explotar primitivas de lectura/escritura arbitrarias de un controlador vulnerable para parchear la memoria y saltar a una función de terminación aún más potente,
PsTerminateProcess, que no es exportada por el propiontoskrnl.exe. Esto también es muy sospechoso ya que las defensas del host escanean constantemente la memoria. Referencia : https://securelist.com/av-killer-exploiting-throttlestop-sys/117026/
Simplemente destruimos las carpetas de instalación y los ejecutables en el disco. ¡Así de simple!
Esto parece un punto ciego para la mayoría de los productos de defensa, ya que atacamos archivos en disco en lugar de manipular la memoria o realizar llamadas sospechosas. Usando nuestro controlador IMFForceDelete.sys, podemos forzar la eliminación de archivos bloqueados con altos privilegios. Atacar directamente un producto AV o EDR suena contradictorio, ya que los atacantes suelen buscar sigilo para evadir defensas en lugar de enfrentarlas.
Al usar esta técnica, corrompimos los procesos EDR/AV en ejecución hasta que se rompieron lentamente y dejaron de funcionar correctamente, lo que abrió la puerta para causar estragos e implementar nuestra carga útil elegida, VEN0m.
const TARGETS: &[&str] = &[r"C:\Program Files (x86)\Kaspersky Lab", r"C:\Program Files\Bitdefender", r"C:\Program Files\Bitdefender Agent", r"C:\Program Files\Windows Defender",];
Para evitar las indicaciones de UAC, secuestramos el flujo de ejecución de un binario firmado de Microsoft Slui.exe que admite la autoelevación sin activar una indicación cuando se invoca con el verbo runas bajo un contexto administrativo.
La explotación central ocurre cuando Slui.exe intenta abrir una clave de registro inexistente en HKCU\Software\Classes\Launcher.SystemSettings\Shell\Open\Command. Nos aprovechamos de esta falla creando la clave faltante e insertando DelegateExecute que apunta a nuestra carga útil actual para delegar la ejecución. Luego, desencadenamos la ejecución de Slui.exe con una llamada API ShellExecuteW con el verbo runas, lo que resulta en un bypass exitoso de UAC. La implementación completa se puede encontrar en /src/uac.rs.
[!IMPORTANT] No estoy seguro de si esto es una vulnerabilidad que deba ser reportada. Si es así, no dudes en contactarme a través del correo electrónico indicado abajo.
Dado que VEN0m está evitando UAC y se ejecuta con integridad alta, automatiza la extracción del controlador incrustado en la carpeta temporal y la creación de un servicio del kernel con nombres disfrazados como MicrosoftUpdate11.01. Incluye verificaciones muy útiles para iniciar automáticamente el servicio si está detenido o para abstenerse de crearlo si ya existe.
Después de neutralizar las defensas del host, puedes elegir la técnica de persistencia que quieras.
Opté por una técnica simple de Winlogon Userinit, que aprovecha la clave de registro Userinit en HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon. Por defecto, esta clave especifica userinit.exe como valor, que se ejecuta al iniciar sesión del usuario para inicializar el entorno del usuario.
Sin embargo, lo secuestramos añadiendo la ruta de nuestra carga útil separada por una coma del userinit.exe legítimo, mientras también dejamos una copia del malware en %LOCALAPPDATA%.
El ransomware escanea las unidades especificadas en busca de archivos con extensiones objetivo mientras filtra contra una lista de exclusión. Los archivos coincidentes se cifran usando una clave fija de 32 bytes, y sus extensiones se cambian a .vnm.
Puedes personalizar el comportamiento modificando las siguientes constantes:
const KEY: &[u8; 32] = b"G7m9Xq2vR4pL8bF1sW0cZ6kD3jN5yH8u";
const XClUSIONS: &[&str] = &["Windows", "Program Files", "Program Files (x86)", "ProgramData", "$Recycle.Bin", "All Users"];
const XTENSIONS: &[&str] = &["pdf", "doc", "xlms", "png", "jpg", "jpeg", "txt", "mp4"];
const DRV: &[&str] = &["C:\\", "D:\\", "E:\\", "F:\\"];
Al finalizar el cifrado, VEN0m cambia el fondo de pantalla del escritorio y coloca una nota de rescate ejecutable en el escritorio. También registra una tarea programada que se ejecuta cada un par de minutos para lanzar la interfaz gráfica de la nota, que muestra una calavera llamativa ☠️.
/assets/wallpaper.jpg con tu propia imagen./src/task.rsVEN0m también incluye una herramienta de descifrado Antid0te.exe🧪 que escanea archivos con la extensión .vnm e invierte la rutina de cifrado usando la misma clave especificada para el cifrado.
[!WARNING] Es importante guardar tu clave de cifrado para poder descifrar tus archivos usando el descifrador Antid0te.exe.