DnsDiag:一款针对DNS的故障排除和安全审计工具

news2024/9/29 16:28:26

关于DnsDiag

DnsDiag是一款针对DNS的故障排除和安全审计工具,在该工具的帮助下,广大研究人员可以轻松检测DNS基础设施的安全性。

你是否曾怀疑过你的 ISP 是否劫持了你的 DNS 流量?你是否曾观察到 DNS 响应有任何异常行为?你是否曾被重定向到错误的地址并怀疑你的 DNS 有问题?DnsDiag可以对你的 DNS 请求和响应执行基本审核,以确保你的 DNS 正常运行。

你可以使用 DnsDiag测试任何给定 DNS 服务器对任意请求的响应时间dnsping。就像传统的 ping 实用程序一样,它为你提供了类似的 DNS 请求功能。你还可以跟踪 DNS 请求到达目的地的路径,以确保它没有被重定向或劫持。这可以通过比较发送到同一 DNS 服务器的不同 DNS 查询来实现dnstraceroute,并观察路径之间是否有任何差异。

DnsDiag的dnseval组件能够评估多个 DNS 解析器并为你的网络选择最佳 DNS 服务器。虽然强烈建议你使用自己的 DNS 解析器,并且不要信任任何第三方 DNS 服务器,但如果你需要为你的网络选择最佳 DNS 转发器,dnseval你可以从性能(延迟)和可靠性(丢失)的角度比较不同的 DNS 服务器。

工具要求

dnspython>=2.6.1

cymruwhois>=1.6

httpx>=0.27.0

密码学>=42.0.7

h2>=4.1.0

工具安装

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好最新版本的Python 3环境。

源码安装

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/farrokhi/dnsdiag.git

然后切换到项目目录中,使用pip3命令和项目提供的requirements.txt安装该工具所需的其他依赖组件:

cd dnsdiag

pip3 install -r requirements.txt

除此之外,我们也可以使用pip命令直接安装DnsDiag:

pip3 install dnsdiag

发布版本安装

我们会不定期发布适用于 Windows、Mac OS X 和 Linux 的二进制软件包。你也可以从【发布页面】获取最新版本。

Docker安装

如果你不想在本地机器上安装DnsDiag,你可以使用 Docker 镜像并在容器中运行程序。例如:

docker run --network host -it --rm farrokhi/dnsdiag dnsping.py

工具使用

dnsping

DnsDiag的dnsping组件可以通过发送任意 DNS 查询指定次数来 ping DNS 解析器。使用--help可获取工具持的命令行选项。以下是一些有用的参数选项:

--tcp、--tls和--doh可以选择使用的传输协议,默认为 UDP;

--flags用于显示每个响应的响应标志(包括 EDNS );

--dnssec可以请求 DNSSEC;

--ede用于显示扩展 DNS 错误消息;

--nsid用于显示名称服务器标识符 (NSID);

除了 UDP,我们还可以分别使用 TCP、DoT(TLS 上的 DNS)和 DoH(HTTPS 上的 DNS)进行ping--tcp操作,相关选项分别为--tcp、--tls和--doh:

./dnsping.py -c 5 --dnssec --flags --tls --ede -t AAAA -s 8.8.8.8 brokendnssec.net
dnsping.py DNS: 8.8.8.8:853, hostname: brokendnssec.net, proto: TLS, class: IN, type: AAAA, flags: [RD]

75 bytes from 8.8.8.8: seq=1   time=113.631 ms [QR RD RA DO] SERVFAIL [EDE 10: For brokendnssec.net/soa]

75 bytes from 8.8.8.8: seq=2   time=115.479 ms [QR RD RA DO] SERVFAIL [EDE 10: For brokendnssec.net/soa]

75 bytes from 8.8.8.8: seq=3   time=90.882  ms [QR RD RA DO] SERVFAIL [EDE 10: For brokendnssec.net/soa]

75 bytes from 8.8.8.8: seq=4   time=91.256  ms [QR RD RA DO] SERVFAIL [EDE 10: For brokendnssec.net/soa]

75 bytes from 8.8.8.8: seq=5   time=94.072  ms [QR RD RA DO] SERVFAIL [EDE 10: For brokendnssec.net/soa]

 

--- 8.8.8.8 dnsping statistics ---

5 requests transmitted, 5 responses received, 0% lost

min=90.882 ms, avg=101.064 ms, max=115.479 ms, stddev=12.394 ms

DNSTRACEROUTE

