Files
metasploit-gs/lib/msf/core/modules/metadata/maps.rb
T

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

69 lines
1.5 KiB
Ruby
Raw Normal View History

2018-10-25 17:53:51 -05:00
#
# Core service class that provides storage of module metadata as well as operations on the metadata.
# Note that operations on this metadata are included as separate modules.
#
module Msf::Modules::Metadata::Maps
@mrefs = {}
@mports = {}
@mservs = {}
2021-03-16 10:27:26 -05:00
def all_exploit_maps
2018-10-25 17:53:51 -05:00
2018-11-12 17:31:43 -06:00
return @mrefs, @mports, @mservs if @mrefs && !@mrefs.empty?
2018-10-25 17:53:51 -05:00
2018-11-12 17:31:43 -06:00
mrefs = {}
mports = {}
mservs = {}
2018-10-25 17:53:51 -05:00
2018-11-12 17:31:43 -06:00
get_metadata.each do |exploit|
# expand this in future to be more specific about remote exploits.
next unless exploit.type == "exploit"
2018-11-12 17:31:43 -06:00
exploit.references.each do |reference|
next if reference =~ /^URL/
ref = reference
ref.upcase!
2018-10-25 17:53:51 -05:00
2021-03-16 10:27:26 -05:00
mrefs[ref] ||= Set.new
mrefs[ref] << exploit
2018-11-12 17:31:43 -06:00
end
if exploit.rport
rport = exploit.rport
2021-03-16 10:27:26 -05:00
mports[rport.to_i] ||= []
mports[rport.to_i] << exploit
2018-11-12 17:31:43 -06:00
end
2018-10-25 17:53:51 -05:00
2018-11-12 17:31:43 -06:00
unless exploit.autofilter_ports.nil? || exploit.autofilter_ports.empty?
exploit.autofilter_ports.each do |rport|
2021-03-16 10:27:26 -05:00
mports[rport.to_i] ||= Set.new
mports[rport.to_i] << exploit
2018-10-25 17:53:51 -05:00
end
2018-11-12 17:31:43 -06:00
end
2018-10-25 17:53:51 -05:00
2018-11-12 17:31:43 -06:00
unless exploit.autofilter_services.nil? || exploit.autofilter_services.empty?
exploit.autofilter_services.each do |serv|
2021-03-16 10:27:26 -05:00
mservs[serv] ||= Set.new
mservs[serv] << exploit
2018-10-25 17:53:51 -05:00
end
end
2018-11-12 17:31:43 -06:00
2018-10-25 17:53:51 -05:00
end
2018-11-12 17:31:43 -06:00
@mrefs = mrefs
@mports = mports
@mservs = mservs
2018-10-25 17:53:51 -05:00
return @mrefs, @mports, @mservs
end
private
def clear_maps
@mrefs = nil
@mports = nil
@mservs = nil
end
end