kali [DNS劫持] 实验(详细步骤)
一、描述
介绍
DNS劫持 (Domain Name System hijacking) 是黑客经常使用的一种攻击方式,其原理是通过篡改DNS系统的域名解析结果,将某个域名解析到指定的IP地址,从而使得用户访问该域名所对应的网站时,被重定向到攻击者控制的虚假网站,进而实现种种欺骗行为,如钓鱼、木马下载、恶意软件等。
原理
DNS劫持的核心原理就在于篡改域名解析结果,攻击者通过某种手段获取到通信链路上的DNS信息,然后将目标域名解析到他所想要的IP地址上,从而将用户引导到自己的虚假网站。
DNS攻击方式包括以下方式:
1.本地劫持:将目标域名解析到本机的IP地址上,从而使用户在访问被劫持的域名时被重定向到自己的虚假网站。
2.路由器劫持:攻击者通过攻击用户路由器,修改其DNS服务器配置,从而获得更广泛的攻击范围。
3.中间人攻击:攻击者通过在数据传输过程中拦截DNS查询请求,并将自己的恶意解析结果插入其中,实现目标域名劫持的目的。(本次实验使用方式)
使用的工具
启动工具:ettercap
Ettercap 是 Kali Linux 中一款强大的中间人攻击工具,主要用于网络嗅探、ARP 欺骗和 DNS 劫持等操作。它支持命令行和图形界面两种模式,可对局域网内的流量进行监控和篡改。
主要功能:1)、ARP 欺骗 - 伪造 ARP 响应,使目标主机与网关之间的通信流量流经攻击者主机2)、DNS 劫持 - 修改 DNS 响应,将目标域名解析到指定 IP3)、数据包嗅探 - 捕获并分析网络数据包4)、内容篡改 - 修改传输中的数据(如 HTTP 请求 / 响应)5)、密码提取 - 从流量中提取明文密码等敏感信息
#Ettercap 插件主要分为以下几类:##1. 嗅探增强类`p0f_fingerprint`:基于数据包特征进行操作系统识别`http_header`:提取 HTTP 请求 / 响应头信息`irc_passwd`:嗅探 IRC 聊天密码##2. 中间人攻击类`dns_spoof`:DNS 劫持,修改域名解析结果`arpmitm`:ARP 欺骗基础模块`sslstrip`:HTTPS 降级攻击(需配合其他工具)##3. 内容篡改类`html_codeinject`:向 HTML 页面注入自定义代码(如 JavaScript)`replace`:替换传输中的文件(如图片、可执行文件)`url_rewrite`:重写 URL 请求##4. 信息收集类`etterlog`:记录所有嗅探到的流量`macof`:MAC 地址泛洪攻击`sniff_ports`:扫描目标开放端口##5. 自动化攻击类`mitm_ssh`:SSH 中间人攻击(实验性)`mitm_smtp`:SMTP 中间人攻击`flooder`:发起 DoS 攻击
二、环境条件以及配置
靶机:Windows10
攻击机:kali Linux
网络环境:同一个局域网下
1、修改配置文件
进入ettercap目录,修改dns配置文件
cd /etc/ettercapvim etter.dns
ip a或者ifconfig或nmcli均可查看ip地址
打开文件后,添加数据信息
*(劫持所有网站) A(记录类型) IP(跳转到哪一个IP地址)*(劫持所有网站) PTR(记录类型) IP(跳转到哪一个IP地址)# * 表示所有的域名,不使用 * 也可以,具体指定域名也可以,比如:www.baidu.com# DNS 协议的两种核心记录类型:A 记录和PTR 记录## A 记录:用于将域名映射到IP 地址。当你访问一个网站(如www.example.com)时,浏览器首先会向 DNS 服务器查询该域名对应的 A 记录。#作用:将所有域名(使用通配符*表示)的 A 记录查询都重定向到指定 IP## PTR记录:反向 DNS 解析记录,与 A 记录相反,用于将IP 地址映射回域名。通常用于邮件服务器验证、网络管理等场景。#作用:将所有 IP 地址的反向查询(PTR 记录)都指向指定 IP 对应的域名
之后保存退出即可
接下来启动kail自带的apache服务
service apache2 start
重新编辑index.html文件,修改成攻击者想要用户看到的页面。
cd /var/www/html vim index.html
默认的index.html界面如下:
2、配置ettercap
#启动ettercap的图形化界面ettercap -G
先扫描一下局域网下活跃的主机
将靶机的ip添加到目标1当中,网关的ip添加到目标2当中,并查看:
Ctrl键+t进行查看:
点击右上角的图标,进行ARP欺诈,测试是否成功:
出现以下信息,说明测试完成
3.DNS劫持
接下来进行劫持
到靶机当中,首先我们正常的去访问网站,访问界面是正常的
发送的ping数据包以及回复数据也正常
然后回到kail当中继续配置,开始DNS劫持
菜单栏当中选择Plugins选项
选择第一项
打开以后,找到dns_spoof,双击
前面出现*
表示启动成功,以及观察通知栏的提醒信息
配置完成后,回到靶机当中再次访问
此过程注意:
#关闭kali Linux的防火墙,不关闭可能网页无法显示systemctl stop firewalld
此时ping百度,发现返回的是kali的ip地址,DNS欺骗成功;
靶机再次访问百度或者其他页面的时候,访问到的则是我们在kali上设置的页面(如果没有出现,可以清除一下浏览器缓存再次访问)
kali当中的ettercap工具界面信息:
DNS劫持防护措施
1.使用HTTPS协议
HTTPS协议是一种加密通信协议,可以保证数据在传输过程中的安全性,防范黑客对数据的窃取和篡改,从而有效地防止DNS劫持的攻击。
2.使用DNSSEC
DNSSEC是一种旨在提高DNS安全性的扩展协议,其主要用于防御DNS欺骗攻击。DNSSEC通过数字签名来防止DNS响应被篡改,从而防范DNS劫持攻击。
3.使用VPN
使用虚拟私人网络(VPN)是防范DNS劫持的有效方法。VPN通过建立安全隧道,加密用户的网络流量,能够有效地阻止黑客对数据的窃取和篡改,并防止DNS劫持攻击导致的信息泄漏。