网络攻防之ARP欺骗和DNS劫持实验

news2024/11/19 10:44:47

目录

ARP单向欺骗

ARP双向欺骗

DNS劫持


实验环境:

攻击主机:kali2023虚拟机,IP地址为192.168.133.141

靶机:Windows10虚拟机,IP地址为192.168.133.129

网关地址:192.168.133.2

(1)ARP协议介绍

在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。这个目标主机的MAC地址就是通过地址解析协议ARP获得的。

ARP协议中通常有两种数据包:ARP请求包和ARP应答包

ARP请求包:请求主机送出一个含有目的IP地址的以太网广播数据包,表示想与目的IP通信,请告诉我此IP的MAC地址。格式如下:who has 目的主机IP tell 请求的主机IP

ARP应答包:当目标主机收到ARP请求包,如果发现请求解析的IP地址与自己的IP地址相同,就会返回一个ARP应答包。它表示:我的主机就是此IP,我的MAC地址是某某某。

目的主机IP is at目的主机MAC地址

(1)DNS原理

DNS(Domain Names System),域名系统,是互联网一项服务,是进行域名和与之相对应的 IP 地址进行转换的服务器,例如用户需要访问百度网站过程如下:

浏览器从 URL 中抽取出主机名 www.baidu.com ,将主机名传给 DNS 应用客户端。

DNS 客户端向 DNS 服务器发送一个包含该主机名的请求,请求 DNS 服务器解析这个主机名的 IP 地址。

DNS 客户端最终会收到一份回答报文,其中包含该目标主机的 IP 地址。

一旦浏览器收到目标主机的 IP 地址后,它就能够向位于该 IP 地址 80 端口的 HTTP 服务器进程发起一个 TCP 连接,就能成功访问百度

(2)DNS劫持原理

攻击者通过篡改本地DNS缓存或在中间节点欺骗网络中其他设备的DNS请求,将用户的合法DNS查询请求重定向到攻击者控制的恶意网站或服务器上。这样攻击者就可以获取用户的敏感信息,包括账户名、密码等等。例如,当用户在浏览器中输入一个网站的URL时,浏览器会向本地DNS服务器发出DNS查询请求,查询网站的IP地址。如果攻击者劫持了这个请求,返回一个虚假的IP地址,将用户重定向到一个自己设定的假冒网站,从而达到劫持的目的。

ARP单向欺骗

(1)ARP单向欺骗原理

攻击者只向目标主机发送伪造的ARP响应包,将目标主机的IP地址和MAC地址对应关系改为自己的MAC地址。这样,目标主机就会将网络流量发送到攻击者的MAC地址,攻击者就能够获取到网络流量。

(2)实验演示

用nmap命令查看当前网段的活跃主机,发现了靶机192.168.133.129

Win10主机ping百度,发现能ping通,即能上网

先查看一下靶机正常的IP地址和MAC地址对应表,在命令行下输入arp-a

网关192.168.133.2的MAC地址是00-50-56-f1-56-2e

攻击机192.168.133.141的MAC地址是00-0c-29-e1-47-15

更新apt-get

下载安装dsniff工具

使用Arpspoof命令进行arp欺骗,可以看到会发送大量伪造的arp响应报文给靶机,让靶机认为192.168.133.2的MAC地址是00-0c-29-e1-47-15

靶机的wireshark抓包结果如下

目的主机192.168.133.2正常ARP应答包应该是

192.168.133.2 is at 00-50-56-f1-56-2e

但是可以看到数据包多了很多192.168.133.2 is at 00-0c-29-e1-47-15,这是由kali发出来的用于做ARP欺骗的,让被攻击主机认为192.168.133.2的MAC地址是00-0c-29-e1-47-15,与kali看到的结果一致

再次查看arp表,发现192.168.133.2和192.168.133.141的MAC地址都是00-0c-29-e1-47-15,欺骗成功

再次ping百度发现已经ping不通,靶机已经断网

使用ctrl+c停止攻击

靶机恢复正常

