remove various library workarounds for the datastore not preserving types
parent
694f7f0a65
commit
85acfabfca
|
@ -216,7 +216,7 @@ class CommandShell
|
|||
end
|
||||
end
|
||||
|
||||
if (datastore['InitialAutoRunScript'] && datastore['InitialAutoRunScript'].empty? == false)
|
||||
if datastore['InitialAutoRunScript'] && !datastore['InitialAutoRunScript'].empty?
|
||||
args = Shellwords.shellwords( datastore['InitialAutoRunScript'] )
|
||||
print_status("Session ID #{sid} (#{tunnel_to_s}) processing InitialAutoRunScript '#{datastore['InitialAutoRunScript']}'")
|
||||
execute_script(args.shift, *args)
|
||||
|
|
|
@ -37,13 +37,13 @@ module MeterpreterOptions
|
|||
framework.sessions.schedule Proc.new {
|
||||
|
||||
# Configure unicode encoding before loading stdapi
|
||||
session.encode_unicode = ( datastore['EnableUnicodeEncoding'] ? true : false )
|
||||
session.encode_unicode = datastore['EnableUnicodeEncoding']
|
||||
|
||||
session.init_ui(self.user_input, self.user_output)
|
||||
|
||||
valid = true
|
||||
|
||||
if datastore['AutoVerifySession'] == true
|
||||
if datastore['AutoVerifySession']
|
||||
if not session.is_valid_session?(datastore['AutoVerifySessionTimeout'].to_i)
|
||||
print_error("Meterpreter session #{session.sid} is not valid and will be closed")
|
||||
valid = false
|
||||
|
@ -52,7 +52,7 @@ module MeterpreterOptions
|
|||
|
||||
if valid
|
||||
|
||||
if datastore['AutoLoadStdapi'] == true
|
||||
if datastore['AutoLoadStdapi']
|
||||
|
||||
session.load_stdapi
|
||||
|
||||
|
@ -72,7 +72,7 @@ module MeterpreterOptions
|
|||
end
|
||||
|
||||
[ 'InitialAutoRunScript', 'AutoRunScript' ].each do |key|
|
||||
if (datastore[key].empty? == false)
|
||||
if !datastore[key].empty?
|
||||
args = Shellwords.shellwords( datastore[key] )
|
||||
print_status("Session ID #{session.sid} (#{session.tunnel_to_s}) processing #{key} '#{datastore[key]}'")
|
||||
session.execute_script(args.shift, *args)
|
||||
|
|
|
@ -84,7 +84,7 @@ module VncInjectOptions
|
|||
print_status("Local TCP relay started.")
|
||||
|
||||
# If the AUTOVNC flag is set, launch VNC viewer.
|
||||
if (datastore['AUTOVNC'] == true)
|
||||
if datastore['AUTOVNC']
|
||||
if (session.autovnc(datastore['ViewOnly']))
|
||||
print_status("Launched vncviewer.")
|
||||
else
|
||||
|
|
|
@ -537,7 +537,7 @@ protected
|
|||
#
|
||||
def find_context_key(buf, badchars, state)
|
||||
# Make sure our context information file is sane
|
||||
if File.exists?(datastore['ContextInformationFile']) == false
|
||||
if !File.exists?(datastore['ContextInformationFile'])
|
||||
raise NoKeyError, "A context information file must specified when using context encoding", caller
|
||||
end
|
||||
|
||||
|
|
|
@ -1506,7 +1506,7 @@ protected
|
|||
# required when wanting to support context keyed encoding
|
||||
#
|
||||
def define_context_encoding_reqs(reqs)
|
||||
return if datastore['EnableContextEncoding'] != true
|
||||
return unless datastore['EnableContextEncoding']
|
||||
|
||||
# At present, we don't support any automatic methods of obtaining
|
||||
# context information. In the future, we might support obtaining
|
||||
|
|
|
@ -86,7 +86,7 @@ module Exploit::Remote::HttpServer
|
|||
# set.
|
||||
#
|
||||
def use_zlib
|
||||
if (!Rex::Text.zlib_present? and datastore['HTTP::compression'] == true)
|
||||
if !Rex::Text.zlib_present? && datastore['HTTP::compression']
|
||||
raise RuntimeError, "zlib support was not detected, yet the HTTP::compression option was set. Don't do that!"
|
||||
end
|
||||
end
|
||||
|
@ -530,16 +530,16 @@ module Exploit::Remote::HttpServer
|
|||
response.compress = datastore['HTTP::compression']
|
||||
end
|
||||
|
||||
if (datastore['HTTP::chunked'] == true)
|
||||
if datastore['HTTP::chunked']
|
||||
response.auto_cl = false
|
||||
response.transfer_chunked = true
|
||||
end
|
||||
|
||||
if (datastore['HTTP::header_folding'] == true)
|
||||
if datastore['HTTP::header_folding']
|
||||
response.headers.fold = 1
|
||||
end
|
||||
|
||||
if (datastore['HTTP::junk_headers'] == true)
|
||||
if datastore['HTTP::junk_headers']
|
||||
response.headers.junk_headers = 1
|
||||
end
|
||||
|
||||
|
|
|
@ -588,7 +588,7 @@ module Msf
|
|||
if profile.nil?
|
||||
print_status("Browsing directly to the exploit URL is forbidden.")
|
||||
send_not_found(cli)
|
||||
elsif profile[:tried] and datastore['Retries'] == false
|
||||
elsif profile[:tried] && !datastore['Retries']
|
||||
print_status("Target with tag \"#{tag}\" wants to retry the module, not allowed.")
|
||||
send_not_found(cli)
|
||||
else
|
||||
|
|
|
@ -65,7 +65,7 @@ module Exploit::Remote::SunRPC
|
|||
}
|
||||
)
|
||||
|
||||
if datastore['ONCRPC::tcp_request_fragmentation'] == true
|
||||
if datastore['ONCRPC::tcp_request_fragmentation']
|
||||
self.rpcobj.should_fragment = 1
|
||||
end
|
||||
|
||||
|
|
|
@ -28,7 +28,7 @@ module Msf::Payload::Windows::PrependMigrate
|
|||
# for discussion.
|
||||
#
|
||||
def prepend_migrate?
|
||||
!!(datastore['PrependMigrate'] && datastore['PrependMigrate'].to_s.downcase == 'true')
|
||||
datastore['PrependMigrate']
|
||||
end
|
||||
|
||||
#
|
||||
|
|
|
@ -3516,7 +3516,7 @@ class Core
|
|||
next if not o
|
||||
|
||||
# handle a search string, search deep
|
||||
if(
|
||||
if (
|
||||
not regex or
|
||||
o.name.match(regex) or
|
||||
o.description.match(regex) or
|
||||
|
@ -3530,7 +3530,7 @@ class Core
|
|||
mod_opt_keys = o.options.keys.map { |x| x.downcase }
|
||||
|
||||
opts.each do |opt,val|
|
||||
if mod_opt_keys.include?(opt.downcase) == false or (val != nil and o.datastore[opt] != val)
|
||||
if !mod_opt_keys.include?(opt.downcase) || (val != nil && o.datastore[opt] != val)
|
||||
show = false
|
||||
end
|
||||
end
|
||||
|
|
|
@ -154,8 +154,7 @@ class Exploit
|
|||
else
|
||||
# If we didn't run a payload handler for this exploit it doesn't
|
||||
# make sense to complain to the user that we didn't get a session
|
||||
disable_handler = /^true$/i === mod.datastore["DisablePayloadHandler"] ? true : false
|
||||
unless disable_handler
|
||||
unless mod.datastore["DisablePayloadHandler"]
|
||||
fail_msg = 'Exploit completed, but no session was created.'
|
||||
print_status(fail_msg)
|
||||
begin
|
||||
|
|
|
@ -139,13 +139,13 @@ class Driver < Msf::Ui::Driver
|
|||
self.disable_output = false
|
||||
|
||||
# Whether or not command passthru should be allowed
|
||||
self.command_passthru = (opts['AllowCommandPassthru'] == false) ? false : true
|
||||
self.command_passthru = opts['AllowCommandPassthru']
|
||||
|
||||
# Whether or not to confirm before exiting
|
||||
self.confirm_exit = (opts['ConfirmExit'] == true) ? true : false
|
||||
self.confirm_exit = opts['ConfirmExit']
|
||||
|
||||
# Disables "dangerous" functionality of the console
|
||||
@defanged = opts['Defanged'] == true
|
||||
@defanged = opts['Defanged']
|
||||
|
||||
# If we're defanged, then command passthru should be disabled
|
||||
if @defanged
|
||||
|
@ -652,7 +652,7 @@ protected
|
|||
def unknown_command(method, line)
|
||||
|
||||
[method, method+".exe"].each do |cmd|
|
||||
if (command_passthru == true and Rex::FileUtils.find_full_path(cmd))
|
||||
if command_passthru && Rex::FileUtils.find_full_path(cmd)
|
||||
|
||||
print_status("exec: #{line}")
|
||||
print_line('')
|
||||
|
|
Loading…
Reference in New Issue