Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import sys
- import dns.resolver
- import dns.query
- import dns.zone
- import csv
- from termcolor import colored
- from pprint import pprint
- resolver = dns.resolver.Resolver()
- resolver.timeout = 5
- resolver.lifetime = 5
- BOLD = '\033[1m'
- ENDBOLD = '\033[0m'
- def check_axfr(source_file):
- with open(source_file) as file, open('result_axfr_%s.xls' % source_file, 'wb') as csvfile:
- csvwriter = csv.DictWriter(csvfile, ['ns', 'domain'])
- csvwriter.writeheader()
- for domain in file:
- domain = domain.strip()
- print colored(BOLD + 'Getting ns records for: %s' % domain + ENDBOLD, 'blue')
- ns_list = []
- try:
- answers = resolver.query(domain, 'ns')
- except:
- pass
- else:
- for ns in answers:
- ns = ns.target.to_text()
- print 'Trying to perform Zone Transfer for ns: %s' % ns
- try:
- dns.zone.from_xfr(dns.query.xfr(ns, domain, timeout=5, lifetime=5))
- except:
- pass
- else:
- csvwriter.writerow({'ns': ns, 'domain': domain})
- print colored(BOLD + "Zone transfer successful! NS: %s Domain: %s" % (ns, domain) + ENDBOLD, 'green')
- def main():
- source_file = sys.argv[1]
- vulnerable_ns = check_axfr(source_file)
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement