当前位置: 首页 > news >正文

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

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 欺骗的原理和实施方法,同时也认识到这些攻击手段的危险性和潜在危害。

  • 安全防护意识

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

相关文章:

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

DNS 劫持 什么是 DNS 为什么需要 DNS D N S \color{cyan}{DNS} DNS(Domain Name System)即域名系统。我们常说的 DNS 是域名解析协议。 DNS 协议提供域名到 IP 地址之间的解析服务。计算机既可以被赋予 IP 地址,也可以被赋予主机名和域名。用…...

MyBatis的运行原理

目录 1、目的:梳理一下MyBatis运行时的几个对象,我们需要搞清楚他们的作用,进而需要理解mybatis的整个工作流程和执行原理。 2、简要概括各个类 2.1 Resources 作用:编写资源加载类,使用类加载器加载 配置文件(myb…...

算法题解记录29+++全排列(百日筑基)

一、题目描述 题目难度:中等 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示…...

苹果AI功能,AI训练数据缺乏,SD3推出,MJ6推出新特性

更多信息: https://agifun.love 智源社区 2024智源大会议程公开丨大模型前沿探索 2024年6月14日-15日,第6届北京智源大会将以线下与线上结合的形式召开,线下会场设在中关村国家自主创新示范区会议中心。2024智源大会再次以全球视野&#x…...

超越中心化:Web3如何塑造未来数字生态

随着技术的不断发展,人们对于网络和数字生态的期望也在不断提升。传统的中心化互联网模式虽然带来了便利,但也暴露出了诸多问题,比如数据滥用、信息泄露、权力集中等。在这样的背景下,Web3技术应运而生,旨在打破传统中…...

【ic-tool】timegen使用

一、前言 TimeGen是一个用于时序波形编辑的CAD工具,它允许数字设计工程师快速有效地绘制数字时序图。TimeGen时序图可以很容易地导出到其他窗口程序,如microsoftword,用于编写设计规范。可直接从官网下载TimeGEN软件:TimeGen Pro…...

1:25万基础电子地图(云南版)

我们在《50幅1:25万基础电子地图(四川版)》一文中,为你分享过四川的50幅基础电子地图。 现在我们再为你分享云南的1:25万基础电子地图,你可以在文末查看该数据的领取方法。 基础电子地图云南版 下载后可以看到该数据…...

springboot宠物领养系统-计算机毕业设计源码07863

摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存…...

牛客热题:最长回文子串

📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:最长回文子串题目链接方法一&am…...

如何访问寄存器

标题 方式一:对地址进行宏定义方式二:用结构体封装寄存器 访问寄存器是CPU执行程序的基础,每种CPU架构都有其特定的寄存器集合和访问方式。 方式一:对地址进行宏定义 #define GPIOA_BASE ((unsigned int)0x48000000) #define GPI…...

苍穹外卖笔记-18-修改密码、bug记录

文章目录 1 修改密码1.1 需求分析和设计1.2 代码实现1.2.1 admin/EmployeeController1.2.2 EmployeeService1.2.3 EmployeeServiceImpl 1.3 功能测试 2 bug记录 1 修改密码 完结的时候发现还有一个接口未实现。这里补充 1.1 需求分析和设计 产品原型: 业务规则&am…...

java如何截取字符串

如果想在一个字符串中截取一段字符,形成新的字符,那么在java中途需要用到substring语句 substring的语法格式是 str.substring(beginindex,endindex) 其中str是字符串 beginindex是起始索引,endindex是结束索引 截取的字符串包含起始索引…...

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

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

低代码组件扩展方案在复杂业务场景下的设计与实践

组件是爱速搭的前端页面可视化模块的核心能力之一,它将前端研发人员从无休止的页面样式微调和分辨率兼容工作中解放了出来。 目前,爱速搭通过内置的上百种功能组件(120),基本可以覆盖大部分中后台页面的可视化设计场景…...

震撼科技界的GPT-4o发布首日即遭“越狱破防”

前言 本文主要解读分析OpenAI最新推出的大型模型GPT-4o可能存在的越狱风险。 5 月14 日凌晨的科技圈再一次被OpenAI轰动,其发布的最新大模型GPT-4o,能力横跨语音、文本和视觉,这一成果无疑再次巩固了OpenAI在人工智能领域的领先地位。 然而…...

保护密码安全,探讨密码加盐及其在Go语言中的实现

介绍 在当今数字化时代,个人隐私和数据安全成为了人们关注的焦点之一。随着网络犯罪的不断增加,用户的密码安全性变得尤为重要。密码加盐作为一种常见的安全措施,被广泛应用于密码存储和认证系统中。本文将深入探讨密码加盐的概念、重要性以…...

Sqoop学习详细介绍!!

一、Sqoop介绍 Sqoop是一款开源的工具,主要用于在Hadoop(HDFS/Hive/HBase)与传统的数据库(mysql、postgresql...)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的H…...

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 生成哈夫曼树(100分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 📎在线评测链接 生成哈夫曼树(100分) 🌍 评测功能需要订阅专栏后私信联系清…...

ctfshow web 单身杯

web签到 <?phperror_reporting(0); highlight_file(__FILE__);$file $_POST[file];if(isset($file)){if(strrev($file)$file){ //翻转函数include $file;}}要进行反转并且包含文件用data协议 自己写不好写可以用函数帮你翻转 <?php $adata:text/plain,<?eval(…...

天锐绿盾加密软件,它的适用范围是什么?

天锐绿盾数据防泄密软件的适用范围广泛&#xff0c;主要可以归纳为以下几点&#xff1a; 行业适用性&#xff1a; 适用于各个行业&#xff0c;包括但不限于制造业、设计行业、软件开发、金融服务等&#xff0c;特别是对数据安全性要求较高的行业。企业规模与类型&#xff1a; 适…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

基于Uniapp开发HarmonyOS 5.0旅游应用技术实践

一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架&#xff0c;支持"一次开发&#xff0c;多端部署"&#xff0c;可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务&#xff0c;为旅游应用带来&#xf…...

多模态商品数据接口:融合图像、语音与文字的下一代商品详情体验

一、多模态商品数据接口的技术架构 &#xff08;一&#xff09;多模态数据融合引擎 跨模态语义对齐 通过Transformer架构实现图像、语音、文字的语义关联。例如&#xff0c;当用户上传一张“蓝色连衣裙”的图片时&#xff0c;接口可自动提取图像中的颜色&#xff08;RGB值&…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

docker 部署发现spring.profiles.active 问题

报错&#xff1a; org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...

算法岗面试经验分享-大模型篇

文章目录 A 基础语言模型A.1 TransformerA.2 Bert B 大语言模型结构B.1 GPTB.2 LLamaB.3 ChatGLMB.4 Qwen C 大语言模型微调C.1 Fine-tuningC.2 Adapter-tuningC.3 Prefix-tuningC.4 P-tuningC.5 LoRA A 基础语言模型 A.1 Transformer &#xff08;1&#xff09;资源 论文&a…...

安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲

文章目录 前言第一部分&#xff1a;体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分&#xff1a;体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

【Linux】自动化构建-Make/Makefile

前言 上文我们讲到了Linux中的编译器gcc/g 【Linux】编译器gcc/g及其库的详细介绍-CSDN博客 本来我们将一个对于编译来说很重要的工具&#xff1a;make/makfile 1.背景 在一个工程中源文件不计其数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;mak…...

Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?

Pod IP 的本质与特性 Pod IP 的定位 纯端点地址&#xff1a;Pod IP 是分配给 Pod 网络命名空间的真实 IP 地址&#xff08;如 10.244.1.2&#xff09;无特殊名称&#xff1a;在 Kubernetes 中&#xff0c;它通常被称为 “Pod IP” 或 “容器 IP”生命周期&#xff1a;与 Pod …...