Path: blob/master/lib/msf/core/modules/external.rb
19535 views
# -*- coding: binary -*-1# Namespace for loading external Metasploit modules23class Msf::Modules::External45autoload :Bridge, 'msf/core/modules/external/bridge'6autoload :Message, 'msf/core/modules/external/message'7autoload :CLI, 'msf/core/modules/external/cli'89attr_reader :path1011def meta12@meta ||= describe13end1415def initialize(module_path, framework: nil)16self.path = module_path17self.framework = framework18end1920def exec(method: :run, args: {}, &block)21req = Message.new(method)22req.params = args.dup2324b = Bridge.open(self.path, framework: self.framework).exec(req)2526if block27begin28while m = b.messages.pop29block.call m30end31ensure32b.close33end34return b.success?35else36return b37end38end3940protected4142attr_writer :path43attr_accessor :framework4445def describe46exec method: :describe do |msg|47return msg.params if msg.method == :reply48end49return nil50end51end525354