• scapy构造ND报文


    控制报文之:找邻居报文

    什么是ND报文

    ND报文是指网络中的 Neighbor Discovery(ND)控制报文。Neighbor Discovery 是 IPv6 网络中的一种协议,它用于管理网络节点之间的邻居关系、地址解析、路由缓存维护和自动配置等任务。ND 协议在 IPv6 网络中取代了 IPv4 中的 ARP(地址解析协议)和 ICMP(Internet 控制消息协议)等功能。
    主要有以下几种:

    1. Neighbor Solicitation (NS) 报文:
    • 主要用于设备(通常是主机)在需要找到另一个设备(可能是路由器或另一台主机)的链路层地址时发送的。
    • 通常包含目标IPv6地址,用于指定要查询的设备。
    • 目的是请求目标设备的链路层地址,以便发出通信。
    1. Neighbor Advertisement (NA) 报文:
    • 通常是对NS报文的响应,用于告知请求设备目标设备的链路层地址。
    • 通常包括目标IPv6地址、目标MAC地址和其他选项。
    • 目的是响应NS报文,提供目标设备的链路层地址。
    1. Router Solicitation (RS) 报文:
    • 主要由IPv6网络中的设备发送,用于查找IPv6路由器。
    • 目的是确定网络中是否存在IPv6路由器,并获取路由器的信息。
    • 通常是由新加入IPv6网络的设备发送,以获取路由器的信息,以便配置其IPv6地址和路由
    1. Router Advertisement(RA)报文:
    • 路由器发送的,用于提供关于网络配置的信息,包括IPv6前缀、MTU、路由器的MAC地址等。
    • 目的是让网络中的设备知道路由器的存在以及如何配置自己的IPv6地址和路由表。
    1. Redirect(重定向):
    • 重定向报文用于通知主机更好的下一跳路由。当路由器认为主机发送的数据包可以通过不同的下一跳路由器进行转发时,它可以向主机发送重定向报文,以提高数据包的传输效率。

    简而言之,大型寻亲栏目之:我的邻居在哪里?

    scapy构造nd报文

    import sys
    from scapy.all import *
    
    src_ip = sys.argv[1]
    dst_ip = sys.argv[2]
    pkt_type = sys.argv[3] #ndrs ndns
    
    option = ICMPv6NDOptSrcLLAddr(lladdr="52::d")
    
    if pkt_type == 'ndrs':
        p = Ether(src="52::d",dst="ff:ff:ff:ff:ff:ff")/IPv6(src=src_ip, dst=dst_ip)/ICMPv6ND_RS(tgt=dst_ip)/ option /(b'x'*20)
    if pkt_type == 'ndns':
        p = Ether(src="52::d",dst="ff:ff:ff:ff:ff:ff")/IPv6(src=src_ip, dst=dst_ip)/ICMPv6ND_NS(tgt=dst_ip)/ option /(b'x'*20)
    
    
    sendp(p, iface = "eth0")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    灰常的简单,52::d为本机的mac地址,运行的话,按照
    python name.py src_ip dst_ip ndns
    的格式就能发送

    当然最后的(b’x’*20),是随便加了个负载,因为很多场景对只有头部的nd报文是进行丢弃处理的,如果不会丢的话,也可以不加

  • 相关阅读:
    金仓数据库 KingbaseES异构数据库移植指南 (2. 概述)
    华为FinalMLP
    React-Router源码分析-History库
    【打工日常】解决docker对镜像pull的很慢的问题
    vue3前端以json样式输入组件实现
    排书 ← IDA*
    Go基本数据类型
    SpringCloud Alibaba微服务第5章之项目初始化
    Python+Qt多点最短路径(最优路径)算法实现
    回调地狱的产生=>Promise链式调用解决
  • 原文地址:https://blog.csdn.net/qq_42824983/article/details/133787950