BEIH/F:总线枚举接口劫持/伪造

来源:互联网 发布:虚拟定位ios软件 编辑:程序博客网 时间:2024/06/05 18:51

BEIH/F:总线枚举接口劫持/伪造

作者:Azy
日期:2009-5-31

    如果说Audio Mixer劫持(AMH)是一种较为被动的穿越,那么BEIH/F则是主动的攻击。通过BEIH/F可以穿越地上HIPS/主动防御产品加载驱动。
    该方法原理与amh是相同的,最后驱动的加载也是走ExpWorkerThread->PipDeviceActionWorker->IopLoadDriver这条路径,从而绕过了HIPS/主防产品的拦截。但触发攻击的方式完全不同。
    OS中存在一些音频驱动,它们的Start=3,并且Enum键下的值均为0。这些驱动是在系统需要的时候动态枚举并安装总线接口,然后加载相应的驱动文件。
    那么如何触发动态枚举安装接口并加载这些驱动呢?答案就是给swenum驱动发送一个特别的I/O Control Code来触发。在InputBuffer中填入欲加载驱动所在接口的GUID值,然后发I/O control Irp到swenum驱动,便可完成一次触发。内核在接到上述Irp后会扫描总线并动态进行接口安装,然后调用IoInvalidateDeviceRelations来触发最后的驱动安装。
    由于这一过程完全是人为可控,并且总线枚举的GUID信息全部存储在注册表中,因此我们可以事先篡改仿造HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\SW键及HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses下面对应的GUID值及其它接口信息。这样一来,便可成功完成一次BEIH/F攻击。

demo download


原创粉丝点击