原理

访问像 www.example.com 这样的网站。你将这个友好的域名输入浏览器,但你的电脑不理解文字——它说的是数字的语言,特别是 IP 地址。那么,你的电脑是如何找到网站的 IP 地址的呢?这时就需要DNS,互联网的可靠翻译器。

主机文件

The hosts 文件是一个简单的文本文件,用于将主机名映射到 IP 地址,提供了一种手动域名解析方法,可以绕过 DNS 过程。虽然 DNS 自动将域名转换为 IP 地址,但 hosts 文件允许直接、本地覆盖。这对于开发、故障排除或阻止网站特别有用。

The hosts 文件位于 Windows 的 C:\Windows\System32\drivers\etc\hosts 和 Linux 及 MacOS 的 /etc/hosts 。文件中的每一行遵循以下格式:

<IP Address>    <Hostname> [<Alias> ...]

DNS 的关键概念

Domain Name SystemDNS )中, zone 是域名空间的一个独立部分,由特定实体或管理员管理。你可以把它想象成一个包含一组域名的虚拟容器。例如, example.com 及其所有子域名(如 mail.example.comblog.example.com )通常都属于同一个 DNS 区域。

区域文件是一个存储在 DNS 服务器上的文本文件,它定义了该区域内资源记录(将在下文中讨论),为将域名转换为 IP 地址提供关键信息。

为了说明,这里是一个简化的区域文件,用于 example.com 可能看起来像这样:

$TTL 3600 ; Default Time-To-Live (1 hour)
@       IN SOA   ns1.example.com. admin.example.com. (
                2024060401 ; Serial number (YYYYMMDDNN)
                3600       ; Refresh interval
                900        ; Retry interval
                604800     ; Expire time
                86400 )    ; Minimum TTL

@       IN NS    ns1.example.com.
@       IN NS    ns2.example.com.
@       IN MX 10 mail.example.com.
www     IN A     192.0.2.1
mail    IN A     198.51.100.1
ftp     IN CNAME www.example.com.

DNS 服务器存储各种资源记录,每个记录在域名解析过程中都起着特定的作用。让我们探索一些最常见的 DNS 概念:

DNS Concept  DNS 概念Description  描述Example  示例
Domain Name用于网站或其他互联网资源的人类可读标签。www.example.com
IP Address分配给每个连接到互联网的设备的唯一数值标识符。192.0.2.1
DNS Resolver一个将域名转换为 IP 地址的服务器。您的互联网服务提供商的 DNS 服务器或公共解析器,如 Google DNS( 8.8.8.8
Root Name ServerDNS 层次结构中的顶级服务器。全球有 13 个根服务器,命名为 A-M: a.root-servers.net
TLD Name Server负责特定顶级域的服务器(例如,.com,.org)。Verisign for .com ,PIR for .org
Authoritative Name Server存放域名实际 IP 地址的服务器。通常由主机提供商或域名注册商管理。
DNS Record TypesDNS 中存储的不同类型的信息。A, AAAA, CNAME, MX, NS, TXT 等
既然我们已经探索了 DNS 的基本概念,让我们深入探讨 DNS 信息的构建块——各种记录类型。这些记录存储与域名相关的不同类型的数据,每种数据都有特定的用途:
Record Type  记录类型Full Name  全名Description  描述Zone File Example  区域文件示例
AAddress Record  地址记录将主机名映射到其 IPv4 地址。www.example.com. IN A 192.0.2.1   www.example.com.192.0.2.1
AAAAIPv6 Address Record  IPv6 地址记录将主机名映射到其 IPv6 地址。www.example.com. IN AAAA 2001:db8:85a3::8a2e:370:7334   www.example.com. 在 AAAA 2001:db8:85a3::8a2e:370:7334
CNAMECanonical Name Record  规范名称记录为主机名创建别名,指向另一个主机名。blog.example.com. IN CNAME webserver.example.net.   blog.example.com. 在 CNAME webserver.example.net.
MXMail Exchange Record  邮件交换记录指定负责处理该域名电子邮件的邮件服务器。example.com. IN MX 10 mail.example.com.
NSName Server Record  名称服务器记录将 DNS 区域委托给特定的权威名称服务器。example.com. IN NS ns1.example.com.
TXTText Record  文本记录存储任意文本信息,通常用于域名验证或安全策略。example.com. IN TXT "v=spf1 mx -all" (SPF record)
example.com. IN TXT "v=spf1 mx -all" (SPF 记录)
SOAStart of Authority Record
权威记录的开始
指定 DNS 区域的行政信息,包括主要名称服务器、负责人的电子邮件地址和其他参数。example.com. IN SOA ns1.example.com. admin.example.com. 2024060301 10800 3600 604800 86400   example.com. 在 SOA ns1.example.com. admin.example.com. 2024060301 10800 3600 604800 86400
SRVService Record  服务记录定义特定服务的主机名和端口号。_sip._udp.example.com. IN SRV 10 5 5060 sipserver.example.com.
PTRPointer Record  指针记录用于反向 DNS 查询,将 IP 地址映射到主机名。1.2.0.192.in-addr.arpa. IN PTR www.example.com.

攻击手段

两类攻击者

被动攻击者(窃听者):不会影响两者之间的通讯,只是想获取信息

主动攻击者:会干扰两者的通讯

安全目标

CIA:

C(confidentiality):即在有主被者攻击情况下,无法获得网络中的内容

I(Integrity):攻击者无法篡改网络通信的内容

A(Authentication):通信双方是正确的主题

针对域名系统的攻击

  1. 输入url地址时,浏览器会询问本地的域名解析器
  2. 本地域名解析器会询问根根域名解析器
  3. 根域名解析器会返回org服务器域名解析器的相应地址
  4. 本地域名解析器会根据地址找到.org域名服务器询问
  5. org域名服务器会返回域名服务器地址 6 .本地域名解析器再根据该地址寻找所需服务器
flowchart LR
	缓存-->|直接查询|本地域名解析器
    电脑 ---> 本地域名解析器   
    本地域名解析器-->|记录|缓存
    本地域名解析器-->根域名解析器
    根域名解析器-->|.org服务器地址 NS xxx.xx.xxx.xx|本地域名解析器
    本地域名解析器-->.org域名解析器
    .org域名解析器-->|域名服务器地址 NS xxx.xx.xxx.xx|本地域名解析器
    本地域名解析器-->域名服务器
    域名服务器-->|A www=xxx.xx.xxx.xx|本地域名解析器
    

NS服务器记录:由根目录和.org服务器提供的ip地址

地址记录:由域名服务器返回的

攻击方向

一、对查询过程的信息干扰

二、入侵域名服务器

三、DNS缓存攻击(对QID)