Quick script to show what ports can be targeted by what exploits

git-svn-id: file:///home/svn/framework3/trunk@7993 4d416f70-5f16-0410-b530-b9f4589650da
This commit is contained in:
HD Moore 2009-12-27 07:31:47 +00:00
parent 166489ad5f
commit dd92789a52
1 changed files with 65 additions and 0 deletions

65
tools/module_ports.rb Executable file
View File

@ -0,0 +1,65 @@
#!/usr/bin/env ruby
#
# This script lists each module by the default ports it uses
#
msfbase = File.symlink?(__FILE__) ? File.readlink(__FILE__) : __FILE__
$:.unshift(File.join(File.dirname(msfbase), '..', 'lib'))
require 'rex'
require 'msf/ui'
require 'msf/base'
def lic_short(l)
if (l.class == Array)
l = l[0]
end
case l
when MSF_LICENSE
'MSF'
when GPL_LICENSE
'GPL'
when BSD_LICENSE
'BSD'
when ARTISTIC_LICENSE
'ART'
else
'UNK'
end
end
Indent = ' '
# Initialize the simplified framework instance.
$framework = Msf::Simple::Framework.create
tbl = Rex::Ui::Text::Table.new(
'Header' => 'Licensed Modules',
'Indent' => Indent.length,
'Columns' => [ 'License','Type', 'Name' ]
)
licenses = {}
$framework.exploits.each_module { |name, mod|
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|
puts "#{rport}\t#{x.fullname}"
end
}