diff --git a/lib/msf/ui/console/driver.rb b/lib/msf/ui/console/driver.rb index fa392f3483e9..9085b7625abf 100644 --- a/lib/msf/ui/console/driver.rb +++ b/lib/msf/ui/console/driver.rb @@ -80,16 +80,16 @@ def initialize(prompt = DefaultPrompt, prompt_char = DefaultPromptChar, opts = { # Initialize attributes - dns_resolver = Rex::Proto::DNS::CachedResolver.new - dns_resolver.extend(Rex::Proto::DNS::CustomNameserverProvider) - dns_resolver.load_config - - # Defer loading of modules until paths from opts can be added below - framework_create_options = opts.merge({ - 'DeferModuleLoads' => true, - 'CustomDnsResolver' => dns_resolver - } - ) + framework_create_options = opts.merge({ 'DeferModuleLoads' => true }) + + if Msf::FeatureManager.instance.enabled?(Msf::FeatureManager::DNS_FEATURE) + dns_resolver = Rex::Proto::DNS::CachedResolver.new + dns_resolver.extend(Rex::Proto::DNS::CustomNameserverProvider) + dns_resolver.load_config + + # Defer loading of modules until paths from opts can be added below + framework_create_options = framework_create_options.merge({ 'CustomDnsResolver' => dns_resolver }) + end self.framework = opts['Framework'] || Msf::Simple::Framework.create(framework_create_options) if self.framework.datastore['Prompt'] diff --git a/lib/net/dns/resolver.rb b/lib/net/dns/resolver.rb index eb4c576cac53..b1c2a4859d54 100644 --- a/lib/net/dns/resolver.rb +++ b/lib/net/dns/resolver.rb @@ -1084,17 +1084,21 @@ def parse_config_file self.domain = arr[0] self.nameservers = arr[1] else - IO.foreach(@config[:config_file]) do |line| - line.gsub!(/\s*[;#].*/,"") - next unless line =~ /\S/ - case line - when /^\s*domain\s+(\S+)/ - self.domain = $1 - when /^\s*search\s+(.*)/ - self.searchlist = $1.split(" ") - when /^\s*nameserver\s+(.*)/ - self.nameservers += $1.split(" ") + begin + IO.foreach(@config[:config_file]) do |line| + line.gsub!(/\s*[;#].*/,"") + next unless line =~ /\S/ + case line + when /^\s*domain\s+(\S+)/ + self.domain = $1 + when /^\s*search\s+(.*)/ + self.searchlist = $1.split(" ") + when /^\s*nameserver\s+(.*)/ + self.nameservers += $1.split(" ") + end end + rescue => e + @logger.error(e) end end end