From 9ae550c883a4c50892957582eb3707a7e3f7d9dc Mon Sep 17 00:00:00 2001 From: sinn3r Date: Wed, 24 Jul 2013 18:35:06 -0500 Subject: [PATCH] Do if [].empty?. Avoid msfcli running as a job --- lib/msf/core/modules/loader/directory.rb | 12 ++++++------ msfcli | 3 +-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/lib/msf/core/modules/loader/directory.rb b/lib/msf/core/modules/loader/directory.rb index f8be544d39..aed29b7be2 100644 --- a/lib/msf/core/modules/loader/directory.rb +++ b/lib/msf/core/modules/loader/directory.rb @@ -25,7 +25,7 @@ class Msf::Modules::Loader::Directory < Msf::Modules::Loader::Base # @yieldparam module_reference_name (see Msf::Modules::Loader::Base#each_module_reference_name) # @return (see Msf::Modules::Loader::Base#each_module_reference_name) def each_module_reference_name(path, opts={}) - whitelist = opts[:whitelist] + whitelist = opts[:whitelist] || [] ::Dir.foreach(path) do |entry| if entry.downcase == '.svn' next @@ -53,8 +53,11 @@ class Msf::Modules::Loader::Directory < Msf::Modules::Loader::Base # If the modules argument is set, this means we only want to load specific ones instead # of loading everything to memory - see msfcli. - if whitelist and not whitelist.empty? - whitelist.each do |pattern| + if whitelist.empty? + # Load every module we see, which is the default behavior. + yield path, type, module_reference_name + else + whitelist.each do |pattern| # We have to use entry_descendant_path to see if this is the module we want, because # this is easier to identify the module type just by looking at the file path. # For example, if module_reference_name is used (or a parsed relative path), you can't @@ -65,9 +68,6 @@ class Msf::Modules::Loader::Directory < Msf::Modules::Loader::Base next end end - else - # Load every module we see, which is the default behavior. - yield path, type, module_reference_name end end end diff --git a/msfcli b/msfcli index e021518b0f..687196e13b 100755 --- a/msfcli +++ b/msfcli @@ -338,8 +338,7 @@ case mode.downcase con.run_single("set #{k} #{v}") end - con.run_single("exploit -j") - con.run_single("exit") + con.run_single("exploit") # If we have sessions or jobs, keep running if $framework.sessions.length > 0 or $framework.jobs.length > 0