
Ricerca BYOVD su Windows relativa a DCRCVDrv.sys e Alinubx.sys, reverse engineering delle loro primitive kernel, superfici IOCTL e opportunità di rilevamento.
Due driver firmati. Una pericolosa primitiva del kernel. 0xCr0ssCrush è un progetto di ricerca BYOVD per Windows che copre i driver DCRCVDrv.sys e Alinubx.sys abusati dal loader malware-as-a-service Cruciferra: le loro interfacce, le loro primitive del kernel, la loro provenienza e come rilevare e difendersi dal loro abuso.
Un harness di ricerca e pacchetto di analisi per due driver firmati vulnerabili:
Il repository riproduce la stessa tattica di ridondanza degli operatori: se un driver viene rifiutato dall'host, l'harness ripiega sull'altro.
Entrambi i driver sono stati documentati dal Threat Response Unit di eSentire in agosto 2026 come componenti del loader malware-as-a-service Cruciferra, che termina i processi AV/EDR prima della consegna del payload. Non sono primitive ipotetiche - sono abusate in the wild, sono firmate e nessuno dei due file era presente nella blocklist dei driver vulnerabili applicata da Microsoft al momento di questa ricerca.
Esecuzione in laboratorio controllato: selezione del driver, validazione dell'hash, risoluzione del target e il percorso IOCTL di terminazione su un host di laboratorio Windows 11. Vedi docs/reproduction.md per la procedura esatta.
0xCr0ssCrush non rivendica la scoperta dei driver vulnerabili sottostanti. Il suo contributo è un'implementazione di ricerca comparativa riproducibile che copre due driver Windows firmati recentemente abusati, le loro interfacce esposte, le primitive del kernel, la provenienza, il comportamento ambientale e le opportunità di rilevamento difensivo.
Durante la nostra ricerca non è stata identificata alcuna implementazione pubblicamente indicizzata che corrisponda a entrambe le interfacce dei driver.
Il supporto indipendente ai risultati:
Matrice completa e superficie IOCTL in docs/ioctl-reference.md.
Driver firmato di MOCOMSYS (DCRC) che contiene stringhe di callout WFP e un
monitor di processi figli. Il dispositivo esposto \\.\DCRCVDRV_U accetta un
IOCTL di terminazione dalla modalità utente. Analisi:
\\.\DCRCVDRV_U0x2205C0Dettagli in docs/dcrcv-analysis.md.
Driver firmato di CnCrypt con stringhe di callout WFP/ALE. Il dispositivo
esposto \\.\Alinubx accetta un IOCTL di terminazione che prende un PID e uno
stato di uscita.
\\.\Alinubx0x222024{ pid: DWORD, exit_status: DWORD }Dettagli in docs/alinubx-analysis.md.
Entrambi i driver espongono la stessa famiglia di primitive:
primitive_family: PROCESS_CONTROL
primitive: PROCESS_TERMINATION
La classificazione leggibile dalla macchina si trova in metadata/drivers.json così che ulteriori driver possano essere aggiunti senza ristrutturare il repository.
L'analisi completa del dispatch (inclusa la superficie aggiuntiva osservata di DCRCVDrv.sys) è in docs/ioctl-reference.md.
Ogni affermazione nel writeup porta un'etichetta di evidenza:
[CONFIRMED] directly established from code/disassembly
[CORROBORATED] observed here and independently supported
[INFERRED] likely but not fully proven
[UNRESOLVED] current evidence insufficient
Estratti di disassembly annotati (cattura degli import, dispatch IOCTL, helper di terminazione, stringhe) sono inclusi in analysis/ così che l'analisi possa essere ripercorsa.
Compila, poi non caricare mai un driver senza validazione dell'hash - l'harness stesso lo impone:
cargo build --release --target x86_64-pc-windows-gnu
crosscrush.exe -d -n "notepad.exe" # dry run, no IOCTLs
crosscrush.exe -n "notepad.exe" -k dcrc # single driver
Procedura passo-passo e igiene del laboratorio in docs/reproduction.md.
IOCTL accettato e processo terminato sono due osservazioni distinte; la guida alla riproduzione lo rende esplicito.
Sigma, YARA e indicazioni di telemetria:
detection/
|-- sigma/driver_load_win_cruciferra_byovd.yml
|-- yara/cruciferra_drivers.yar
+-- telemetry/README.md
Strategia di rilevamento in docs/detection.md.
Lo stato osservato è registrato per build in lab/test-matrix e contrassegnato come Verified / Not tested / Blocked / Unknown. Attualmente verificato su Windows 11 24H2 (build 26100) con HVCI disabilitato. Non vengono fatte rivendicazioni di compatibilità generali.
Specifico dello snapshot e riproducibile: docs/blocklist-status.md.
Provenienza specifica per hash per ogni campione nel repository:
metadata/
|-- drivers.json # driver registry
+-- samples.json # sample registry (acquisition, verification)
Validato rispetto alla documentazione da scripts/validate_metadata.py. Dettagli in docs/driver-provenance.md.
|-- README.md / WRITEUP.md / THREAT_MODEL.md / RESEARCH_NOTES.md
|-- CHANGELOG.md / SECURITY.md / LICENSE
|-- docs/ analysis, IOCTL reference, provenance, detection
|-- src/ research harness
|-- analysis/ annotated disassembly artifacts
|-- detection/ sigma / yara / telemetry
|-- lab/ test matrix and manifests
|-- metadata/ machine-readable driver and sample registry
|-- scripts/ metadata validation
+-- .github/ CI and release workflows
Questo progetto esiste per la ricerca e la difesa. Carica questi driver solo su sistemi che possiedi o che sei autorizzato a testare; caricarli altrove è illegale nella maggior parte delle giurisdizioni. Vedi SECURITY.md e THREAT_MODEL.md.