网络安全 - DNS劫持原理 + 实验

news2024/11/29 9:49:36

DNS 劫持

什么是 DNS 为什么需要 DNS

D N S \color{cyan}{DNS} DNS(Domain Name System)即域名系统。我们常说的 DNS 是域名解析协议。

DNS 协议提供域名到 IP 地址之间的解析服务。计算机既可以被赋予 IP 地址,也可以被赋予主机名和域名。用户通常使用主机名或域名来访问对方的计算机,而不是直接通过 IP 地址访问。因为与 IP 地址的一组纯数字相比,用字母配合数字的表示形式来指定计算机名更符合人类的记忆习惯。但要让计算机去理解名称,相对而言就变得困难了。因为计算机更擅长处理一长串数字。

为了解决上述的问题,DNS 服务应运而生。DNS 协议提供通过域名查找 IP 地址,或逆向从 IP 地址反查域名的服务。

DNS 工作原理

DNS 的递归和迭代

在这里插入图片描述

本地DNS:即 host

根服务器: 根服务器主要用来管理互联网的主目录。全世界只有 13 个根逻辑服务器节点,其中 10 个设置在美国,另外 3 个分别在英国、瑞典、日本。

顶级域名服务器: 顶级域名服务器一般用于存储 .com.edu.cn 等顶级域名。

递归服务器: 递归服务器可以理解为存储着官方域名解析授权的授权服务器。一般存储着这个网络中域名和 IP 地址的解析关系。

试想一下,如果每个用户在上网的时候都向授权服务器发送请求,那授权服务器必然承受不住,所以就有了缓存服务器。

缓存服务器: 缓存服务器相当于授权服务器的代理。用户在每次上网的时候,域名解析的请求都是发给缓存服务器的。缓存服务器经过迭代查询后,将域名和 IP 的解析表存储在本地,等后续再有用户请求相同的域名时,就会直接答复,不再请求。

DNS 解析过程

1、DNS 客户端查询先采用递归方式,先确认本地 DNS 文件是否有域名和 IP 的解析表。如果没有,则将请求发送给缓存服务器,缓存服务器判断本地是否有这个域名的解析缓存。

2、如果本地没有缓存,就会把域名发送到根服务器。根服务器收到 www.baidu.com 请求后,会判断 .com 是谁授权管理,并返回 .com 所在的顶级域名服务器 IP 地址。

3、缓存服务器继续向顶级域名服务器发送 www.baidu.com 的解析请求,顶级域名服务器收到请求后,会返回下一级 .baidu.com 的递归服务器 IP 地址。

4、缓存服务器继续向递归服务器发送 www.baidu.com 的解析请求,递归服务器收到请求后,返回www.baidu.com 的解析地址。(如果域名层级较多,则递归服务器也会存在多级。)

5、缓存服务器得到 www.baidu.com 的解析 IP 后,将 IP 地址发送给客户端,同时在本地存储。

6、后续一段时间内,当有客户端再次请求 www.baidu.com 的域名解析时,缓存服务器直接回应解析的 IP 地址,不再重复询问。

DNS 劫持原理

本质上是利用了 ARP 欺骗原理。恶意攻击者通过 ARP 欺骗伪装成缓存服务器,将客户端的 DNS 请求返回指定的IP地址。

假设用户想要访问一个名为 www.baidu.com 的网站。当用户在浏览器中输入网址并按下回车时,操作系统会向 DNS 服务器发送一个 DNS 查询请求,以获取该网站的 IP 地址。

正常情况下,DNS服务器会返回与 www.baidu.com 对应的正确 IP 地址,然后用户的浏览器会使用该 IP 地址来建立连接并加载网站内容。

但是,在 DNS 劫持的情况下,恶意攻击者可能会干扰 DNS 查询过程。攻击者可能会修改 DNS 服务器的配置或在网络中插入恶意设备,以便在用户发出 DNS 查询请求时返回错误的 IP 地址。

例如,假设攻击者将 www.baidu.com 的 DNS 记录篡改为指向恶意网站的 IP 地址。当用户尝试访问 www.baidu.com时,DNS 服务器返回的 IP 地址实际上是恶意网站的 IP 地址,而不是真正的www.example.com网站的 IP 地址。

