lib/scanner/plugins/dns/generic.rb in yawast-0.6.0.beta4 vs lib/scanner/plugins/dns/generic.rb in yawast-0.6.0.beta5
- old
+ new
@@ -103,52 +103,15 @@
Yawast::Utilities.puts_info "\t\tNS: #{rec.name} - #{ip} (#{get_network_info(ip.to_s)})"
end
end
if options.srv
- File.open(File.dirname(__FILE__) + '/../../../resources/srv_list.txt', 'r') do |f|
- f.each_line do |line|
- host = line.strip + '.' + root_domain
- begin
- srv = resv.getresources(host, Resolv::DNS::Resource::IN::SRV)
-
- unless srv.empty?
- srv.each do |rec|
- ip = resv.getaddress rec.target
-
- Yawast::Utilities.puts_info "\t\tSRV: #{host}: #{rec.target}:#{rec.port} - #{ip} (#{get_network_info(ip.to_s)})"
- end
- end
- rescue
- #if this fails, don't really care
- end
- end
- end
+ find_srv root_domain, resv
end
if options.subdomains
- File.open(File.dirname(__FILE__) + '/../../../resources/subdomain_list.txt', 'r') do |f|
- f.each_line do |line|
- host = line.strip + '.' + root_domain
-
- begin
- a = resv.getresources(host, Resolv::DNS::Resource::IN::A)
-
- unless a.empty?
- a.each do |ip|
- if IPAddr.new(ip.address.to_s, Socket::AF_INET).private?
- Yawast::Utilities.puts_info "\t\tA: #{host}: #{ip.address}"
- else
- Yawast::Utilities.puts_info "\t\tA: #{host}: #{ip.address} (#{get_network_info(ip.address)})"
- end
- end
- end
- rescue
- #if this fails, don't really care
- end
- end
- end
+ find_subdomains root_domain, resv
end
end
#get the CAA info
Yawast::Scanner::Plugins::DNS::CAA.caa_info uri
@@ -158,10 +121,55 @@
Yawast::Utilities.puts_error "Error getting basic information: #{e.message}"
raise
end
end
+ def self.find_srv(root_domain, resv)
+ File.open(File.dirname(__FILE__) + '/../../../resources/srv_list.txt', 'r') do |f|
+ f.each_line do |line|
+ host = line.strip + '.' + root_domain
+ begin
+ srv = resv.getresources(host, Resolv::DNS::Resource::IN::SRV)
+
+ unless srv.empty?
+ srv.each do |rec|
+ ip = resv.getaddress rec.target
+
+ Yawast::Utilities.puts_info "\t\tSRV: #{host}: #{rec.target}:#{rec.port} - #{ip} (#{get_network_info(ip.to_s)})"
+ end
+ end
+ rescue
+ #if this fails, don't really care
+ end
+ end
+ end
+ end
+
+ def self.find_subdomains(root_domain, resv)
+ File.open(File.dirname(__FILE__) + '/../../../resources/subdomain_list.txt', 'r') do |f|
+ f.each_line do |line|
+ host = line.strip + '.' + root_domain
+
+ begin
+ a = resv.getresources(host, Resolv::DNS::Resource::IN::A)
+
+ unless a.empty?
+ a.each do |ip|
+ if IPAddr.new(ip.address.to_s, Socket::AF_INET).private?
+ Yawast::Utilities.puts_info "\t\tA: #{host}: #{ip.address}"
+ else
+ Yawast::Utilities.puts_info "\t\tA: #{host}: #{ip.address} (#{get_network_info(ip.address)})"
+ end
+ end
+ end
+ rescue
+ #if this fails, don't really care
+ end
+ end
+ end
+ end
+
def self.get_network_info(ip)
#check to see if we have this one cached
@netinfo = Hash.new if @netinfo == nil
return @netinfo[ip] if @netinfo[ip] != nil
@@ -169,10 +177,10 @@
#connections are blocked.
@netinfo_failed = false if @netinfo_failed == nil
return 'Network Information disabled due to prior failure' if @netinfo_failed
begin
- network_info = JSON.parse(Net::HTTP.get(URI("https://api.iptoasn.com/v1/as/ip/#{ip}")))
+ network_info = Yawast::Shared::Http.get_json URI("https://api.iptoasn.com/v1/as/ip/#{ip}")
ret = "#{network_info['as_country_code']} - #{network_info['as_description']}"
@netinfo[ip] = ret
return ret