1#!/usr/local/bin/python3 2 3print("send internet group management protocol with unknown option") 4 5import os 6import sys 7from struct import pack 8from addr import * 9from scapy.all import * 10from scapy.contrib.igmp import * 11 12if len(sys.argv) != 2: 13 print("usage: igmp_bad.py Nn") 14 exit(2) 15 16N=sys.argv[1] 17IF=eval("IF_"+N); 18ADDR=eval("ADDR_"+N); 19 20pid=os.getpid() 21eid=pid & 0xffff 22packet=IP(src=ADDR, dst="224.0.0.1", ttl=1, options=b"\003\004\000\000")/ \ 23 IGMP(type=0x11) 24 25# send() does not work for some reason, add the bpf loopback layer manually 26bpf=pack('!I', 2) + bytes(packet) 27sendp(bpf, iface=IF) 28