教程:使用Python列举DNS
#编程 #python #网络安全 #ethicalhacking

DNS列举的解释

DNS枚举是一种收集有关域配置数据的方法。 DNS或域名系统将人类可读域名(例如www.amazon.com)转换为机器可读的IP地址(例如192.0.2.44)。 DNS枚举的过程返回有关目标的各种重要信息,例如DNS记录类型,主机名,IP地址以及更多取决于该目标系统的配置。DNS枚举的主要目标是尽可能多的信息收集有关A的信息。特定的受害者以识别潜在的漏洞。

在本文中,我将向您展示如何使用Python语言执行DNS枚举。我们将利用dnspython库,该库将帮助我们执行DNS请求,以我们选择的网站返回我们的DNS记录。

要安装dnspython您需要做的就是运行此命令:
$ pip install dnspython

完成库后,创建一个名为dns_enumeration.py的新文件(或任何要调用的文件)。

编码部分

首先,我们需要指定要分析的域(我们将使用twitter.com)以及希望该程序返回的DNS记录类型。对于本教程,我们只会让程序返回六种最常见的DNS记录类型:

import dns.resolver

# Set the target domain and record type
target_domain = "twitter.com" #using twitter as an example
record_types = ["A", "AAAA", "CNAME", "MX", "NS", "SOA", "TXT"]

(不要忘记导入库)

您可能会问,什么是DNS记录类型?您可以想到一组DNS记录,例如Yelp上的业务上市。该列表将为您提供有关企业的一堆有用的信息域名,并且有几个可选记录可以实现其他目的。在这种情况下,记录类型将为我们提供有关域的信息,例如IP地址,IPv6地址,服务器包含DNS记录等。

现在,我们可以继续创建DNS解析器,并创建将执行DNS查找的代码:

# Create a DNS resolver
resolver = dns.resolver.Resolver()
for record_type in record_types:
    # Performs DNS lookup for the defined domain and record type
    try:
        answers = resolver.resolve(target_domain, record_type)
    except dns.resolver.NoAnswer:
        continue

DNS解析器,也称为解析器,是Internet上的服务器,将域名转换为IP地址。当您使用Internet时,每次您使用其域名连接到网站时,您的计算机都需要知道该网站的IP地址。因此,您的计算机与DNS解析器联系,并获取您要访问的域的当前IP地址。

最后一部分是我们需要从查询中打印出结果(这很简单):

    # Prints the results
    print(f"{record_type} records for {target_domain}:")
    for rdata in answers:
        print(f" {rdata}")

(f-strings是字符串文字,在开头和卷曲的括号中包含表达式,将其值代替其值)

运行程序时,您应该得到看起来像这样的输出(取决于您选择的域):

Image description

这就是教程的结尾!如果您想进一步深入研究,这里有一些我为您提供更多阅读的链接:

如果您喜欢这篇文章,请考虑喜欢它并关注我!如果您想在将来看到更多这样的教程,请在下面发表评论!

完整源代码: https://github.com/sleepyrob0t/DNS-Enumeration-Python

-jsquared