def fragment_covert_channel(src, dst): payload1 = '' for i in range(1280): payload1 = payload1 + '0' payload2 = '' for i in range(1280): payload2 = payload2 + '0' # Create IPv6 Packet ip6 = IPv6() ip6.dst = dst ip6.src = src # Create ICMPv6 Packet icmpv6 = ICMPv6EchoRequest(cksum=0x7b57, data=payload1) # Create Fragments frg_hdr1 = IPv6ExtHdrFragment() # offset=0, m=1, id=511, nh=58 frg_hdr1.offset = 0 frg_hdr1.m = 1 frg_hdr1.id = 511 frg_hdr1.nh = 44 frg_hdr2 = IPv6ExtHdrFragment() # offset=162, m=0, id=511, nh=6 frg_hdr2.offset = 162 frg_hdr2.m = 0 frg_hdr2.id = 511 frg_hdr2.nh = 6 tcp_hdr = TCP() tcp_hdr.source_port = 1055 tcp_hdr.destination_port = 8080 # Create Packet for sending pkt1 = ip6/frg_hdr1/icmpv6 pkt2 = ip6/frg_hdr2/tcp_hdr/payload2 pkt1.show() pkt2.show() # Send Packets send(pkt1) send(pkt2)