DnsDiag的dnstraceroute组件是一款路由跟踪实用程序,用于找出 DNS 请求到达目的地所经过的路径。我们可以将其与实际网络路由跟踪进行比较,并确保 DNS 流量没有路由到任何不需要的路径。

除了UDP之外,还支持TCP作为传输协议,使用--tcp标志。

./dnstraceroute.py --expert --asn -C -t A -s 8.8.4.4 facebook.com
dnstraceroute.py DNS: 8.8.4.4:53, hostname: facebook.com, rdatatype: A

1 192.168.0.1 (192.168.0.1) 1 ms

2 192.168.28.177 (192.168.28.177) 4 ms

3 192.168.0.1 (192.168.0.1) 693 ms

4 172.19.4.17 (172.19.4.17) 3 ms

5 dns.google (8.8.4.4) [AS15169 GOOGLE, US] 8 ms

 

=== Expert Hints ===

 [*] public DNS server is next to a private IP address (possible hijacking)

dnseval

DnsDiag的dnseval组件一个批量 ping 实用程序,它向给定的 DNS 服务器列表发送任意 DNS 查询。此脚本用于同时比较多个 DNS 服务器的响应时间。

我们可以分别使用和dnseval来比较使用不同传输协议(如 UDP(默认)、TCP、DoT 和 DoH)的响应时间。参数选项分别为--tcp、--tls和--doh:

./dnseval.py --dnssec -t AAAA -f public-servers.txt -c10 ripe.net
server                   avg(ms)     min(ms)     max(ms)     stddev(ms)  lost(%)  ttl        flags                  response

----------------------------------------------------------------------------------------------------------------------------

1.0.0.1                  36.906      7.612       152.866     50.672      %0       300        QR -- -- RD RA AD --   NOERROR

1.1.1.1                  7.752       7.512       8.132       0.183       %0       298        QR -- -- RD RA AD --   NOERROR

2606:4700:4700::1001     7.661       7.169       8.102       0.240       %0       297        QR -- -- RD RA AD --   NOERROR

2606:4700:4700::1111     7.802       7.000       8.128       0.312       %0       296        QR -- -- RD RA AD --   NOERROR

195.46.39.39             14.723      7.024       78.239      22.362      %0       300        QR -- -- RD RA -- --   NOERROR

195.46.39.40             7.524       6.972       10.897      1.191       %0       300        QR -- -- RD RA -- --   NOERROR

208.67.220.220           70.519      6.694       180.229     66.516      %0       300        QR -- -- RD RA AD --   NOERROR

208.67.222.222           37.868      6.663       107.601     41.178      %0       300        QR -- -- RD RA AD --   NOERROR

2620:0:ccc::2            31.471      6.768       178.647     56.546      %0       299        QR -- -- RD RA AD --   NOERROR

2620:0:ccd::2            20.651      6.699       145.029     43.702      %0       300        QR -- -- RD RA AD --   NOERROR

216.146.35.35            19.338      6.713       131.198     39.306      %0       300        QR -- -- RD RA AD --   NOERROR

216.146.36.36            107.741     73.421      266.969     58.003      %0       299        QR -- -- RD RA AD --   NOERROR

209.244.0.3              14.717      7.015       80.329      23.058      %0       300        QR -- -- RD RA -- --   NOERROR

209.244.0.4              7.184       7.003       8.197       0.361       %0       300        QR -- -- RD RA -- --   NOERROR

4.2.2.1                  7.040       6.994       7.171       0.052       %0       299        QR -- -- RD RA -- --   NOERROR

4.2.2.2                  14.358      6.968       79.964      23.052      %0       300        QR -- -- RD RA -- --   NOERROR

4.2.2.3                  7.083       6.945       7.265       0.091       %0       299        QR -- -- RD RA -- --   NOERROR

4.2.2.4                  7.103       6.990       7.238       0.086       %0       299        QR -- -- RD RA -- --   NOERROR

4.2.2.5                  7.100       7.025       7.267       0.074       %0       299        QR -- -- RD RA -- --   NOERROR

80.80.80.80              149.924     53.310      247.395     97.311      %0       299        QR -- -- RD RA AD --   NOERROR

80.80.81.81              144.262     53.360      252.564     97.759      %0       298        QR -- -- RD RA AD --   NOERROR

8.8.4.4                  9.196       7.160       10.974      1.484       %0       299        QR -- -- RD RA AD --   NOERROR

8.8.8.8                  7.847       7.056       9.866       0.836       %0       299        QR -- -- RD RA AD --   NOERROR

2001:4860:4860::8844     31.819      7.194       155.761     50.671      %0       299        QR -- -- RD RA AD --   NOERROR

2001:4860:4860::8888     7.773       7.200       9.814       0.777       %0       298        QR -- -- RD RA AD --   NOERROR

9.9.9.9                  21.894      6.670       81.434      30.299      %0       300        QR -- -- RD RA AD --   NOERROR

2620:fe::fe              21.177      6.723       80.046      30.062      %0       300        QR -- -- RD RA AD --   NOERROR

许可证协议

本项目的开发与发布遵循BSD-2-Clause开源许可协议。

项目地址

DnsDiag:【GitHub传送门】

参考资料

DNSDiag

farrokhi.net

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2177278.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机系统的组成

第二章:计算机系统组成 一、信息表示及存储 数据是反映客观事物属性的记录,是信息的具体表现形式。数据经过加工处理之后,就 成为信息;而信息需要经过数字化转变成数据才能存储和传输。 数据信息分为数值型和非数值型。 计算机能…

4.3章节python中循环结构:两种类型:for 循环和 while 循环用法

Python 中的循环结构主要有两种类型:for 循环和 while 循环。每种循环都有其特定的使用场景,允许你根据需要重复执行代码块。 一、遍历循环for语句 for 循环用于遍历任何序列(如列表、元组或字符串)或其他可迭代对象 (1)for 循环…

【Mysql】数据库基本操作-----DML

1、基本操作 DML是数据操作语言,英文全称是:Data Manipulation Language,用来对数据库中的数据记录进行更新。 关键字: (1)插入insert (2)删除delete (3)更新upda…

element的描述列表<el-descriptions>添加字典翻译功能

标题1 可以利用对象赋值进行翻译功能: HTML代码: <el-descriptions border :column"2" direction"vertical"><el-descriptions-item label"单位类别">{{companyTypeFormat(viewForm.companyType?viewForm.companyType:)}}</el-…

【AI变现】探索AI领域的财富密码:5大AI变现路径解析

随着现代科技的高速发展&#xff0c;AI已经不只是一个概念工具&#xff0c;它正在深刻地改变着我们的生活方式、工作模式和商业模式。 在这个AI无处不在的时代&#xff0c;如何抓住机遇&#xff0c;利用AI技术创造财富&#xff0c;成为了许多人关注的焦点。 接下来&#xff0…

2.5 有限冲激响应(FIR)滤波器

2.5 有限冲激响应&#xff08;FIR&#xff09;滤波器 2.5 有限冲激响应&#xff08;FIR&#xff09;滤波器 在此阶段&#xff0c;我们知道&#xff0c;大多数实际感兴趣的信号可以看作是不同频率下振荡的复数正弦波的总和。这些正弦波的幅度和相位决定了该信号的频率内容&…

苏州 工业三维动画制作「世岩清上」一站式可视化营销服务商

在现代工业设计和营销中&#xff0c;三维动画已成为一种重要的视觉传达工具。它不仅能够直观展示产品的外观和功能&#xff0c;还能通过动态演示来增强观众的理解和体验。本文将深入探讨工业三维动画制作的关键点&#xff0c;包括产品动画和场景动作的制作技巧。 产品动画制作…

数据结构实验二之栈和队列(上)——环形队列和链队

实验题3:实现环形队列的各种基本运算的算法 题目描述 编写一个程序sqqueue.cpp,实现环形队列(假设栈中的元素类型ElemTye为char)的各种基本运算,并在此基础上设计一个程序exp3-3.cpp完成以下功能。 (1)初始化队列q。 (2)判断队列q是否非空。 (3)依次进队元素a、b、c。 (4)出队…

【工具变量】无废城市试点DID数据集(2000-2023)

数据简介&#xff1a;2018年&#xff0c;国务院办公厅发布了《“无废城市”建设试点工作方案》&#xff0c;明确了“无废城市”的概念&#xff0c;强调通过创新、协调、绿色、开放的理念&#xff0c;推动城市固体废物管理的综合改革&#xff0c;力求实现固体废物产生量最小、资…

AI新方向:OpenAI o1是一个更擅长思考的模型系列:高级推理+逻辑严密+更广泛的知识,用于解决复杂的逻辑问题,慢思考