因此,用户的浏览器会被重定向到恶意网站,可能会导致用户受到钓鱼攻击或下载恶意软件。

DNS 劫持实验

实验目的

本次实验旨在通过配置和使用 Kali Linux 中的 dnsmasq 服务,演示 DNS 劫持攻击的过程,并观察其对被攻击主机的影响。通过本实验,了解 DNS 劫持的原理及其防御方法,以加强网络安全意识和能力。

实验环境
  • 两台主机:
    • 被攻击主机(Windows/Linux)
    • 攻击者主机(Kali Linux)
  • Wireshark 安装在攻击者主机主机上,用于抓包分析。
实验步骤
1、在 Kali Linux 中安装并配置 dnsmasq 服务 并配置 dnsmasq 进行域名劫持
  • 安装 dnsmasq

    apt-get update
    apt-get install dnsmasq -y
    
  • 配置 dnsmasq

    echo -e "resolv-file=/etc/resolv.conf\nstrict-order\nlisten-address=192.168.100.139,192.168.100.142\naddress=/zhaofan.com/192.168.100.10\nserver=8.8.8.8" >> /etc/dnsmasq.conf
    
  • 本地启用 Dnsmasq 解析

    echo "" > /etc/resolv.conf && echo "nameserver 192.168.100.10" >> /etc/resolv.conf
    
  • 在 hosts 文件中添加解析

    echo "192.168.100.10 zhaofan.com" >> /etc/hosts
    
  • 启动 dnsmasq 服务并设置开机自启动

    systemctl restart dnsmasq && systemctl enable dnsmasq
    
2、修改被攻击主机的 DNS 设置

在被攻击主机上,将其 DNS 服务器地址指向 Kali Linux 主机的 IP 地址。

  • Windows主机:

    打开网络和共享中心,点击当前连接的网络,进入属性,选择Internet 协议版本4 (TCP/IPv4),然后修改 DNS 服务器地址为 192.168.100.20

  • Linux主机:

    修改 /etc/resolv.conf 文件,添加或修改以下内容:

    echo "" > /etc/resolv.conf && echo "nameserver 192.168.100.10" >> /etc/resolv.conf
    
3、 使用 arpspoof 进行 ARP 欺骗

在 Kali Linux 上,使用 arpspoof 进行 ARP 欺骗,使得被攻击主机的流量通过攻击者主机:

 arpspoof -i eth0 -t 192.168.100.142 -r 192.168.100.2
4、观察被攻击主机访问被劫持域名时的重定向情况
  • 启动 Wireshark:

    在 Kali Linux 上启动 Wireshark 并选择合适的网络接口,开始抓包。

    在这里插入图片描述

  • 选择合适的网络接口,开始捕获数据包。

    检查网卡信息

      ifconfig	
    

请添加图片描述
请添加图片描述请添加图片描述

  • 搭建 HTTP 服务器

    在 Kali Linux 上搭建HTTP 服务器

    python3 -m http.server 80
    
  • 被攻击主机访问域名

    在被攻击主机上,打开浏览器访问 zhaofan.com

    如果被攻击主机访问 zhaofan.com 时显示的是 Kali Linux 上的 HTTP 服务器页面,说明 DNS 劫持成功。

  • 观察效果

    在 Wireshark 中,可以观察到 DNS 请求和响应。

    请添加图片描述

    DNS请求:被攻击主机请求解析 zhaofan.com

    DNS响应:Kali Linux主机的 dnsmasq 返回伪造的IP地址(192.168.100.10)。

    被攻击主机会被重定向到攻击者控制的IP地址,而不是 zhaofan.com 的真实IP地址。

