DriverJack是一个工具,旨在通过滥用鲜为人知的 NTFS 技术来加载易受攻击的驱动程序。这些方法通过劫持现有服务来绕过系统上驱动程序服务的注册,并且还欺骗驱动程序加载事件中显示的图像路径。为了进一步伪装存在易受攻击的驱动程序,该攻击还滥用模拟文件系统只读旁路,在加载 ISO 之前交换已安装 ISO 上的驱动程序文件的内容。
DriverJack 滥用将模拟文件系统上安装的文件重新映射到 RW 页面以覆盖其内容的可能性。此 RO 绕过是在IoCdfsLib中实现的。
安装 ISO 后,攻击将通过选择可启动或停止的服务驱动程序或可触发的服务驱动程序来进行,除非配置错误,否则需要管理权限。
ISO 安装和驱动程序选择
劫持驱动程序路径
此技术利用安装程序直接访问C:WindowsSystem32drivers
目录的能力,从而允许在此处放置恶意符号链接。符号链接由操作系统优先处理,导致服务重启时加载恶意驱动程序。
关键步骤:
NtLoadDriver
函数标准化符号链接的 NT 路径。该方法是与 Secret Club 黑客集体的 jonasLyk 合作开发的,涉及重定向DeviceBootDevice
NT 符号链接,该链接是加载驱动程序二进制文件的路径的一部分。这允许在系统中隐藏 Rootkit。
步骤:
BootDevice
符号链接目标。BootDevice
符号链接以指向已安装的 ISO。BootDevice
符号链接目标。此方法的灵感来自于 unDefender 项目中用于禁用 Windows Defender 服务和驱动程序的技术。加载驱动程序事件仍将显示正在加载的驱动程序的真实路径,指向 ISO 挂载点。
尽管该技术广为人知,但由于可能导致系统不稳定,因此很少使用。它涉及临时更改分配给BootPartition
驱动器号,欺骗驱动程序加载过程来访问不同的驱动器。当与前面解释的 NT Symlink Abuse 结合使用时,该技术可以完全伪装正在加载的驱动程序的路径,绕过 SysMon 和其他监控工具的检测。
DriverJack演示了另一种非常规的方法来加载易受攻击的驱动程序,该方法利用 CDFS 模拟文件系统和鲜为人知的 NTFS 符号链接属性。
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅许可证文件。