caching of payload info for dynamic modules to help streamline exploit process

git-svn-id: https://beef.googlecode.com/svn/trunk@651 b87d56ec-f9c0-11de-8c8a-61c5e9addfc9
This commit is contained in:
sussurro@happypacket.net
2011-01-02 04:08:33 +00:00
parent e09d0e2dbc
commit 1140b46502
3 changed files with 29 additions and 0 deletions

View File

@@ -38,6 +38,9 @@ require 'lib/model/http'
require 'lib/model/browserdetails'
require 'lib/model/distributedenginerules'
require 'lib/model/dynamiccommandinfo'
require 'lib/model/dynamicpayloadinfo.rb'
require 'lib/model/dynamicpayloads.rb'
require 'lib/crypto'

View File

@@ -1,3 +1,4 @@
require 'pp'
module BeEF
#
@@ -57,6 +58,22 @@ class Migration
end
end
end
payloads = msf.payloads()
payloads.each do |payload|
if not BeEF::Models::DynamicPayloads.first( :name => payload)
pl = BeEF::Models::DynamicPayloads.new( :name => payload)
pl.save
opts = msf.payload_options(payload)
opts.keys.each do |opt|
next if opts[opt]['advanced'] or opts[opt]['evasion']
pl.dynamic_payload_info.new(:name => opt, :description => opts[opt]['desc'], :required => opts[opt]['required'], :value => opts[opt]['default'])
end
pl.save
end
end
end
end

View File

@@ -77,6 +77,15 @@ module BeEF
res = self.call('module.options','exploit',name)
res
end
def payloads()
res = self.call('module.payloads')
res['modules']
end
def payload_options(name)
res = self.call('module.options','payload',name)
res
end
end
end