通过以上步骤让靶机找不到真正的网关,从而实现了让靶机断网

ARP双向欺骗

(1)ARP双向欺骗原理

攻击者不仅向目标发送伪造的ARP响应包,还向网关发送伪造的ARP请求包,将网关的IP地址和MAC地址对应关系改为攻击者的MAC地址。这样,目标将网络流量发送到攻击者的MAC地址,攻击者将网络流量转发到网关,实现中间人攻击。

(2) 实验演示

首先要开启kali的ip转发功能,在/proc/sys/net/ipv4/ip_forward中自行修改。把ip_forward中的0改为1

对网关和目标主机B的欺骗:

使用arpspoof进行双向欺骗

命令:arpspoof -i eth0 -t 192.168.112.136 -r 192.168.112.2

下载安装driftnet工具

这个时候win10可以进行联网,在win10主机中访问网站http://nm.people.com.cn/(需要使用http协议,信息在http协议中通常以明文形式传输,便于验证)在网站访问图片

使用drifnet来进行图片抓取

在kali上就能实时显示被攻击主机访问的图片

(3)使用ettercap工具进行ARP双向欺骗

输入ettercap -G命令打开Ettercap工具,选择网卡eth0然后点击√进入工具

点击右上角三个点然后点击Hosts然后点击Scan for host,待扫描完成后点击Host list,可以看到四个主机,第二个是网关,第三个是windows10

选择攻击目标,点击windows10的ip地址,然后点击Add to Target 1 ,让其作为目标1,然后选择网关的ip地址,点击Add to Target 2,让其作为目标2

明确目标攻击方式:点击Mitm -> arp poisoning -> Sniff remote connections -> 确定

在win10主机访问批改网网站,并使用账号密码登录

工具就会抓取win10的数据包和网关的数据包,点击View--Connections可以看到所有截获的包,分析http post请求可以判断账号密码信息,在最下面可以看到抓到的用户名和被哈希过的密码

DNS劫持

实验演示

本次实验要劫持的网站为批改网,网站为http://www.pigai.org

靶机ping批改网,能ping通且得到批改网的IP为45.113.201.76

编辑etter.dns文件,输入命令vi /etc/ettercap/etter.dns,在结尾添加

www.pigai.org A 192.168.133.141 80

在Ettercap工具下把win10当做目标1

Ettercap Menu—>Plugins—>Manage Plugins,双击dns_spoof。下方显示框会显示dns_spoof插件已经启动,同时Plugin列表中dns_spoof左边会有一个*,表示插件被激活。

此时靶机再次ping简易网,发现ip已经变成攻击主机的ip:192.168.133.141,劫持成功

在Ettercap的显示框中会有dns消息提示,如下图所示。可以看到靶机实际ping的是攻击者的主机。

此时靶机上访问批改网,因为进行了dns欺骗,所以靶机每次访问www.pigai.org时把该域名的IP地址解析为192.168.133.141,所以靶机访问批改网等于访问192.168.133.141:80,也就是说只要靶机访问批改网都会跳到192.168.133.141:80

为了让靶机相信这是真的批改网,使用kali的setoolkit工具设置192.168.133.141:80网站,可以克隆批改网到192.168.133.141:80

输入命令setoolkit命令,会跳出选择选项,选择1

然后选择2

然后选择3

最后选择2

在set:webattacks输入克隆的网站http://www.pigai.org,即批改网的网站

靶机访问批改网网站,成功访问,但是这个并不是真正的批改网,而是攻击主机创建的钓鱼网站,是攻击主机克隆批改网出来的,所以与批改网页面一样,用户以为是真的,然后输入用户名和密码进行登录

攻击主机上就能得到抓到信息:用户名为121122021007和哈希过的密码

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

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

相关文章

2/23 work

1> 使用消息队列完成两个进程间相互 a: #include<myhead.h> #define MSGSIZE sizeof(struct msgbuf)-sizeof(long) struct msgbuf {long mtype;char mtext[1024];}; int main(int argc, const char *argv[]) {pid_t pidfork();if(pid>0){key_t key 0;if((keyfto…

