DriverJack est un outil conçu pour charger un pilote vulnérable en abusant de techniques NTFS moins connues. Ces méthodes contournent l'enregistrement d'un service de pilote sur le système en détournant un service existant, et usurpent également le chemin de l'image présenté dans l'événement Driver Load. Pour masquer davantage la présence d'un pilote vulnérable, l'attaque abuse également d'un contournement en lecture seule du système de fichiers émulé pour échanger le contenu d'un fichier de pilote sur une image ISO montée avant de le charger.
DriverJack abuse de la possibilité de remapper les fichiers montés sur des systèmes de fichiers émulés sur des pages RW pour écraser leur contenu. Ce contournement RO est implémenté dans IoCdfsLib .
Une fois l'ISO montée, l'attaque se poursuit en sélectionnant un pilote de service qui peut être démarré ou arrêté, ou un pilote qui peut être déclenché, nécessitant des privilèges administratifs à moins qu'il ne soit mal configuré.
Montage ISO et sélection du pilote
Détournement du chemin du pilote
Cette technique exploite la capacité d'un installateur à accéder directement au répertoire C:WindowsSystem32drivers
, permettant d'y placer un lien symbolique malveillant. Le lien symbolique est traité par le système d'exploitation en priorité, ce qui entraîne le chargement du pilote malveillant au redémarrage du service.
Étapes clés :
NtLoadDriver
normalise le chemin NT du lien symbolique. Développée en collaboration avec JonasLyk du collectif de hackers Secret Club, cette méthode consiste à rediriger le lien symbolique DeviceBootDevice
NT, partie du chemin à partir duquel un binaire de pilote est chargé. Cela permet de cacher un rootkit dans le système.
Mesures:
BootDevice
.BootDevice
pour pointer vers l'ISO monté.BootDevice
.Cette méthode s'inspire des techniques utilisées dans le projet unDefender pour désactiver le service et le pilote Windows Defender. L'événement Load Driver affichera toujours le chemin réel du pilote en cours de chargement, pointant vers le point de montage ISO.
Bien que largement connue, cette technique est rarement utilisée en raison du potentiel d’instabilité du système. Cela implique de modifier temporairement la lettre de lecteur attribuée à BootPartition
, trompant le processus de chargement du pilote pour accéder à un autre lecteur. Lorsqu'elle est combinée avec NT Symlink Abuse, expliqué précédemment, cette technique peut complètement masquer le chemin du pilote en cours de chargement, contournant la détection par SysMon et d'autres outils de surveillance.
DriverJack présente une autre méthode non conventionnelle de chargement de pilotes vulnérables qui exploite les systèmes de fichiers émulés CDFS et les propriétés de liens symboliques NTFS moins connues.
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.