Advertisement
Guest User

Untitled

a guest
Feb 27th, 2017
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.43 KB | None | 0 0
  1. import sys
  2. import dns.resolver
  3. import dns.query
  4. import dns.zone
  5. import csv
  6. from termcolor import colored
  7.  
  8. from pprint import pprint
  9.  
  10. resolver = dns.resolver.Resolver()
  11. resolver.timeout = 5
  12. resolver.lifetime = 5
  13.  
  14. BOLD = '\033[1m'
  15. ENDBOLD = '\033[0m'
  16.  
  17. def check_axfr(source_file):
  18. with open(source_file) as file, open('result_axfr_%s.xls' % source_file, 'wb') as csvfile:
  19. csvwriter = csv.DictWriter(csvfile, ['ns', 'domain'])
  20. csvwriter.writeheader()
  21. for domain in file:
  22. domain = domain.strip()
  23. print colored(BOLD + 'Getting ns records for: %s' % domain + ENDBOLD, 'blue')
  24. ns_list = []
  25. try:
  26. answers = resolver.query(domain, 'ns')
  27. except:
  28. pass
  29. else:
  30. for ns in answers:
  31. ns = ns.target.to_text()
  32. print 'Trying to perform Zone Transfer for ns: %s' % ns
  33. try:
  34. dns.zone.from_xfr(dns.query.xfr(ns, domain, timeout=5, lifetime=5))
  35. except:
  36. pass
  37. else:
  38. csvwriter.writerow({'ns': ns, 'domain': domain})
  39. print colored(BOLD + "Zone transfer successful! NS: %s Domain: %s" % (ns, domain) + ENDBOLD, 'green')
  40.  
  41.  
  42. def main():
  43. source_file = sys.argv[1]
  44. vulnerable_ns = check_axfr(source_file)
  45.  
  46. if __name__ == '__main__':
  47. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement