网络攻防技术——DNS欺骗

article/2025/9/23 17:42:14

一、题目

本实验的目标是让学生获得对DNS(域名系统)的各种攻击的第一手经验。DNS是互联网的电话簿;它将主机名转换为IP地址,反之亦然。这种转换是通过DNS解析实现的,这种解析发生在幕后。DNS欺骗攻击以各种方式操纵此解析过程,目的是将用户误导到其他目的地,这些目的地通常是恶意的。本实验室主要研究几种DNS欺骗攻击技术。学生将首先设置和配置DNS服务器,然后在实验室环境中的目标上尝试各种DNS欺骗攻击。

第一个大实验任务(本地DNS欺骗)中进行的攻击假设攻击者位于同一本地网络上,因此可以嗅探DNS数据包。这个假设是为了简化实验任务。第二个大实验任务为远程DNS攻击实验,攻击者在没有嗅探数据包的情况下发起远程欺骗攻击,远程攻击实验室比本地DNS欺骗实验更具挑战性。

二、过程

(一)DNS_LOCAL
1.配置环境
要在容器上运行命令,我们通常需要在该容器上获得一个外壳。我们首先需要使用“dockerps”命令来找出容器的ID,然后使用“dockerexec”在该容器上启动一个外壳。
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.DNS缓存。在攻击期间,我们需要检查本地DNS服务器上的DNS缓存。以下两个命令与DNS高速缓存有关。rndc dumpdb -cache命令将高速缓存的内容转储到文件/var/cache/bind/dump.db中。
在这里插入图片描述
在这里插入图片描述

一、Task 1: Directly Spoofifing Response to User
当用户在Web浏览器中键入网站的名称(主机名,如www.example.com)时,用户的计算机将向本地DNS服务器发送DNS请求,以解析主机名的IP地址。攻击者可以嗅探DNS请求消息,然后他们可以立即创建一个假的DNS响应,然后发送回用户计算机。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

编译运行spoof_answer.py。
在这里插入图片描述

在user机中dig www.example.com,得到如下结果:看到结果已经被修改,并且example.net域名下的地址都指向ns.attacker32.com域名。
在这里插入图片描述

二、Task 2: DNS Cache Poisoning Attack – Spoofifing Answers
当本地DNS服务器接收到一个查询时,它首先从自己的缓存中查找答案;如果答案存在,DNS服务器将简单地回复其缓存中的信息。如果答案不在高速缓存中,则DNS服务器将尝试从其他DNS服务器中获取答案。当它得到答案时,它将把答案存储在缓存中,因此下次,不需要询问其他DNS服务器。
如果攻击者可以欺骗来自其他DNS服务器的响应,那么本地DNS服务器将在其缓存中保留一段时间的欺骗响应。下次,当用户的计算机希望解析相同的主机名时,它将从缓存中得到欺骗性的响应。这样,攻击者只需要欺骗一次,并且这种影响将持续到缓存的信息过期为止。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、Task 3: Spoofifing NS Records
在攻击代码中添加一个欺骗的NS记录,然后启动攻击。
在这里插入图片描述

清除dns上的缓存:
在这里插入图片描述

可以看到增加了ns记录
在这里插入图片描述

(二)DNS_ROMOTE
在这里插入图片描述

1.获取ns.attacker32.com的IP地址。当我们运行dig ns.attacker32.com挖掘命令时,本地DNS服务器将由于转发区域条目添加到本地DNS服务器的配置文件,将请求转发给攻击者名称服务器。
在这里插入图片描述

2.获取www.example.com的IP地址。两个名称服务器现在托管着example.com域,一个是域的官方名称服务器,另一个是攻击者容器。
一、Task 1
卡米斯基袭击:
1.攻击者查询DNS服务器Apollo中的example.com中不存在的名称,如twysw.example.com,其中twysw是一个随机名称。
2.由于映射在阿波波的DNS缓存中不可用,阿波罗向example.com域的名称服务器发送一个DNS查询。
3.当阿波罗等待回复时,攻击者用一连串欺骗的DNS回复淹没,每个人都尝试不同的事务ID,希望其中一个是正确的。在响应中,攻击者不仅为twysw.example.com提供了IP解析,而且还提供了一个“权威命名服务器”记录,指示ns.attacker32.com为example.com域的命名服务器。
4.即使欺骗的DNS响应失败(例如,事务ID不匹配或来得太晚),也不重要,因为下次,攻击者将查询另一个名称,所以阿波罗必须发送另一个查询,给攻击另一个机会来进行欺骗攻击。这有效地破坏了缓存效果。
5.如果攻击成功,在阿波罗的DNS缓存中,example.com的命名服务器将被攻击者的命名服务器ns.attacker32.com所取代。

二、Task 2: Construct DNS request
为了完成攻击,攻击者需要触发目标DNS服务器来发送DNS查询,这样他们就有机会欺骗DNS回复。
用真实值替换+++,编写py文件如下:
Qdsec = DNSQR(qname=’www.example.com’)
dns = DNS(id=0xAAAA, qr=0, qdcount=1, ancount=0, nscount=0,
arcount=0, qd=Qdsec)
ip = IP(dst=’+++’, src=’+++’)
udp = UDP(dport=+++, sport=+++, chksum=0)
request = ip/udp/dns

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、Task 3: Spoof DNS Replies.
需要在卡明斯基攻击中欺骗DNS回复。由于我们的目标是example.com,所以我们需要欺骗来自这个域的名称服务器的回复。
domain = ’+++’
ns = ’+++’
Qdsec = DNSQR(qname=name)
Anssec = DNSRR(rrname=name, type=’A’, rdata=’1.2.3.4’, ttl=259200)
NSsec = DNSRR(rrname=domain, type=’NS’, rdata=ns, ttl=259200)
dns = DNS(id=0xAAAA, aa=1, rd=1, qr=1,
qdcount=1, ancount=1, nscount=1, arcount=0,
qd=Qdsec, an=Anssec, ns=NSsec)
ip = IP(dst=’+++’, src=’+++’)
udp = UDP(dport=+++, sport=+++, chksum=0)
reply = ip/udp/dns
在示例代码中,我们使用+++作为占位符;需要用所需的正确值来替换。编写py文件如下:
在这里插入图片描述
在这里插入图片描述

三、Task 4: Launch the Kaminsky Attack,Task 5: Result Verifification
在这里插入图片描述
在这里插入图片描述

编写完整c代码,填补实验给的代码空缺如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

得到验证结果如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


http://chatgpt.dhexx.cn/article/Do14Qgud.shtml

相关文章

DNS欺骗-教程详解

目录 一、环境 二、dns欺骗原理 三、dns欺骗操作 四、dns欺骗的危害 五、dns欺骗的防御 一、环境 VMware下的kali(攻击机)、Windows 7 x64(目标机) kali下载链接: https://blog.csdn.net/Stupid__Angel/articl…

cetus权限连接主从mysql_cetus/cetus-rw.md at master · eimens/cetus · GitHub

Cetus 读写分离版使用指南 简介 Cetus 读写分离版将前端发来的读请求和写请求分别发送到不同的服务器后端,由于底层的数据库都是Master/Slave架构,做到读写分离能大大提高数据库的处理能力。 安装部署 准备 1. MySQL 搭建MySQL主从关系 若开启主从延迟检…

网易中间件Cetus开源啦

Cetus的诞生 网易电商近年来业务呈现爆发式增长,原架构环境下,数据库的性能和吞吐量已无法应对其带来的巨大压力,为彻底解决数据库的瓶颈,Cetus应运而生。Cetus由网易乐得专家技术团队领队,经多部门协调合作设计出来的优秀中间件。具有正统基因,基于官方MySQL Proxy的版…

031:Cetus sharding

目录 一、主机环境二、搭建环境 1、准备环境三、Cetus安装 1、下载包和安装依赖包2、Cetus安装 1.安装说明2.安装实施四、Cetus配置 1、创建和修改配置文件2、启动cetus3、导入数据4、验证cetus分库功能五、Cetus测试各种限制 1、JOIN的使用限制2、DISTINCT的限制3、CASE WHEN/…

cetus权限连接主从mysql_网易开源中间件 -Cetus监控模块

01 概述 本文主要对Cetus的监控模块的使用及原理进行介绍,并介绍Cetus使用过程中,监控模块常见的问题及解决方法。 Cetus监控模块拥有独立的监控线程,主要是对Cetus后端各个MySQL实例进行监控,监控的内容主要包括三方面&#xff1…

cetus(cetus talk)

Cetus公司于1991年退出什么? Cetus公司于1991年推出一种rTthReverseTran-scriptase,有很好的依赖于RNA的耐热DNA聚合酶活性和依赖于DNA的耐热DNA聚合酶活性,二种活性分别依赖于Mn2Mg2,这样就可分别控制酶活性 Cetus公司于1991年退…

cetus权限连接主从mysql_cetus/cetus-rw.md at master · session-replay-tools/cetus · GitHub

Cetus 读写分离版使用指南 简介 Cetus 读写分离版将前端发来的读请求和写请求分别发送到不同的服务器后端,由于底层的数据库都是Master/Slave架构,做到读写分离能大大提高数据库的处理能力。 安装部署 准备 1. MySQL 搭建MySQL主从关系 若开启主从延迟检…

cetus权限连接主从mysql_cetus/cetus-rw.md at master · foxxnuaa/cetus · GitHub

Cetus 读写分离版使用指南 简介 Cetus 读写分离版将前端发来的读请求和写请求分别发送到不同的服务器后端,由于底层的数据库都是Master/Slave架构,做到读写分离能大大提高数据库的处理能力。 安装部署 准备 1. MySQL 搭建MySQL主从关系 若开启主从延迟检…

cetus权限连接主从mysql_cetus/cetus-rw.md at master · sea009/cetus · GitHub

