
\[Ettercap\]\] 少不了这个 arp 毒化和流量截取的中间人工具。 ##### dns欺骗原理 ###### 什么是 DNS 欺骗? **DNS 欺骗(DNS Spoofing)** 是一种网络攻击技术,攻击者通过修改 DNS 响应,将目标用户的 DNS 查询结果篡改,指向攻击者控制的服务器。DNS 是域名解析服务的缩写,它将用户输入的域名(例如 `www.example.com`)转化为与之对应的 IP 地址(例如 `192.168.1.1`)。如果攻击者能控制 DNS 响应,就能让用户访问到攻击者伪造的服务器,而不是正确的目标服务器。 ###### **Ettercap** 和 **DNS 欺骗** 的作用 **Ettercap** 是一款强大的网络嗅探和中间人攻击工具,它支持多种攻击方式,包括 **ARP 欺骗** 、**DNS 欺骗** 、**流量注入** 等。我们现在关注的是 **DNS 欺骗**,这是通过以下几个步骤实现的。 ###### 1. **ARP 欺骗(ARP Spoofing)** DNS 欺骗本身并不是一个独立的攻击行为,而是通常与 **ARP 欺骗** 配合使用的。要理解这个过程,我们需要先了解什么是 **ARP(地址解析协议)**。 * **ARP(Address Resolution Protocol)** 用于在局域网内根据设备的 IP 地址找到其对应的 MAC 地址。 * 在局域网中,设备之间的通信是通过 **MAC 地址** 来标识的,但当你要发送数据时,需要知道目标设备的 **IP 地址** 和 **MAC 地址**。 * **ARP 欺骗** 是通过发送伪造的 ARP 包,告诉网络中的其他设备:**"我是你们要与之通信的目标(例如网关或某台设备),所以你们应该将数据发送到我这里。"** 通过 **ARP 欺骗**,攻击者可以让流量流经自己的计算机,成为中间人。 ###### 2. **DNS 欺骗的实现** 一旦使用 ARP 欺骗使得攻击者处于目标与目标网关之间(即中间人位置),接下来的步骤就是 DNS 欺骗。这个步骤的基本流程如下: * 目标机器通过 **ARP 欺骗** 将其网络流量重定向到攻击者计算机。 * 当目标机器发出 DNS 请求时,攻击者会截获该请求,并返回伪造的 DNS 响应。 * 例如,目标机器可能请求解析 `www.example.com` 的 IP 地址。攻击者通过 Ettercap 或其他工具返回一个伪造的 IP 地址(比如攻击者自己的 IP 地址)作为 DNS 响应。 ###### 3. **Ettercap 如何实现 DNS 欺骗** Ettercap 通过嗅探网络流量并劫持 DNS 请求,向目标返回伪造的 DNS 响应来实现 DNS 欺骗。以下是该过程的具体工作方式: * **嗅探和中间人攻击**:攻击者使用 ARP 欺骗将自己置于目标和目标网关之间,使得所有流量都通过攻击者的计算机。此时,攻击者成为中间人。 * **DNS 请求拦截** :当目标设备发起 DNS 查询时(例如查询 `www.example.com`),这些请求会通过攻击者的机器发送。 * **DNS 响应伪造** :攻击者通过配置 Ettercap 工具,在 `etter.dns` 配置文件中指定伪造的 DNS 解析结果(例如将 `www.example.com` 指向攻击者的 IP 地址)。然后,Ettercap 将伪造的 DNS 响应发送给目标。 * **目标访问攻击者的伪造服务器**:目标机器收到伪造的 DNS 响应后,会尝试访问被篡改的 IP 地址,通常是攻击者的计算机,从而将受害者引导到攻击者控制的站点或服务器。 ###### 4. **Ettercap 中 DNS 欺骗的配置** 在 Ettercap 中,你可以通过配置 `etter.dns` 文件来指定 DNS 欺骗的行为。这个配置文件包含了伪造的 DNS 记录,比如: plaintext `* A 192.168.197.193 # 将所有域名解析为攻击者的 IP 地址 * PTR 192.168.197.193 # 反向解析,确保所有指向攻击者 IP 的域名都被正确解析` 通过这种方式,Ettercap 在执行中间人攻击时能够篡改所有 DNS 请求的响应,将目标请求重定向到攻击者指定的服务器(通常是攻击者自己的 IP 地址)。 ###### 5. **实际应用中的攻击效果** DNS 欺骗可以被用来进行多种攻击,包括: * **钓鱼攻击**:将目标用户引导到一个伪造的网站(例如伪造银行网站),以获取用户的登录凭据。 * **流量窃取**:通过将目标设备指向一个恶意的 DNS 服务器,攻击者可以窃取用户的流量。 * **拒绝服务攻击(DoS)**:将目标设备的 DNS 查询指向一个不存在的或无法响应的 IP 地址,导致目标无法访问网站 ###### 应用场景 一般来讲arp 欺骗只能在局域网中使用 ,同时dns欺骗不一定只能在局域网中,因为我们还可以拿到路由器的权限之后就可以截获多个网络的dns解析请求,从而实现中间人攻击返回dns解析响应。 ###### 正向和反向解析 在 DNS 欺骗中,**正向解析** (Forward Lookup)和 **反向解析** (Reverse Lookup)都有特定的配置目的,这两种解析方式通过不同的方式影响网络通信的行为。具体来说,在使用 **Ettercap** 进行 DNS 欺骗时,正向解析和反向解析的配置非常重要,下面我来详细解释这两者的作用和配置原因。 ###### 1. **正向解析(Forward Lookup)** 正向解析是 DNS 的常规操作,即将 **域名** 转换为 **IP 地址**。 * **例子** :当你在浏览器中输入 `www.example.com` 时,浏览器会通过 DNS 查询 `www.example.com` 对应的 IP 地址。DNS 服务将返回一个 IP 地址(比如 `93.184.216.34`),然后浏览器使用这个 IP 地址与服务器建立连接。 在 DNS 欺骗中,正向解析的配置通常用于: * **将域名指向攻击者的 IP 地址** :假设目标要访问的是 `www.example.com`,攻击者可以将该域名的解析结果伪造为攻击者的 IP 地址。这样,当受害者查询 `www.example.com` 时,返回的并不是正确的服务器 IP,而是攻击者的服务器或计算机的 IP 地址。 例如,在 Ettercap 的配置文件 `etter.dns` 中,正向解析可能看起来是这样的: `www.example.com A 192.168.197.193 # 将 www.example.com 解析为攻击者的 IP 地址` 这里 `www.example.com` 的 A 记录将指向攻击者的 IP 地址 `192.168.197.193`,这就使得任何访问 `www.example.com` 的目标设备都会被重定向到攻击者的机器。 ###### 2. **反向解析(Reverse Lookup)** 反向解析是指将 **IP 地址** 转换为 **域名** 。这通常是通过 **PTR 记录**(Pointer Record)实现的。 * **例子** :假设某个网站的服务器 IP 地址是 `93.184.216.34`,你可以进行反向 DNS 查询,获取该 IP 地址对应的域名(比如 `example.com`)。 反向解析在 DNS 欺骗中的作用是,确保当目标设备试图进行反向 DNS 查询时,返回的域名是合理的,避免因域名与 IP 地址不匹配而引起怀疑。 ###### 3. **为什么正向解析和反向解析都要配置?** 在进行 DNS 欺骗时,攻击者往往不仅想要将目标用户的请求重定向到攻击者控制的服务器,还希望这些伪造的 DNS 解析结果看起来是可信的。为此,正向解析和反向解析都需要被配置,以达到以下效果 解析实操配置 ```shell # 反向解析配置 100.1.168.192.in-addr.arpa PTR www.example.com 101.1.168.192.in-addr.arpa PTR ftp.example.com # 正向解析配置 www.example.com A 192.168.1.100 ftp.example.com A 192.168.1.101 ``` ##### 实验 ###### 实验机器 **操作系统** :Kali Linux(攻击机)和 Windows/Linux(目标机)在同一局域网内。 **工具** :Ettercap、Apache(在Kali上运行一个伪造的Web服务)。 **网络配置**:攻击机与目标机同处一个子网,Kali具备足够权限(需要 root 权限)。 其实简单说一下就是,我们保证实验环境我们在一个局域网,同时我们利用操作进行arp毒化,使得我们的kali充当路由器的功能,之后截取受害者dns解析流量,然后解析成我们的ip,使得他返回我们的攻击ip。 1. 钓鱼 2. 截取流量,捕获局域网内相关流量 ###### arp欺骗 网关192.168.234.235 接下来使用ettercap 进行arp毒化 ```shell ettercap -G 启动 ```  ###### . 伪造网关和受害者机器 如果你只伪造了网关(比如通过 ARP 中毒将网关的 IP 地址与攻击者的 MAC 地址绑定),这样一来,所有**发往外部网络**的流量(即目标主机想要访问互联网或其他网络的流量)就会流向你的设备。也就是说: * 目标主机想通过网关访问外部网络时,会把数据包发给你的设备(因为它误认为你的设备是网关)。 * 你可以读取、修改这些流量,甚至将它们转发给真实网关,从而完成 Man-in-the-Middle 攻击。 但是,仅仅伪造网关并不能拦截从目标主机到网关的**反向流量**,因为: * 网关会将数据包发往目标主机,但网关的 ARP 表中依然会保留目标主机的真实 MAC 地址。 * 目标主机并没有修改 ARP 表,它仍然认为网关的 MAC 地址是正常的。 所以,仅仅伪造网关不会影响目标主机和网关之间的流量反向传输。为了拦截完整的流量,你需要同时伪造目标主机的 ARP 表,让网关也误认为攻击者是目标主机。 ###### 2. **伪造网关和目标主机的 ARP 表**: 为了拦截整个网络流量,攻击者需要同时对**两个方向**的 ARP 表进行修改: * **目标主机:** 使目标主机误认为攻击者的 MAC 地址是网关的 MAC 地址。这样,目标主机将会把发往网关的数据包发送到攻击者,而不是实际的网关。 * **网关:** 使网关误认为攻击者的 MAC 地址是目标主机的 MAC 地址。这样,网关将数据包发送给攻击者,而不是目标主机。 这样,**两条数据流都经过攻击者的设备**: * 目标主机发往网关的流量会先经过攻击者。 * 网关发往目标主机的流量也会经过攻击者。 这种操作实现了**双向拦截**,保证了流量的完整性。如果你只伪造网关,可能只有目标主机发往外部的流量会经过你,但如果目标主机和网关的反向通信不经过你,攻击的效果就会受到限制。 **Kali设置网络转发:echo 1 \> /proc/sys/net/ipv4/ip forward** 因为默认不开启,只有开启了之后才能在不同接口转发流量。一般来讲因为kali需要充当路由器所以必须开。 ###### 设置配置文件 ```shell vim /etc/ettercap/etter.dns ```  开始dns毒化   可以看到已经启动了 但是记得删除 解析记录 Windows查看dns缓存命令:ipconfig /displaydns; 清理dns缓存命令:ipconfig /flushdns