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

【报文构造】构造一个异常的IPV6报文,测试设备可靠性

构造一个异常的IPV6报文,测试设备可靠性


文章目录

  • 构造一个异常的IPV6报文,测试设备可靠性
  • 前言
  • 一、构造报文的核心思路
    • 1.1 明确需求与场景
    • 1.2 工具使用
  • 二、使用Scapy构造报文
    • 2.1编写代码构造报文
    • 2.2 抓包验证
  • 三、xcap构造报文
    • 3.1 了解报文结构
    • 3.2 使用xcap构建报文
    • 3.3 发送报文
  • 总结


前言

提示:本文仅对内部网络设备测试做教学使用,请遵守相关法律法规!

本文分享作者在近期工作中接到的一个小任务,主要是根据已知市场问题,某设备收到异常的IPV6报文后导致设备挂机。为了验证新品设备是否存在问题,需要构造以下报文来验证设备的可靠性。

已知信息:故障现场给的异常报文内容。

异常IPV6报文


提示:以下是本篇文章正文内容,下面案例可供参考

一、构造报文的核心思路

构造报文的本质是 “按规则填字段”,需围绕 “协议规范” 和 “业务需求” 展开,步骤如下:

1.1 明确需求与场景

首先确定报文的用途和目标,不同场景对报文的要求不同(如是否需要符合校验规则、是否允许异常字段),需提前明确。例如:

  • 功能测试:验证服务端对特定请求的响应(如 HTTP GET 请求);
  • 协议调试:排查自定义协议的字段解析问题;
  • 安全测试:模拟异常报文(如 TCP SYN Flood 攻击报文);
  • 通信交互:与设备 / 服务按协议格式正常通信(如物联网设备的 MQTT 报文)。

本文主要介绍安全测试,验证设备收到异常的报文能够正常处理,保障设备不挂机。

1.2 工具使用

  • 发包工具:xcap、scapy、PC(带有有线网卡、无线网卡)
  • 辅助工具:wireshark(抓包使用,验证发送报文正确)

二、使用Scapy构造报文

2.1编写代码构造报文

scapy安装和使用教程:https://blog.csdn.net/Himan21/article/details/149858432?spm=1001.2014.3001.5501

from scapy.all import *# 假设原始数据包已加载(此处用Raw层模拟)
from scapy.layers.l2 import Etherpkt = Ether(b'\xcc\xd8\x1f\x5d\x3d\x62\x00\x01\xc6\x30\x8a\x11\x86\xdd\x60\x07' b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')pkt.show()    //查看报文结构
hexdump(pkt)  //查看报文hex格式while True:sendp(pkt, iface="WLAN1", count=1000)

打印如下:

###[ Ethernet ]### dst       = cc:d8:1f:5d:3d:62src       = 00:01:c6:30:8a:11type      = IPv6
###[ Raw ]### load      = '`\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'0000  CC D8 1F 5D 3D 62 00 01 C6 30 8A 11 86 DD 60 07  ...]=b...0....`.
0010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0020  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0030  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
0040  00 00 00 00 00 00 00 00 00 00 00 00              ............
.
Sent 1 packets.

2.2 抓包验证

为了保证设备收到我们构造的报文,需要在设备上抓取报文,查看报文内容如下(下面演示linux系统抓包):

#tcpdump -i eth0 -w ipv6.pcap -s0
tcpdump: listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes
^C0 packets captured
16 packets received by filter
0 packets dropped by kernel
#tftp -p -l ipv6.pcap x.x.x.x

抓包内容


三、xcap构造报文

3.1 了解报文结构

使用wirehark打开异常报文,查看每个字段的值,了解报文结构和内容。

报文结构

3.2 使用xcap构建报文

步骤一:打开xcap软件,启用网络接口,即使用那个网卡发包就启用哪个接口。启动成功后图标会变成绿色。

启用xcap接口

步骤二:右键点击创建报文组,选择创建报文组。

创建报文组

步骤三:创建报文,输入报文名称;

创建报文

步骤四:双击创建的报文,编辑报文内容;

编辑报文内容

步骤五:修改报文源MAC地址、目的MAC地址、报文类型为IPV6;

编辑报文

步骤六:修改报文源IP地址、目的IP地址、Flow Label、Hop Limit、Next header;

原报文
编辑报文
步骤七:查看构建好的报文,和原报文做对比;
wireshark查看报文
查看报文

3.3 发送报文

选中报文和接口后,发送报文,可设置时间间隔。

发送报文


总结

构造报文的核心是 “吃透协议规范”,再根据场景选择工具:简单文本协议用xcap;复杂或自定义协议用 Scapy / 编程语言;调试分析用 Wireshark。实际操作中,建议先抓包分析标准报文,再逐步调整字段验证效果。

http://www.dtcms.com/a/339371.html

相关文章:

  • 集成电路学习:什么是Object Tracking目标跟踪
  • 浙江电信IPTV天邑TY1613_高安版_晶晨S905L3SB_安卓9_原厂固件自改_线刷包
  • Arthas 全面使用指南:离线安装 + Docker/K8s 集成 + 集中管理
  • WRC大会精彩回顾 | NanoLoong机器人足球首秀青龙机械臂咖啡服务双线出击
  • 释永信,领先10年的AI心法!
  • sqllabs(2)
  • 机器学习之数据模型训练(三)
  • 嵌入式第三十二天(信号,共享内存)
  • 装修水电全改的避坑指南有哪些?
  • [激光原理与应用-304]:光学设计 - 光学设计报告的主要内容、格式与示例:系统记录了从需求分析到最终设计的完整过程
  • windows环境,安装kafka
  • PMP项目管理:PMBOK 第六版 与 第七版 有啥区别 / 如何备考
  • Spring Boot应用实现图片资源服务
  • WSL2环境下的Claude Code与lanyuncodingui安装与配置
  • 差速转向机器人研发:创新驱动的未来移动技术探索
  • 子网掩码(拓)
  • 汇编语言学习2---GNU Debugger (GDB)
  • bypass webshell--Trait
  • canopen 初体验
  • 【qml-4】qml与c++交互(类型多例)
  • 配置nginx以支持http3
  • rabbitmq发送的延迟消息时间过长就立即消费了
  • Maven的三种项目打包方式——pom,jar,war的区别
  • 微算法科技(NASDAQ: MLGO)研究利用PBFT中的动态视图变换机制,实现区块链系统高效运转
  • 股指本周想法
  • 区块链 + 域名Web3时代域名投资的新风口(下)
  • 使用 Docker 安装长安链管理平台 + 部署长安链
  • DL00291-联邦学习以去中心化锂离子电池健康预测模型完整实现
  • Transformer实战(13)——微调Transformer语言模型用于文本分类
  • 操作系统:多线程、进程管理、内存分配、任务调度等