5、分析与讨论
  • ARP欺骗原理

    ​ 通过 ARP 欺骗,被攻击主机的 ARP 缓存中会将网关的 MAC 地址错误地映射为攻击者主机的 MAC 地址。这使得被攻击主机的流量首先经过攻击者主机,从而实现流量拦截和篡改。

  • DNS劫持原理

    ​ 通过配置 dnsmasq,攻击者主机能够响应被攻击主机的 DNS 查询请求,并返回伪造的 DNS 解析结果,将特定域名解析为攻击者指定的 IP 地址。

  • 流量分析

    ​ 通过 Wireshark 抓包,可以观察到被攻击主机的 DNS 查询请求被拦截和篡改,返回的 IP 地址是攻击者主机配置的伪造地址。通过这种方式,攻击者可以实现对被攻击主机的 DNS 劫持。

  • 防御措施

    • 使用静态 ARP 表:通过配置静态 ARP 表,可以防止 ARP 欺骗攻击。
    • 启用 DNSSEC:DNSSEC 提供 DNS 数据的真实性和完整性验证,能够有效防止 DNS 劫持。
    • 使用 HTTPS:通过使用 HTTPS 协议,可以确保数据传输的安全性,即使 DNS 劫持也难以篡改加密的数据传输。
6、实验反思
  • 实验过程中的挑战

    ​ 在实验过程中,需要确保被攻击主机正确配置为使用攻击者主机作为 DNS 服务器,同时需要确保 ARP 欺骗成功生效。这要求对网络环境和配置有较高的理解和掌控能力。

  • 实验效果评估

    ​ 通过本次实验,可以直观地理解 DNS 劫持和 ARP 欺骗的原理和实施方法,同时也认识到这些攻击手段的危险性和潜在危害。

  • 安全防护意识

    ​ 通过实验,可以更加深刻地认识到网络安全的重要性,了解各种防御措施的必要性和实施方法,提高网络安全防护意识。

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

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

相关文章

java第二十三课 —— 继承

面向对象的三大特征 继承 继承可以解决代码复用,让我们的编程更加靠近人类思维,当多个类存在相同的属性(变量)和方法时,可以从这些类中抽象出父类,在父类中定义这些相同的属性和方法,所有的子…

Anaconda环境安装失败的解决方案

链接步骤的补充。 为了运行marlib,需要一个全新的Anaconda环境。但是,不想把文件安装在C盘,会造成空间不足。于是试着在.condarc文件里面改动了路径,具体如图。 上图中,在defaults前面添加了D盘的路径作为安装路径。 …

增材制造引领模具创新之路

随着科技的快速发展和制造业的不断转型升级,增材制造(也称为3D打印)技术正逐渐展现出其在模具智造中的巨大潜力和优势。增材制造以其独特的加工方式和设计理念,为模具行业带来了革命性的变革,为传统制造业注入了新的活…

【odoo | XML-RPC】odoo外部API解读,实现跨系统间的通讯!

概要 文章注意对官方的XML-RPC进行解读实操,以python为例,给大家介绍其使用方式和调用方法。 内容 什么是odoo的外部API? Odoo 的外部 API 是一种允许外部应用程序与 Odoo 实例进行交互的接口。通过 API,可以执行各种操作,例如…

如果给电商系统颜值搞排名,我觉得淘宝千牛系统是天花板了。

淘宝的商家操作界面-千牛系统经过多年的迭代,无论从颜值上、功能上还是用户体验上都是行业天花板的存在,我截图软件上的一些图给大家分享下。

helm升级部署时出现升级挂起状态处理

问题 在使用helm 升级命令时,升级命令如下: helm upgrade -i -f ./values-prod.yaml myapp ./ -n myns --create-namespace中途因为网络原因,再次运行上面升级命令时出现,如下错误: Error: UPGRADE FAILED: another …

linux centos 安装docker

本章教程介绍如何在Linux CentOS中安装Docker服务。 1. 更新系统软件包 首先,确保你的系统软件包是最新的: sudo yum update -y2. 安装必要的依赖包 安装一些必要的依赖包: sudo yum install -y yum-utils device-mapper-persistent-data lvm23. 添加 Docker 的官方仓库…

Redis订阅发布你会用了吗?

点击下方“JavaEdge”,选择“设为星标” 第一时间关注技术干货! 免责声明~ 任何文章不要过度深思! 万事万物都经不起审视,因为世上没有同样的成长环境,也没有同样的认知水平,更「没有适用于所有人的解决方案…

[数据集][目标检测]变电站火灾检测电力场景烟雾明火检测数据集VOC+YOLO格式140张2类别真实场景非PS合成

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):140 标注数量(xml文件个数):140 标注数量(txt文件个数):140 标注类别…

Prometheus的四种指标类型

