blob: 9459cc217e40eca6ee410cb9cbec19c8adc0041c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#!/bin/python3
import dns.resolver
import dns.zone
def dns_zone_xfer(address):
ns_answer = dns.resolver.resolve(address, 'NS')
for server in ns_answer:
print("[*] Found NS: {}".format(server))
ip_answer = dns.resolver.resolve(server.target, 'A')
for ip in ip_answer:
print("[*] IP for {} is {}".format(server, ip))
try:
zone = dns.zone.from_xfr(dns.query.xfr(str(ip), address))
hosts = zone.nodes.keys() # a node is a set of rdatasets
for host in hosts:
print(zone[host].to_text(host)) # convert a node to text format
except dns.xfr.TransferError:
print("[*] NS {} refused zone transfer !".format(server))
continue
except dns.exception.FormError:
print("No answer or RRset for {}".format(address))
continue
#dns_zone_xfer('megacorpone.com')
if __name__ == "__main__":
import sys
try:
dns_zone_xfer(sys.argv[1])
except IndexError:
print(f"{sys.argv[0]} demande un nom de domaine en argument")
|