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:
@@ -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'
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user