diff --git a/extensions/dns/dns.rb b/extensions/dns/dns.rb index 8580fa02b..0896846b5 100644 --- a/extensions/dns/dns.rb +++ b/extensions/dns/dns.rb @@ -102,20 +102,7 @@ module DNS # @return [Array] DNS ruleset (empty if no rules are currently loaded) def get_ruleset @lock.synchronize do - result = [] - - BeEF::Core::Models::DNS::Rule.each do |rule| - element = {} - - element[:id] = rule.id - element[:pattern] = rule.pattern - element[:type] = rule.type - element[:block] = rule.block - - result << element - end - - result + @server.get_ruleset end end diff --git a/extensions/dns/rest/dns.rb b/extensions/dns/rest/dns.rb index dcf7e0849..a329f466b 100644 --- a/extensions/dns/rest/dns.rb +++ b/extensions/dns/rest/dns.rb @@ -26,6 +26,7 @@ module DNS # Returns the entire current DNS ruleset get '/rules' do + result = {} result[:rules] = BeEF::Extension::DNS::DNS.instance.get_ruleset result.to_json end diff --git a/extensions/dns/ruby/rubydns.rb b/extensions/dns/ruby/rubydns.rb index 0af5744c0..3d8de48b1 100644 --- a/extensions/dns/ruby/rubydns.rb +++ b/extensions/dns/ruby/rubydns.rb @@ -84,6 +84,24 @@ module RubyDNS end end + # New method that returns the entire DNS ruleset as an AoH + def get_ruleset + result = [] + + BeEF::Core::Models::DNS::Rule.each do |rule| + element = {} + + element[:id] = rule.id + element[:pattern] = rule.pattern + element[:type] = rule.type + element[:block] = rule.block + + result << element + end + + result + end + # New method that returns a hash representing the given rule def get_rule(id) result = {}