2019-06-29 13:23:00 +00:00
|
|
|
#!/usr/bin/python3
|
|
|
|
|
2019-06-29 15:13:28 +00:00
|
|
|
#from __future__ import unicode_literals
|
2019-06-29 13:23:00 +00:00
|
|
|
from scapy.all import *
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
p = []
|
|
|
|
|
|
|
|
e0 = Ether(src="00:00:00:00:00:00",
|
|
|
|
dst="00:00:00:00:00:00")
|
|
|
|
|
|
|
|
i0 = IP(src = "0.0.0.0",
|
|
|
|
dst = "0.0.0.0")
|
|
|
|
|
|
|
|
t0 = TCP(dport=0, sport=0)
|
|
|
|
#t = TCP(dport=80, sport=random.randint(49152,65535))
|
|
|
|
|
|
|
|
# print("chk_t = {}".format(t))
|
2019-06-29 15:13:28 +00:00
|
|
|
|
|
|
|
e = Ether(src="02:53:55:42:45:01", dst='ff:ff:ff:ff:ff:ff')
|
|
|
|
i4 = IP(src = "192.168.1.1", dst = "192.168.4.2")
|
|
|
|
i6 = IPv6(src = "2001:db8:42::1", dst = "2001:db8::2")
|
|
|
|
i62 = IPv6(src = "2001:db8:42::2", dst = "2001:db8::2")
|
2019-06-29 13:23:00 +00:00
|
|
|
t = TCP(dport=80, sport=1337)
|
2019-06-29 15:13:28 +00:00
|
|
|
u = UDP(dport=80, sport=1337)
|
2019-06-29 13:23:00 +00:00
|
|
|
|
|
|
|
#print("chk_t = {}".format(t))
|
|
|
|
|
|
|
|
d0 = ""
|
|
|
|
d = "A"
|
|
|
|
|
2019-06-29 15:13:28 +00:00
|
|
|
p.append(e / i4 / u / d)
|
|
|
|
p.append(e / i6 / u / d)
|
|
|
|
p.append(e / i62 / u / d)
|
2019-06-29 13:23:00 +00:00
|
|
|
|
|
|
|
for packet in p:
|
|
|
|
print("p = {}".format(packet.__repr__()))
|
|
|
|
packet_rebuild = packet.__class__(str(packet))
|
2019-06-29 15:13:28 +00:00
|
|
|
print("rebuild = {}".format(packet_rebuild.__repr__()))
|
|
|
|
chk_old = packet[UDP].chksum
|
|
|
|
chk_new = packet_rebuild[UDP].chksum
|
2019-06-29 13:23:00 +00:00
|
|
|
print("chk1 = {} chk2={}".format(chk_old, chk_new))
|
|
|
|
|
2019-06-29 15:13:28 +00:00
|
|
|
# Get diffs -- for UDP
|
|
|
|
# udp_v4 =
|
|
|
|
# hdr.ipv4.src_addr,
|
|
|
|
# hdr.ipv4.dst_addr,
|
|
|
|
# 8w0,
|
|
|
|
# hdr.ipv4.protocol,
|
|
|
|
# meta.length_without_ip_header,
|
|
|
|
|
|
|
|
# // UDP header
|
|
|
|
# hdr.udp.src_port,
|
|
|
|
# hdr.udp.dst_port,
|
|
|
|
# hdr.udp.payload_length
|
|
|
|
|
|
|
|
|
2019-06-29 13:23:00 +00:00
|
|
|
# Checksums:
|
|
|
|
# - tcp
|
|
|
|
# - udp
|
|
|
|
# - icmp6
|
|
|
|
# - icmp
|
|
|
|
# - ipv4 (no payload)
|
|
|
|
#
|
|
|
|
# t.chksum = None
|