1#!/usr/local/bin/python3 2 3print("send icmp6 with hop by hop header with router alert") 4 5import os 6import sys 7from struct import pack 8from addr import * 9from scapy.all import * 10 11if len(sys.argv) != 2: 12 print("usage: icmp6_hop_ra.py Nn") 13 exit(2) 14 15N=sys.argv[1] 16IF=eval("IF_"+N); 17ADDR6=eval("ADDR6_"+N); 18 19pid=os.getpid() 20eid=pid & 0xffff 21payload=b"ABCDEFGHIJKLMNOP" 22packet=IPv6(src=ADDR6, dst=ADDR6)/ \ 23 IPv6ExtHdrHopByHop(options=[Pad1(),Pad1(),RouterAlert(),\ 24 PadN(optdata=b"\x11\x22\x33\x44\x55\x66")])/ \ 25 ICMPv6Unknown(type=6, code=0, msgbody=payload) 26 27# send does not work for some reason, add the bpf loopback layer manually 28#send(packet) 29bpf=pack('!I', 24) + bytes(packet) 30sendp(bpf, iface=IF) 31