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

六六传世原创文章投稿奖励计划

文章来源:Khan安全攻防实验室

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 http://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自动执行三个步骤:

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

通配符检测

验证

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.8和8.8.4.4。此步骤的执行速度较慢,以避免对受信任的解析器造成任何速率限制。


www.idc126.com

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

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

项目地址:

http://github.com/d3mondev/puredns

如侵权请私聊公众号删文

本文原创,作者:张,其版权均为六六传世网所有。如需转载,请注明出处:http://66woool.com/html/280317.html

发表评论