目录 一、Counter 计数器 1.1Counter 是计数器类型 1.2Counter 类型示例 二、Gauge 仪表盘 2.1Gauge是测量器类型 2.2Gauge 类型示例 三、Histogram 累积直方图 3.1Histogram 作用及特点 3.2使用 histogram 柱状图 四、Summary 摘要 一、Counter 计数器 1.1Counter …

Java高级特性

引言 Java不仅提供了基础的编程功能,还包括了一系列强大的高级特性,这些特性能够显著提高代码的灵活性、可扩展性和性能。本文将详细介绍Java的几个高级特性,包括反射机制、注解与注释、泛型编程、以及Lambda表达式与Stream API,并…

AntDB数据库中级认证(ACP)题库

单项选择题 共35题,大题得分:62.0,大题满分:70.0 1.函数计算外移的作用? A. 增加计算量 B. 减少计算量 C. 减少冗余查询 D. 改变关联顺序 2.0(本题分数:2.0) 学员答案&#…

Stable Diffusion 【AI绘画提示词】摄影效果提示词,超美摄影效果摄影特效!让平凡的照片焕发出独特的魅力!

高端的摄影作品需要的专业设备价格昂贵,并不是一般人能够承受的起的,优质摄影作品对光线等一系列要求也非常的高,而AI摄影就完美的解决了这些问题,只需要配合适当的提示词,这些问题都可以迎刃而解。 AI绘画没灵感&…

几款让你怦然心动的神奇工具——搜嗖工具箱

alteredqualia AlteredQualia 脑洞爆炸器网站,不得不说这是一个神奇的网站,在这个网站上你可以实现不可思议的各种操作,让我们对网站有了新的认知,因为它告诉你不是所有有趣的网站都那么花哨,有些网站看着外形平淡无奇…

实时交通 | 城市交通态势采集及可视化操作(定时运行)

一、前言 交通态势数据是关于交通状况的一种量化描述,它提供了关于道路网络运行状态的详细信息。交通态势数据指的是根据车流入量和车流出量的定义,衡量整个全局交通区域交通态势的数据。这些数据通常从车辆GPS轨迹数据中提取,包括车辆行驶速…

虚拟淘宝-Virtual-Taobao论文解读(AAAI2019)

目录 1 论文简介 2 文章的主要贡献 3 文章技术的简要说明 4 技术的详细说明 4.1 GAN-SD:生成客户特征 4.2 MAIL:生成交互过程 4.3 ANC:动规范约束 5 实验设定及结果 6 结论 7 参考 1 论文简介 南京大学LAMDA团队的侍竞成、俞扬等…

PDF标准详解(三)—— PDF坐标系统和坐标变换

之前我们了解了PDF文档的基本结构,并且展示了一个简单的hello world。这个hello world 虽然只在页面中显示一个hello world 文字,但是包含的内容却是不少。这次我们仍然以它为切入点,来了解PDF的坐标系统以及坐标变换的相关知识 图形学中二维…

网络安全从入门到精通(特别篇I):应急响应案例

蓝队应急响应实战 1. 应急响应1. 应急响应 获取当前WEB环境的组成架构(语言,数据库,中间件,系统等) 分析思路: 1、利用时间节点筛选日志行为 2、利用已知对漏洞进行特征筛选 3、利用后门查杀进行筛选日志行为 #内容点: 应急响应: 1、抗拒绝服务攻击防范应对指南 2、勒…

小分子水半幅宽检测 低氘水同位素氘检测 富氢水检测

小分子水半幅宽检测 低氘水同位素氘检测 富氢水检测 检测范围: 矿泉水等饮用水 检测概述 小分子团水活化性很强,具有强渗透力,强溶解力,强扩散力。水的含氧量高,能给人体内的组织细胞带来更多的氧。长自来水大分子团核磁共振测得…

论文阅读笔记:DepGraph: Towards Any Structural Pruning

论文阅读笔记:DepGraph: Towards Any Structural Pruning 1 背景2 创新点3 方法4 模块4.1 分组4.2 依赖图4.3 网络分解4.4 依赖建模4.4 组级剪枝 5 效果 论文:https://arxiv.org/pdf/2301.12900 代码:https://github.com/VainF/Torch-Prunin…