57 lines
1.9 KiB
Ruby
57 lines
1.9 KiB
Ruby
# -*- coding: binary -*-
|
|
#
|
|
# This file is part of the Metasploit Framework and may be subject to
|
|
# redistribution and commercial restrictions. Please see the Metasploit
|
|
# Framework web site for more information on licensing and terms of use.
|
|
# https://metasploit.com/framework/
|
|
|
|
require 'msf/core/auxiliary'
|
|
|
|
module Msf
|
|
module Exploit::Remote::BrowserAutopwn
|
|
|
|
include Msf::Auxiliary::Report
|
|
|
|
# this is the magic
|
|
def self.included(base)
|
|
base.extend(AutopwnClassMethods)
|
|
end
|
|
|
|
module AutopwnClassMethods
|
|
def self.extended(base)
|
|
if base.const_defined? "Rank"
|
|
@@autopwn_rank = base.const_get("Rank")
|
|
else
|
|
@@autopwn_rank = RankingName.invert['manual']
|
|
end
|
|
end
|
|
|
|
def autopwn_opts
|
|
@autopwn_opts.dup
|
|
end
|
|
|
|
def autopwn_info(opts={})
|
|
# prefix_html and postfix_html are only used for noscript exploits
|
|
# vuln_test is only used for javascript exploits
|
|
@autopwn_opts = {}
|
|
@autopwn_opts[:ua_name] = opts[:ua_name] || nil
|
|
@autopwn_opts[:ua_minver] = opts[:ua_minver] || opts[:ua_minversion] || nil
|
|
@autopwn_opts[:ua_maxver] = opts[:ua_maxver] || opts[:ua_maxversion] || nil
|
|
@autopwn_opts[:ua_ver] = opts[:ua_ver] || opts[:ua_version] || nil
|
|
@autopwn_opts[:classid] = opts[:classid] || opts[:clsid] || nil
|
|
@autopwn_opts[:method] = opts[:method] || opts[:method] || nil
|
|
@autopwn_opts[:javascript] = (opts[:javascript].nil?) ? true : opts[:javascript]
|
|
@autopwn_opts[:os_name] = opts[:os_name] || nil
|
|
@autopwn_opts[:os_ver] = opts[:os_ver] || opts[:os_version] || nil
|
|
@autopwn_opts[:postfix_html] = opts[:postfix_html] || nil
|
|
@autopwn_opts[:prefix_html] = opts[:prefix_html] || nil
|
|
@autopwn_opts[:vuln_test] = opts[:vuln_test] || opts[:vulntest] || ""
|
|
|
|
@autopwn_opts[:rank] = opts[:rank] || @@autopwn_rank
|
|
end
|
|
end
|
|
|
|
end
|
|
end
|
|
|