PureDNS –具有精确通配符过滤功能的快速域解析器和子域暴力破解

  • A+
所属分类:安全工具


PureDNS –具有精确通配符过滤功能的快速域解析器和子域暴力破解


        puredns是一种快速的域解析器和子域暴力破解工具,可以准确地过滤出通配符子域和DNS中毒条目。

        它使用功能强大的存根DNS解析器massdns来执行批量查找。有了适当的带宽,并有大量的公共解析器,它可以在几分钟之内解决数百万个查询。不幸的是,massdns的结果仅与公共解决者提供的答案一样好。错误的DNS答案和来自通配符子域的误报通常会污染结果。

        puredns通过其通配符检测算法解决了这一问题。它可以根据从一组可信解析器获得的DNS答案过滤出通配符。


特征

  • 使用massdns和公共DNS解析器列表每秒解析数千个DNS查询

  • 使用单词列表和根域的Bruteforce子域

  • 使用最少的查询清理通配符并检测通配符的根,以确保获得精确的结果

  • 通配符检测期间规避DNS负载平衡

  • 通过运行一系列已知的,受信任的解析器来验证结果是否没有DNS中毒

  • 保存有效域,通配符子域根目录以及仅包含有效条目的干净massdns输出的列表

  • 从stdin读取域或单词的列表,并启用安静模式,以便轻松集成到自定义自动化管道中

Massdns

        Puredns在主机上需要massdns。如果PATH环境变量中存在指向massdns二进制文件的路径,则puredns将立即可用。/usr/local/bin在大多数系统上,复制massdns可执行文件的一个好地方否则,您将需要使用--bin命令行参数来指定massdns二进制文件的路径


git clone https://github.com/blechschmidt/massdns.gitcd massdnsmakesudo make install


安装

您可以使用以下命令安装puredns:

GO111MODULE=on go get github.com/d3mondev/puredns/v2


用法

确保使用查看完整的可用命令和选项列表puredns --help

如果resolvers.txt当前工作目录中存在文件,puredns会自动将其用作公共解析程序的列表。否则,请使用-r参数指定要使用的解析器列表

子域暴力破解

这是使用名为的单词表暴力破解大量子域列表的方法all.txt

puredns bruteforce all.txt domain.com


析域列表

您还可以解析文本文件中包含的域列表(每行一个)。

puredns resolve domains.txt


标准输入操作

您可以通过stdin传递要解析的域列表:

cat domains.txt | puredns resolve


或用于暴力破解的单词列表:

cat wordlist.txt | puredns bruteforce domain.com


您还可以添加-q开关以仅输出找到的域以管道传输到其他工具:

cat domains.txt | puredns resolve -q | httprobe


将结果保存到文件

您可以将以下信息保存到文件中以在工作流中重复使用:

  • domains:正确解析的干净列表

  • 通配符根域:找到的通配符根域的列表(即* .store.yahoo.com

  • massdns结果文件(-o Snl文本输出):可用作参考并提取A和CNAME记录。

puredns resolve domains.txt --write valid_domains.txt                             --write-wildcards wildcards.txt                             --write-massdns massdns.txt





PureDNS –具有精确通配符过滤功能的快速域解析器和子域暴力破解


您可以使用上图中的100k个最常见子域的小单词列表,看到针对google.com域的puredns的运行情况。

作为其工作流程的一部分,puredns自动执行三个步骤:

  1. 使用公共DNS服务器进行批量解析

  2. 通配符检测

  3. 验证

1.使用公共DNS服务器进行批量解析

        使用massdns,puredns将对所有域和子域执行批量解析。它通过stdin将数据馈送给massdns,这使它可以根据需要限制每秒的查询数量,并在生成的域列表上执行基本的清理操作。

        默认情况下,输入域设置为小写,并且仅接受包含有效字符的条目(本质上是[a-z0-9.-])。您可以使用--skip-sanitize标志禁用此功能

        执行此步骤后,结果通常会受到污染:某些公共解析器将向您发送错误答案,而通配符子域会迅速使结果膨胀。

2.通配符检测

        然后,Puredns使用其通配符检测算法从massdns结果文件中检测并提取所有通配符子域根。

        它将使用步骤1的massdns输出作为DNS缓存,以最大程度地减少需要执行的查询数量。为了确保精确的结果,它可能必须通过执行DNS查询来验证缓存结果。

        您可以使用该--skip-wildcard标志跳过此步骤

3.验证

        为了防止DNS中毒,puredns上次使用massdns来使用内部受信任的DNS解析器列表来验证其余结果。当前,使用的受信任的解析器为8.8.8.88.8.4.4此步骤的执行速度较慢,以避免对受信任的解析器造成任何速率限制。

        您可以使用该--skip-validation标志跳过此步骤

此时,生成的文件应清除通配符子域和DNS中毒的答案。

项目地址:

https://github.com/d3mondev/puredns


本文始发于微信公众号(Khan安全攻防实验室):PureDNS –具有精确通配符过滤功能的快速域解析器和子域暴力破解

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: