【渗透基础】第六章 DNS

本文详细介绍了DNS的工作原理,包括请求响应、域名系统解析过程和服务器类型。同时,讨论了DNS加密技术如DoT、DoH等,以及DNS在网络安全中的利用,如DGA和DNS隧道。此外,还提到了相关漏洞如DNS劫持和拒绝服务,并解释了重要的DNS术语。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系列文章目录

`
第六章 DNS


🔥系列专栏:网络基础
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2022年9月8日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!


前言

基础不牢,地动山摇,要想入门网络安全,网络基础是必不可少的哦。
帮助大家梳理,想要更深入的了解可以去细细攻读一些文章,一定能有所收获。我这里只能有的放矢的给大家囫囵吞枣的讲一讲。


DNS

一、简介

DNS是一个简单的请求-响应协议,是将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP协议的53端口

二、请求响应

1、DNS记录(都是信息收集环节必须要搜索收集的信息)

A记录
        返回域名对应的IPv4地址

NS记录
        域名服务器
        返回该域名由哪台域名服务器解析

PTR记录
        反向记录
        从IP地址到域名的记录

MX记录
        电子邮件交换记录
        记录邮件域名对应的IP地址

2、响应码

NOERROR   ---无错误条件

No error condition

FORMERR   ---格式错误-名称服务器无法解释查询

Format error - The name server was unable to interpret the query

SERVFAIL   ---由于名称服务器问题,名称服务器无法处理该查询。

Server failure - The name server was unable to process this query due to a problem with the name server

NXDOMAIN   ---应该存在的某些名称不存在。

this code signifies that the domain name referenced in the query does not exist

NOTIMP   ---名称服务器不支持指定的操作码

Not Implemented - The name server does not support the requested kind of query

REFUSED   ---名称服务器出于策略或安全原因拒绝执行指定的操作。

Refused - The name server refuses to perform the specified operation for policy reasons

NODATA   ---指示名称对于给定类是有效的,但[没有]给定类型的记录。必须从答案中推断节点数据响应。

A pseudo RCODE which indicates that the name is valid, for the given class, but [there] are no records of the given type A NODATA response has to be inferred from the answer.

三、域名系统工作原理

1、解析过程

DNS解析过程是递归查询的,具体过程如下:

  1. 用户向本地查找:用户要访问域名www.example.com时,先查看本机hosts是否有记录或者本机是否有DNS缓存,如果有,直接返回结果

  2. 本地向向递归查找:本地找不到时,向递归服务器查询该域名的IP地址

  3. 递归向根查找:递归缓存为空时,首先向根服务器查询com顶级域的IP地址

  4. 根告知递归.com的顶级:根服务器告知递归服务器com顶级域名服务器的IP地址

  5. 递归向.com顶级查找域名权威:递归向com顶级域名服务器查询负责example.com的权威服务器的IP

  6. 顶级回复:com顶级域名服务器返回相应的IP地址

  7. 递归向权威查找IP:递归向example.com的权威服务器查找www.example.com的地址记录

  8. 权威告知:权威服务器告知www.example.com的地址记录

  9. 递归告知:递归服务器将查询结果返回客户端

在这里插入图片描述

2、域传送

DNS服务器可以分为主服务器、备份服务器和缓存服务器。域传送是指备份服务器从主服务器拷贝数据,并使用得到的数据更新自身数据库。域传送是在主备服务器之间同步数据库的机制。

四、服务器类型

1、根服务器

根服务器是DNS的核心,负责互联网顶级域名的解析,用于维护域的权威信息,并将DNS查询引导到相应的域名服务器。

根服务器在域名树中代表最顶级的域, 一般省略。

13台IPv4根服务器的域名标号为a到m,即a.root-servers.org到m.root-servers.org,所有服务器存储的数据相同,仅包含ICANN批准的TLD域名权威信息。

2、 权威服务器

权威服务器上存储域名Zone文件,维护域内域名的权威信息,递归服务器可以从权威服务器获得DNS查询的资源记录。

权威服务器需要在所承载的域名所属的TLD管理局注册,同一个权威服务器可以承载不同TLD域名,同一个域也可以有多个权威服务器。

3、递归服务器

递归服务器负责接收用户的查询请求,进行递归查询并响应用户查询请求。在初始时递归服务器仅有记录了根域名的Hint文件。

五、加密方案

作为主流的防御方案,DNS加密有五种方案,分别是 DNS-over-TLS (DoT)、DNS-over-DTLS、DNS-over-HTTPS (DoH)、DNS-over-QUIC以及DNSCrypt。

DoT

DoT方案在2016年发表于RFC7858,使用853端口。主要思想是Client和Server通过TCP协议建立TLS会话后再进行DNS传输,Client通过SSL证书验证服务器身份。

DNS-over-DTLS

DNS-over-DTLS和DoT类似,区别在于使用UDP协议而不是TCP协议。

DoH

DoH方案在发表RFC8484,使用 https://dns.example.com/dns-query{?dns} 来查询服务器的IP,复用https的443端口,流量特征比较小。DoH会对DNS服务器进行加密认证,不提供fallback选项。目前Cloudflare、Google等服务商对DoH提供了支持。

DNS-over-QUIC

DNS-over-QUIC安全特性和DoT类似,但是性能更高,目前没有合适的软件实现。

DNSCrypt

DNSCrypt使用X25519-XSalsa20Poly1305而非标准的TLS,且DNSCrypt的Client需要额外的软件,Server需要的专门的证书。

六、DNS利用

1、DGA

DGA(Domain Generate Algorithm,域名生成算法)是一种利用随机字符来生成C&C域名,从而逃避域名黑名单检测的技术手段,常见于botnet中。一般来说,一个DGA域名的存活时间约在1-7天左右。

通信时,客户端和服务端都运行同一套DGA算法,生成相同的备选域名列表,当需要发动攻击的时候,选择其中少量进行注册,便可以建立通信,并且可以对注册的域名应用速变IP技术,快速变换IP,从而域名和IP都可以进行快速变化。

DGA域名有多种生成方式,根据种子类型可以分为确定性和不确定性的生成。不确定性的种子可能会选用当天的一些即时数据,如汇率信息等。

2、DNS隧道

DNS隧道工具将进入隧道的其他协议流量封装到DNS协议内,在隧道上传输。这些数据包出隧道时进行解封装,还原数据。

3、RDAP

RDAP (Registration Data Access Protocol) 协议是Whois协议的后继,和 Whois 协议类似,RDAP协议提供了域名、自治系统、IP地址的信息查询。

七、相关漏洞

1、DNS劫持

1: DNS劫持是指在劫持的网络范围拦截域名解析的请求,并将请求转发到有害域名上的手段。
2: 局域网劫持, 攻击者通过伪装成网关, 劫持受害者的网络请求, 将网络请求拦截到指定的服务器

DNS劫持有多种方式,比较早期的攻击方式是通过攻击域名解析服务器,或是伪造DNS响应的方法,来将域名解析到恶意的IP地址。

随着互联网应用的不断发展,出现了基于废弃记录的劫持方式。这种方式发生的场景是次级域名的解析记录指向第三方资源,而第三方资源被释放后,解析记录并没有取消,在这种场景下,可以对应申请第三方资源,以获取控制解析记录的能力。
打个比方:小区里有一户人家,外面的朋友可以打着看望朋友的名义进小区,有一天朋友搬家了,但是保安不知道,外面的朋友依旧可以进入小区

2、拒绝服务

DNS服务通常会开启UDP端口,当DNS服务器拥有大量二级域NS记录时,通过DNS的UDP反射攻击可以实现高倍的拒绝服务。

3、ICANN

互联网名称与数字地址分配机构 (Internet Corporation for Assigned Names and # IANA

互联网号码分配局 (Internet Assigned Numbers Authority, IANA) ,是一家互联网地址指派机构,管理国际互联网中使用的IP地址、域名和许多其它参数的机构。

八、术语

1、mDNS

Multicast DNS (mDNS),多播DNS,使用5353端口,组播地址为 224.0.0.251 或 [FF02::FB] 。在一个没有常规DNS服务器的小型网络内可以使用mDNS来实现类似DNS的编程接口、包格式和操作语义。mDNS协议的报文与DNS的报文结构相同,但有些字段对于mDNS来说有新的含义。

启动mDNS的主机会在进入局域网后向所有主机组播消息,包含主机名、IP等信息,其他拥有相应服务的主机也会响应含有主机名和IP的信息。

mDNS的域名是用 .local 和普通域名区分开的。

2、FQDN

FQDN (Fully-Qualified Domain Name) 是域名的完全形态,主要是包含零长度的根标签,例如 www.example.com. 。

3、TLD

Top-Level Domain (TLD) 是属于根域的一个域,例如 com 或 jp 。

TLD一般可以分为 Country Code Top-Level Domains (ccTLDs) 、Generic Top-Level Domains (gTLDs) 以及其它。

4、IDN

Internationalized Domain Names for Applications (IDNA) 是为了处理非ASCII字符的情况。

5、CNAME

CNAME即Canonical name,又称alias,将域名指向另一个域名。

6、TTL

Time To Live,无符号整数,记录DNS记录过期的时间,最小是0,最大是2147483647 (2^31 - 1)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

人间体佐菲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值