之前推出AI store感觉偏应用&#xff0c;也千篇一律&#xff0c;是AI的一个方向&#xff1a;广度。 现在推出o1 更严密的逻辑&#xff0c;也是AI的一个方向&#xff1a;深度。花更多时间&#xff0c;推理复杂的任务并解决比以前的科学、编码和数学模型更难的问题。确保AI的使用…

大模型训练技术:使用QLM提升Qwen2-7B 128k训练效率3.4倍

大模型训练技术&#xff1a;使用QLM提升Qwen2-7B 128k训练效率3.4倍 原创 一、引言 自Transformer架构问世以来&#xff0c;大模型领域的进展如火如荼&#xff0c;短短几年内&#xff0c;模型参数规模已攀升至天文数字&#xff0c;轻松跨过万亿门槛。面对如此庞然大物&#…

Comfyui 学习笔记3

ipadapter 用noise 增强画质 ipadapter 对每张图片的精准控制 对于一个 不是正方形的图形 作为ipadapter 可能丢弃下半身的风格&#xff0c;需要用ipadapter tile进行ipadapter 全身mask ipadapter advance weight_type 构图和风格迁移 构图迁移&#xff1a;左边什么 右面…

千万不要运行!几个可以整蛊你朋友的Python程序!

Python 能做很多无聊&#xff0c;但有意思的事情&#xff0c;例如接下来的一些案例。以下程序&#xff0c;不要发代码&#xff0c;要不实现不了你整蛊的目的。 要打包成一个 exe 程序&#xff0c;发给朋友才有意思&#xff0c;使用 pip install pyinstaller。 打包命令如下&a…

o1规划能力首测!已超越语言模型范畴,preview终于赢mini一回

克小西 发自 凹非寺 量子位 | 公众号 QbitAI o1-preview终于赢过了mini一次&#xff01; 亚利桑那州立大学的最新研究表明&#xff0c;o1-preview在规划任务上&#xff0c;表现显著优于o1-mini。 相比于传统模型的优势更是碾压级别&#xff0c;在超难任务上的准确率比Llama3.…

360° 镜头检测铝件内壁划痕与杂质:保障铝件内孔制造质量的精准方案

在铝件内孔制造的过程中&#xff0c;内壁的质量把控是至关重要的环节。制造过程中产生的碎屑残留以及划痕等问题&#xff0c;不仅会影响铝件的外观&#xff0c;更可能对其性能和使用寿命造成严重的损害。为了精准检测这些问题&#xff0c;我们提出了一套基于 360 镜头的检测方案…

金融科技革命:API接口开放平台,畅通金融服务之路

金融科技是近年来蓬勃发展的领域&#xff0c;它利用先进的技术手段来改善和创新金融服务。在金融科技的革命中&#xff0c;API接口开放平台扮演着重要的角色&#xff0c;它通过提供统一的接口服务&#xff0c;让金融机构和其他行业能够更方便地进行数据交换和合作。本文将以挖数…

高防服务器有用吗?租用价格一般多少

高防服务器有用吗&#xff1f;有用。高防服务器是一种具备高度防御能力的服务器&#xff0c;主要用于应对DDoS攻击、CC攻击等网络威胁。它通过专业的硬件设备和先进的防御算法&#xff0c;为用户提供持续、稳定的网络安全防护。高防服务器的主要特点包括强大的防御能力、低延迟…

跑步机的心声——N8900蓝牙音频芯片赋予智能健身新维度

国内健身器材市场年销售中跑步机占比超过一半&#xff0c;显示出其在健身器材领域的重要地位。国家卫生部门的公开讲话中提到&#xff0c;健康产业对国民经济的贡献具有无限前景&#xff0c;并强调了政府对健康产业的积极引导和支持。预计健康产业的产值将达到2万亿元以上&…

数据库操作:数据类型

1、数值类型 注&#xff1a;此图的最大值都要减1&#xff1b;因为我的错误&#xff0c;后面会改正&#xff1b; 1.0、tinyint 类型大小——1字节 create table tt1(num tinyint); insert into tt1 values(1); insert into tt1 values(128); -- 越界插入&#xff0c;报错 E…

第 19 章 说过的话就一定要办到——redo log

19.1 事先说明 不必理会 19.2 redo log 是个啥 我们想让已经提交了的事务对数据库中数据所做的修改永久生效&#xff0c;即使后来系统崩溃&#xff0c;在重启后也能把这种修改恢复出来&#xff0c;只需要把修改了哪些东西记录一下就好。这样也就满足了持久性的要求&#xff…