Git笔记——3

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言 一、合并模式和分支策略 二、bug分支 三、强制删除分支 四、创建远程仓库 五、克隆远程仓库_HTTPS和_SSH 克隆远程仓库_HTTPS 克隆远程仓库_SSH 六、向远程仓库…

【数据结构】时间复杂度(加法乘法规则、渐近时间复杂度、循环时间复杂度总结

2.2 时间复杂度 什么是时间复杂度&#xff1f; 评估算法时间开销 T ( n ) O ( f ( n ) ) T(n)O(f(n)) T(n)O(f(n)) 在实际求解中&#xff0c;只留表达式中最高阶的部分&#xff0c;丢弃其他部分。 如何求解&#xff1f; 求解步骤 1.找到一个最深层的基本操作&#xff1b; 2.分…

ChatGLM-6B开源模型环境配置与部署

一、环境配置 1.nivdia-smi查看显卡信息、cuda版本 可以安装cuda小于12.3的版本&#xff0c;一般不建议安装太新的 2. Anaconda安装 安装包下载点击一路安装&#xff08;注意修改安装路径&#xff0c;不要放在C盘下&#xff09;配置系统环境变量 参考链接传送门 3. 创建…

css4浮动+清除浮动

浮动 一.常见网页布局1.三种布局方式2.布局准则 二.浮动&#xff08;float&#xff09;1.好处2.概念3.三大特性4.使用5.常见网页布局模板6.注意点 三.清除浮动1.why2.本质3.语法4.四种way&#xff08;后三个都是给父级添加&#xff09;清除浮动总结 一.常见网页布局 1.三种布局…

查看mysql数据库的版本

要查看MySQL数据库的版本&#xff0c;可以使用以下几种方法&#xff1a; 命令行&#xff08;已连接到MySQL服务器&#xff09;&#xff1a; 登录到MySQL服务器后&#xff0c;在MySQL提示符下执行&#xff1a; mysql> SELECT VERSION(); 或者&#xff0c;也可以执行 STATUS; …

【C++精简版回顾】8.const

1.const数据成员 &#xff08;1&#xff09;const数据成员必须使用初始化参数列表 &#xff08;2&#xff09;不能修改 &#xff08;3&#xff09;不能修改必须初始化 class MM { public:MM() {}MM(int age, string name) :age(age), name(name) {}~MM() {cout << "…

Spring的优点

1.方便解耦&#xff0c;简化开发 Spring就是一个容器&#xff0c;可以将所有对象创建和关系维护交给Spring管理。 2.AOP编程支持 面向切面编程&#xff0c;方便实现程序进行权限拦截&#xff0c;运行监控等功能。 3.声明式事务的支持 通过配置完成事务的管理&#xff0c;…

基于ZYNQ的PCIE高速数据采集卡的设计(四)软件设计,Aurora 协议逻辑设计

系统软件设计 4.1 引言 本章基于第二章的分析结论&#xff0c;进行系统软件设计。软件设计包括逻辑设计、嵌入 式软件设计和上位机软件设计。在逻辑设计中&#xff0c;对 ADC 模块、 Aurora 模块、 DDR3 SDRAM 模块和 PCIE 模块进行分析和设计&#xff0c;在 Vivad…

UI风格汇:扁平化风格来龙去脉,特征与未来趋势

Hello&#xff0c;我是大千UI工场&#xff0c;设计风格是我们新开辟的栏目&#xff0c;主要讲解各类UI风格特征、辨识方法、应用场景、运用方法等&#xff0c;本次带来的扁平化风格的解读&#xff0c;有设计需求&#xff0c;我们也可以接单。 一、什么是扁平化风格 扁平化风格…

全球最受欢迎的DAWFL Studio 21.2.3.4004 中文破解版强悍来袭

1997年是一个「古老」的年代&#xff0c;那时人们还在用「猫」上网&#xff0c;微信、QQ的江湖被ICQ统治&#xff0c;音乐编辑领域 Cool Edit 如日中天。这一年 &#xff0c;FL Studio 的前身 FruityLoops 在比利时问世&#xff0c;26年来&#xff0c;FL已成长为全球最受欢迎的…

LabVIEW变压器振动信号数据采集与分析

LabVIEW变压器振动信号数据采集与分析 随着电力系统的快速发展&#xff0c;对变压器的安全监控和故障诊断需求日益增加。设计了一套基于LabVIEW的变压器振动信号数据采集与分析系统&#xff0c;提高变压器的运行安全性和可靠性&#xff0c;实现对变压器振动信号的实时监测和故…

uniapp上传文件到腾讯云

官方API地址 javaScript_SDK 下载cos npm i cos-js-sdk-v5 --save 生成签名 获取secretId和secretKey let cos new COS({SecretId: *******************************,SecretKey: ******************************,}) 参考文章&#xff1a;腾讯云如何获取secretId和secret…

一台台式电脑的耗电量有多少瓦?你知道吗?

核实后将予以处理。 感谢您为社区和谐做出的贡献。 一般来说&#xff0c;大多数台式电脑的功率在250W左右&#xff0c;也就是每4小时耗一度电。 一般有每小时100W左右的低功耗计算机&#xff0c;也有每小时1000W左右的高功耗计算机。 对于笔记本电脑来说&#xff0c;每小时约为…

手撕Transformer(三)| 基础Transformer整体结构代码解析,从宏观到微观

文章目录 1 理解重点2 背景介绍 假设3 过程及重要组件3.1 嵌入层和加入位置编码3.2 编码器 Encoder3.3.1 EncoderLayer编码层3.3.2 LayerNorm归一化层 3.3 解码器 Decoder3.4 整合连接Encoder和Decoder 4 完整可运行代码 1 理解重点 在之前一节我们已经介绍了Transformer的位置…

精品基于springboot的线上辅导班系统的开发与设计-课程报名

《[含文档PPT源码等]精品基于springboot的线上辅导班系统的开发与设计[包运行成功]》该项目含有源码、文档、PPT、配套开发软件、软件安装教程、项目发布教程、包运行成功&#xff01; 软件开发环境及开发工具&#xff1a; Java——涉及技术&#xff1a; 前端使用技术&#…

[嵌入式系统-33]:RT-Thread -18- 新手指南:三种不同的版本、三阶段学习路径

目录 前言&#xff1a;学习路径&#xff1a;入门学习-》进阶段学习》应用开发 一、RT-Thread版本 1.1 标准版 1.2 Nano 1.3 Smart版本 1.4 初学者制定学习路线 1.5 RT-Thread在线文档中心目录结构 1.6 学习和使用RT-Thread的三种场景 二、入门学习阶段&#xff1a;内…

Semaphore实现原理全面解析

简介 Semaphore&#xff08;信号量&#xff09;是一个同步工具类&#xff0c;通过Semaphore可以控制同时访问共享资源的线程个数。 应用场景 Semaphore的主要应用场景&#xff1a; 资源并发控制&#xff1a;Semaphore可以限制对资源的并发访问。如&#xff1a;管理数据库连…

蛇形矩阵2

题目描述 把数1&#xff0c;2&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;…&#xff0c;按照“蛇形2”放入N*N矩阵的左三角形中&#xff0c;输出结果。 下面是N6的蛇形2的图示 输入格式 第一行1个正整数&#xff1a;N&#xff0c;范围在[1,100]。 输出格式 N行&a…

HuggingFists系统功能介绍(3)--流程管理

流程管理 下面我们进入流程管理。流程管理用于定义及管理我们采用低代码方式开发的各种ETL以及数据分析流程。 流程列表 界面的左侧部分为流程的分组树&#xff0c;当定义的流程逐渐变多或者多人协同使用系统时&#xff0c;可以通过分组对流程进行更有序的管理。点中分组&#…