Guest User

Untitled

a guest
Nov 24th, 2017
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. from scapy.all import *
  2. import ctypes
  3.  
  4.  
  5. def dump_ints16(data_int, fl):
  6. dt = (ctypes.c_uint16 * len(data_int))(*data_int)
  7. ch_buf = (c_char * ctypes.sizeof(dt)).from_buffer(dt)
  8. open(fl, "wb").write(ch_buf.raw)
  9.  
  10.  
  11. def dump_ints32(data_int, fl):
  12. dt = (ctypes.c_uint32 * len(data_int))(*data_int)
  13. ch_buf = (c_char * ctypes.sizeof(dt)).from_buffer(dt)
  14. open(fl, "wb").write(ch_buf.raw)
  15.  
  16.  
  17. def main():
  18. packets = rdpcap('packets.pcapng')
  19. data = [("I" if p.haslayer(ICMP) else "U", str(p.lastlayer())) for p in packets if p.haslayer(ICMP) or p.haslayer(UDP)]
  20. data_int = [int(i[1]) for i in data]
  21. dump_ints32(data_int, "dump.bin")
  22.  
  23. tcp_idseq = [(p.getlayer(TCP).sport, p.getlayer(IP).id) for p in packets if p.haslayer(TCP)]
  24.  
  25. # Try pairs for xor keys
  26. tcp_sport_id = []
  27. tcp_id_sport = []
  28. for i in tcp_idseq:
  29. tcp_sport_id.append(i[0])
  30. tcp_sport_id.append(i[1])
  31. tcp_id_sport.append(i[1])
  32. tcp_id_sport.append(i[0])
  33.  
  34. dump_ints16(tcp_sport_id, "tcp_sport_id.bin")
  35. dump_ints16(tcp_id_sport, "tcp_id_sport.bin")
  36.  
  37. dump = open("dump.bin", "rb").read()
  38. tcp_sport_id_f = open("tcp_sport_id.bin", "rb").read()
  39. tcp_id_sport_f = open("tcp_id_sport.bin", "rb").read()
  40.  
  41. c = []
  42. for i in range(2048):
  43. c.append(chr(ord(dump[i]) ^ ord(tcp_sport_id_f[i])))
  44. print "".join(c)
  45.  
  46. c = []
  47. for i in range(2048):
  48. c.append(chr(ord(dump[i]) ^ ord(tcp_id_sport_f[i])))
  49. print "".join(c)
  50.  
  51.  
  52. if __name__ == '__main__':
  53. main()
Add Comment
Please, Sign In to add comment