2009-12-27 07:31:47 +00:00
|
|
|
#!/usr/bin/env ruby
|
|
|
|
#
|
2010-05-03 17:13:09 +00:00
|
|
|
# $Id$
|
|
|
|
#
|
2009-12-27 07:31:47 +00:00
|
|
|
# This script lists each module by the default ports it uses
|
|
|
|
#
|
2010-05-03 17:13:09 +00:00
|
|
|
# $Revision$
|
|
|
|
#
|
2009-12-27 07:31:47 +00:00
|
|
|
|
|
|
|
msfbase = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__
|
|
|
|
$:.unshift(File.join(File.dirname(msfbase), '..', 'lib'))
|
|
|
|
|
|
|
|
require 'rex'
|
|
|
|
require 'msf/ui'
|
|
|
|
require 'msf/base'
|
|
|
|
|
|
|
|
# Initialize the simplified framework instance.
|
|
|
|
$framework = Msf::Simple::Framework.create
|
|
|
|
|
2010-02-09 23:20:15 +00:00
|
|
|
all_modules = $framework.exploits.merge($framework.auxiliary)
|
2010-02-09 23:39:27 +00:00
|
|
|
all_ports = {}
|
2010-02-09 23:20:15 +00:00
|
|
|
|
|
|
|
all_modules.each_module { |name, mod|
|
2009-12-27 07:31:47 +00:00
|
|
|
x = mod.new
|
|
|
|
ports = []
|
|
|
|
|
|
|
|
if x.datastore['RPORT']
|
|
|
|
ports << x.datastore['RPORT']
|
|
|
|
end
|
|
|
|
|
|
|
|
if(x.respond_to?('autofilter_ports'))
|
|
|
|
x.autofilter_ports.each do |rport|
|
|
|
|
ports << rport
|
|
|
|
end
|
|
|
|
end
|
|
|
|
ports = ports.map{|p| p.to_i}
|
|
|
|
ports.uniq!
|
|
|
|
ports.sort{|a,b| a <=> b}.each do |rport|
|
2010-02-09 23:39:27 +00:00
|
|
|
# Just record the first occurance.
|
|
|
|
all_ports[rport] = x.fullname unless all_ports[rport]
|
2009-12-27 07:31:47 +00:00
|
|
|
end
|
|
|
|
}
|
|
|
|
|
2010-02-09 23:39:27 +00:00
|
|
|
all_ports.sort.each { |k,v|
|
|
|
|
puts "%5s # %s" % [k,v]
|
|
|
|
}
|