针对本次浏览器输入\\.\globalroot\device\condrv\kernelconnect导致主机拒绝服务的情况,查明原因是由于condrv驱动的疏忽,在IRP_MJ_CREATE中判断调用源并拒绝后没有对IRP进行正常的完成请求流程操作。导致调用者仍然获得到condrv的设备对象,随后关闭该对象的时候进入IRP_MJ_CLEANUP分发函数,尝试释放资源,但在创建的时候由于被拒绝所以没有分配任何资源,导致释放资源时访问空指针最后系统BSOD。
定位到IRP_MJ_CREATE分发函数CdpDispatchCreate
可以看到将我们访问的目录遍历查找CdpObjecetCreationTable表,类似的目录有很多,出现漏洞的目录为KernelConnect
由此看出KernelConnect对应的IRP_MJ_CREATE分发函数为CdCreateKernelConnection