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

目录

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.mzph.cn/news/701832.shtml

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

相关文章

maven 打包命令

Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具。 Maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过po…

代码随想录刷题笔记-Day22

1. 修剪二叉搜索树 669. 修剪二叉搜索树https://leetcode.cn/problems/trim-a-binary-search-tree/ 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留…

opengles 顶点坐标变换常用的矩阵(九)

文章目录 前言一、opengles 常用的模型矩阵1. 单位矩阵2. 缩放矩阵3. 位移矩阵4. 旋转矩阵二、第三方矩阵数学库1. glm1.1 ubuntu 上安装 glm 库1.2 glm 使用实例1.2.1 生成一个沿Y轴旋转45度的4x4旋转矩阵, 代码实例如下1.2.2 生成一个将物体移到到Z轴正方向坐标为5处的4x4 vi…

万界星空科技商业开源MES

一、万界星空科技商业开源MES系统概述: 万界星空科技免费MES、开源MES、商业开源MES、市面上最好的开源MES、MES源代码、适合二开的开源MES。 1.万界星空开源MES制造执行系统的Java开源版本。 开源mes系统包括系统管理,车间基础数据管理,计…

深度学习500问——Chapter01:数学基础

文章目录 前言 1.1 向量和矩阵 1.1.1 标量、向量、矩阵、张量之间的联系 1.1.2 张量与矩阵的区别 1.1.3 矩阵和向量相乘结果 1.1.4 向量和矩阵的范数归纳 1.1.5 如何判断一个矩阵为正定 1.2 导数和偏导数 1.2.1 导数偏导计算 1.2.2 导数和偏导数有什么区别 1.3 特征值和特征向量…

什么是边缘案例测试?如何查找并确定优先级

何为边缘情况? 在极端条件下发生的情况被称为边缘情况,有时候也叫边界情况,在功能、回归、单元和性能测试中都会应用。如果质量保证团队知道某项功能的最大和最小负载,他们就能防止这些情况发生。当用户不按照程序的预期工作流程…

gma 2.0.6 (2024.02.21) 更新日志

安装 gma 2.0.6 pip install gma2.0.6网盘下载: 链接:https://pan.baidu.com/s/1P0nmZUPMJaPEmYgixoL2QQ?pwd1pc8 提取码:1pc8 注意:此版本没有Linux版! 编译gma的Linux虚拟机没有时间修复,本期Linux版继…

Spring Cloud Gateway官方文档学习

文章目录 推荐写在前面一、熟悉Gateway基本概念与原理1、三大概念2、工作流程 二、基本使用路由断言的两种写法 三、路由断言工厂1、After路由断言工厂2、Before路由断言工厂3、Between路由断言工厂4、Cookie路由断言工厂5、Header路由断言工厂6、Host路由断言工厂7、Method路由…

静态时序分析:SDC约束命令set_drive详解

相关阅读 静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html 目录 指定电阻值 指定端口列表 简单使用 指定上升、下降沿 指定最大最小、条件 写在最后 本章将讨论使用set_drive命令,它用于对输入端口的驱动能力建模。首先需要说明的…

130 如何通过vs2017开发linux c++程序

使用VS2017开发linux下的应用程序(C/C)_vc_linux.exe vs2017-CSDN博客 参考上面这哥们的,写的很详细 前言 本文章记录如何使用VS2017进行linux应用程序的开发(针对新手小白),VS2017能较为方便的通过SSH编辑…

公司数据迁移,服务器小文件多复制慢解决方案

企业普遍面临一个挑战:如何高效地处理和移动大量的小型文件。这些文件虽然单个体积不大,但数量庞大,累积起来会占据极大的存储空间,而且在迁移过程中,复制这些文件的速度往往非常缓慢。这不仅影响了企业的运营效率&…

10-pytorch-完整模型训练

b站小土堆pytorch教程学习笔记 一、从零开始构建自己的神经网络 1.模型构建 #准备数据集 import torch import torchvision from torch.utils.tensorboard import SummaryWriterfrom model import * from torch.utils.data import DataLoadertrain_datatorchvision.datasets.…

如何运用Mybatis Genertor

MyBatis Generator是一个MyBatis的代码生成器,它可以帮助我们快速生成Mapper接口以及对应的XML文件和模型类。在Java开发中,能大大提升开发效率。本文将介绍如何在IntelliJ IDEA中使用MyBatis Generator。 1. 添加MyBatis Generator依赖 我们首先需要在…

计网 - 深入理解HTTPS:加密技术的背后

文章目录 Pre发展历史Http VS HttpsHTTPS 解决了 HTTP 的哪些问题HTTPS是如何解决上述三个风险的混合加密摘要算法 数字签名数字证书 Pre PKI - 数字签名与数字证书 PKI - 借助Nginx 实现Https 服务端单向认证、服务端客户端双向认证 发展历史 HTTP(超文本传输协…

代码随想录算法训练营第二十五天补|216.组合总和III ● 17.电话号码的字母组合

组合问题:集合内元素的组合,不同集合内元素的组合 回溯模板伪代码 void backtracking(参数) {if (终止条件) {存放结果;return;}for (选择:本层集合中元素(树中节点孩子的数量就是集合的大小)) {处理节点;backtrackin…

人工智能绘画的时代下到底是谁在主导,是人类的想象力,还是AI的创造力?

#ai作画 目录 一.AI绘画的概念 1. 数据集准备: 2. 模型训练: 3. 生成绘画: 二.AI绘画的应用领域 三.AI绘画的发展 四.AI绘画背后的技术剖析 1.AI绘画的底层原理 2.主流模型的发展趋势 2.1VAE — 伊始之门 2.2GAN 2.2.1GAN相较于…

深度学习系列60: 大模型文本理解和生成概述

参考网络课程:https://www.bilibili.com/video/BV1UG411p7zv/?p98&spm_id_frompageDriver&vd_source3eeaf9c562508b013fa950114d4b0990 1. 概述 包含理解和分类两大类问题,对应的就是BERT和GPT两大类模型;而交叉领域则对应T5 2.…

【C++精简版回顾】9.static

1.static修饰成员类型 1.类外初始化&#xff0c;初始化时不需要static修饰(不能修饰)&#xff0c;要有类名限定 2.静态成员是属于类的&#xff0c;全对象公有 1.class class MM { public:MM(string name) {size;a size;this->name name;}void print() {cout << &quo…

瑞_23种设计模式_桥接模式

文章目录 1 桥接模式&#xff08;Bridge Pattern&#xff09;1.1 介绍1.2 概述1.3 桥接模式的结构 2 案例一2.1 需求2.2 代码实现 3 案例二2.1 需求2.1 代码实现 &#x1f64a; 前言&#xff1a;本文章为瑞_系列专栏之《23种设计模式》的桥接模式篇。本文中的部分图和概念等资料…

【MySQL】连接查询和自连接的学习和总结

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-x4sPmqTXA4yupW1n {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…