
Dirottamento di servizi driver validi per caricare driver arbitrari (firmati) abusando dei collegamenti simbolici nativi e dei percorsi NT.
DriverJack è uno strumento progettato per caricare un driver vulnerabile abusando di tecniche NTFS poco conosciute. Questi metodi bypassano la registrazione di un servizio di driver sul sistema dirottando un servizio esistente e falsificano anche il percorso dell'immagine presentato nell'evento di caricamento del driver. Per mascherare ulteriormente la presenza di un driver vulnerabile, l'attacco abusa anche di un bypass di sola lettura del filesystem emulato per sostituire il contenuto di un file driver su un ISO montato prima di caricarlo.
DriverJack abusa della possibilità di rimappare file montati su filesystem emulati in pagine RW per sovrascriverne il contenuto. Questo bypass RO è implementato in IoCdfsLib.
Una volta montato l'ISO, l'attacco procede selezionando un driver di servizio che può essere avviato o arrestato, oppure uno che può essere attivato, richiedendo privilegi amministrativi a meno che non sia configurato in modo errato.
Montaggio dell'ISO e selezione del driver
Dirottamento del percorso del driver
Questa tecnica sfrutta la capacità di un installer di accedere direttamente alla directory C:\Windows\System32\drivers, consentendo di posizionarvi un symlink dannoso. Il symlink viene elaborato dal sistema operativo con precedenza, portando al caricamento del driver dannoso quando il servizio viene riavviato.
Passaggi chiave:
NtLoadDriver normalizza il percorso NT del symlink.Sviluppato in collaborazione con jonasLyk del collettivo hacker Secret Club, questo metodo prevede il reindirizzamento del symlink NT \Device\BootDevice, parte del percorso da cui viene caricato un binario driver. Ciò consente di nascondere un rootkit all'interno del sistema.
Passaggi:
BootDevice.BootDevice per farlo puntare all'ISO montato.BootDevice.Questo metodo è stato ispirato dalle tecniche utilizzate nel progetto unDefender per disabilitare il servizio e il driver di Windows Defender. L'evento di caricamento del driver mostrerà comunque il percorso reale del driver caricato, che punta al mountpoint dell'ISO.
Sebbene ampiamente nota, questa tecnica è raramente utilizzata a causa del potenziale di instabilità del sistema. Comporta la modifica temporanea della lettera di unità assegnata alla BootPartition, ingannando il processo di caricamento del driver per accedere a un'unità diversa.
Se combinata con l'abuso del symlink NT spiegato in precedenza, questa tecnica può mascherare completamente il percorso del driver caricato, bypassando il rilevamento di SysMon e altri strumenti di monitoraggio.
DriverJack dimostra un altro modo non convenzionale per il caricamento di driver vulnerabili che sfrutta i filesystem emulati CDFS e le proprietà meno note dei symlink NTFS.
Questo progetto è concesso in licenza con la MIT License - vedere il file LICENSE per i dettagli.