Files
metasploit-gs/spec/lib/msf/exploit/local_spec.rb
T

57 lines
1.4 KiB
Ruby

require 'spec_helper'
require 'rex/post/meterpreter/extensions/stdapi/sys/config'
RSpec.describe Msf::Exploit::Local do
describe '#exploit_type' do
it 'indicates that the exploit is local' do
expect(subject.exploit_type).to eq 'local'
end
end
describe '#sysinfo' do
before(:each) do
allow(subject).to receive(:session).and_return(session)
end
context 'when the session is nil' do
let(:session) { nil }
it 'returns nil' do
expect(subject.sysinfo).to eq nil
end
end
context 'when the session is not Meterpreter' do
let(:session) do
connection = nil
Msf::Sessions::CommandShell.new(connection)
end
it 'returns nil' do
expect(subject.sysinfo).to eq nil
end
end
context 'when the session is Meterpreter' do
let(:session) do
connection = nil
session = Msf::Sessions::Meterpreter_x86_Win.new(connection)
session.register_extension_alias(
'sys',
Rex::Post::Meterpreter::ObjectAliases.new(
'config' => instance_double(
::Rex::Post::Meterpreter::Extensions::Stdapi::Sys::Config,
sysinfo: { 'Computer' => 'FooComputer' }
)
)
)
session
end
it 'returns the sysinfo object' do
expect(subject.sysinfo).to eq({ 'Computer' => 'FooComputer' })
end
end
end
end