module PWN::Plugins::Metasploit

def self.authors

def self.authors
st.pentest@0dayinc.com>

def self.connect(opts = {})

def self.connect(opts = {})
] && File.exist?(opts[:yaml_conf])
.load_file(opts[:yaml_conf].to_s.strip.chomp.scrub)
etch('PWN_ROOT') if ENV.fetch('PWN_ROOT')
NV.fetch('PWN_PROVIDER') if ENV.fetch('PWN_PROVIDER')
.load_file("#{pwn_root}/etc/userland/#{pwn_provider}/metasploit/vagrant.yaml")
l_conf['msfrpcd_host'].to_s
port'].to_i
nf['username'].to_s
nf['password'].to_s
::RPC::Client.new
:host] = msfrpcd_host
:port] = port
(username, password)
cd_conn] = msfrpcd_conn
rpcd_conn.call('console.create')
se(msfrpcd_resp.to_json, symbolize_names: true)
on] = session
 => e
e msfrpcd daemon running on #{msfrpcd_host}?"

def self.console_exec(opts = {})

)
cmd: 'required - msfconsole command string or array of strings'
console_obj: 'required - console_obj object returned from #connect method',
console_obj = PWN::Plugins::Metasploit.console_exec(
Supported Method Parameters::
def self.console_exec(opts = {})
[:console_obj]
eue_console_cmd(console_obj: console_obj, cmd: cmd)
_cmd| console_obj = queue_console_cmd(console_obj: console_obj, cmd: this_cmd) }
d parameter must be a String or Array object - object is currently #{cmd.class}"
 => e

def self.disconnect(opts = {})

)
console_obj: 'required - console_obj returned from #console_exec method to terminate'
console_obj = PWN::Plugins::Metasploit.disconnect(
Supported Method Parameters::
def self.disconnect(opts = {})
[:console_obj]
sole_obj[:msfrpcd_conn]
le_obj[:session][:id]
'console.destroy', console_id)
'auth.logout', msfrpcd_conn.token)
 => e

def self.help

def self.help
self}.connect(
tional -  path to userland yaml (defaults to $PWN_ROOT/etc/userland/$PWN_PROVIDER/metasploit/vagrant.yaml)'
self}.console_exec(
required - msfrpcd_conn object returned from #connect method',
 - msfconsole command string or array of strings'
self}.disconnect(
required - msfrpcd_conn object returned from #connect method'

def self.queue_console_cmd(opts = {})

)
cmd: 'required - msfconsole command string or array of strings'
console_obj: 'required - console_obj object returned from #connect method',
console_obj = PWN::Plugins::Metasploit.queue_console_cmd(
Supported Method Parameters::
def self.queue_console_cmd(opts = {})
:console_obj]
_s.strip.chomp.scrub
ole_obj[:msfrpcd_conn]
md] = cmd
e_obj[:session][:id]
console.read', console_id)
console.write', console_id, "#{cmd}\n")
frpcd_conn.call('console.read', console_id)
cd_resp.instance_of?(Hash)
 JSON.parse(msfrpcd_resp.to_json, symbolize_names: true)
_cmd_result] = last_cmd_result
ast_cmd_result][:busy] == true
_obj[:last_cmd_result][:data]}" unless console_obj[:last_cmd_result][:data].nil?
=> e