Cetus 读写分离版使用指南 简介 Cetus 读写分离版将前端发来的读请求和写请求分别发送到不同的服务器后端,由于底层的数据库都是Master/Slave架构,做到读写分离能大大提高数据库的处理能力。 安装部署 准备 1. MySQL 搭建MySQL主从关系 若开启主从延迟检…

cetus权限连接主从mysql_cetus/cetus-rw.md at master · niumanniu/cetus · GitHub

Cetus 读写分离版使用指南 简介 Cetus 读写分离版将前端发来的读请求和写请求分别发送到不同的服务器后端,由于底层的数据库都是Master/Slave架构,做到读写分离能大大提高数据库的处理能力。 安装部署 准备 1. MySQL 搭建MySQL主从关系 若开启主从延迟检…

cetus权限连接主从mysql_cetus/cetus-rw.md at master · javadoge/cetus · GitHub

Cetus 读写分离版使用指南 简介 Cetus 读写分离版将前端发来的读请求和写请求分别发送到不同的服务器后端,由于底层的数据库都是Master/Slave架构,做到读写分离能大大提高数据库的处理能力。 安装部署 准备 1. MySQL 搭建MySQL主从关系 若开启主从延迟检…

cetus权限连接主从mysql_cetus/cetus-rw.md at master · gczheng/cetus · GitHub

Cetus 读写分离版使用指南 简介 Cetus 读写分离版将前端发来的读请求和写请求分别发送到不同的服务器后端,由于底层的数据库都是Master/Slave架构,做到读写分离能大大提高数据库的处理能力。 安装部署 准备 1. MySQL 搭建MySQL主从关系 若开启主从延迟检…

cetus权限连接主从mysql_cetus/cetus-rw.md at master · sqlercn/cetus · GitHub

Cetus 读写分离版使用指南 简介 Cetus 读写分离版将前端发来的读请求和写请求分别发送到不同的服务器后端,由于底层的数据库都是Master/Slave架构,做到读写分离能大大提高数据库的处理能力。 安装部署 准备 1. MySQL 搭建MySQL主从关系 若开启主从延迟检…

cetus权限连接主从mysql_cetus/cetus-rw.md at master · eonezhang/cetus · GitHub

Cetus 读写分离版使用指南 简介 Cetus 读写分离版将前端发来的读请求和写请求分别发送到不同的服务器后端,由于底层的数据库都是Master/Slave架构,做到读写分离能大大提高数据库的处理能力。 安装部署 准备 1. MySQL 搭建MySQL主从关系 若开启主从延迟检…

cetus权限连接主从mysql_cetus/cetus-rw.md at master · shop-zhang/cetus · GitHub

Cetus 读写分离版使用指南 简介 Cetus 读写分离版将前端发来的读请求和写请求分别发送到不同的服务器后端,由于底层的数据库都是Master/Slave架构,做到读写分离能大大提高数据库的处理能力。 安装部署 准备 1. MySQL 搭建MySQL主从关系 若开启主从延迟检…

数据库中间件 Cetus 2.3.6 读写分离版

搭建数据库主从集群并且初始化数据库 192.168.10.243 #cetus 192.168.10.250 #M 192.168.10.251 #S #开启延迟检测需要创建心跳表 create database if not exists proxy_heart_beat; use proxy_heart_beat; CREATE TABLE if not exists tb_heartbeat ( p_id varchar(128) NOT …

cetus权限连接主从mysql_cetus/cetus-rw.md at master · smudkey/cetus · GitHub

Cetus 读写分离版使用指南 简介 Cetus 读写分离版将前端发来的读请求和写请求分别发送到不同的服务器后端,由于底层的数据库都是Master/Slave架构,做到读写分离能大大提高数据库的处理能力。 安装部署 准备 1. MySQL 搭建MySQL主从关系 若开启主从延迟检…

数据库中间件 Cetus 2.3.6 分库版

数据库初始化 #cetus 192.168.10.243#数据库节点192.168.10.250 192.168.10.251 192.168.10.252 192.168.10.253#四台数据库初始化数据库和表 create database if not exists proxy_heart_beat; use proxy_heart_beat; CREATE TABLE if not exists tb_heartbeat ( p_id varcha…

【Cetus 介绍】

Cetus是由C语言开发的关系型数据库MySQL的中间件,主要提供了一个全面的数据库访问代理功能。Cetus连接方式与MySQL基本兼容,应用程序几乎不用修改即可通过Cetus访问数据库,实现了数据库层的水平扩展和高可用。 主要功能特性 Cetus分为读写分离…

基于 .Net Core、WPF 的多语言实现(一)

基于 .Net Core、WPF 的多语言实现(一) 学习 CultureInfo基于WPF 的CultureInfo 信息大全Startup.csMainWindow.XamlMainWindow.Xaml.cs 学习 CultureInfo 官方文档: CultureInfo . 提供有关特定区域性(对于非托管代码开发,则称…