o
    j).                     @   sB  d dl Z d dlZd dlZd dlmZ d dlT d dlT 	 eZdZG dd dej	Z
ee
Zee
ZG dd deZeeZG d	d
 d
eZeeZG dd deZeeZG dd deZeeZG dd deZeeZG dd deZeeZG dd deZeeZG dd deZeeZG dd deZeeZG dd deZ ee Z!G dd deZ"ee"Z#G dd deZ$ee$Z%G dd  d eZ&ee&Z'G d!d" d"eZ(ee(Z)G d#d$ d$eZ*ee*Z+G d%d& d&eZ,ee,Z-G d'd( d(eZ.ee.Z/G d)d* d*e j0Z1d+d, Z2d8d.d/Z3d9d1d2Z4d:d3d4Z5d;d6d7Z6dS )<    N)wintypes)*c                   @   s8   e Zd Zeed dZd
ddZdd Zdd	 Z	dS )SID_NAME_USEze
        User Group Domain Alias WellKnownGroup DeletedAccount
        Invalid Unknown Computer Label   Nc                 C   s.   |d ur|| j vrtdtj| d S d S )Nzinvalid SID type)	sid_types
ValueErrorr   DWORD__init__)selfvalue r   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pypykatz/commons/winapi/local/function_defs/netapi32.pyr
      s
   
zSID_NAME_USE.__init__c                 C   s&   | j | jvrtd| j  | j| j  S )Nzinvalid SID type for value: %s)r   
_sid_typesr   r   r   r   r   __str__"   s   zSID_NAME_USE.__str__c                 C   s
   d| j  S )NzSID_NAME_USE(%s))r   r   r   r   r   __repr__'   s   
zSID_NAME_USE.__repr__N)
__name__
__module____qualname__dict	enumeratesplitr   r
   r   r   r   r   r   r   r      s    
r   c                   @      e Zd ZdefgZdS )FILE_INFO_2fidN)r   r   r   r	   _fields_r   r   r   r   r   /       r   c                   @   s.   e Zd ZdefdefdefdefdefgZdS )FILE_INFO_3r   permissions	num_lockspathnameusernameN)r   r   r   r	   LMSTRr   r   r   r   r   r   5   s    r   c                   @   r   )SHARE_INFO_0netnameNr   r   r   r$   r   r   r   r   r   r%   ?   r   r%   c                   @   s"   e Zd ZdefdefdefgZdS )SHARE_INFO_1r&   typeremarkNr   r   r   r$   r	   r   r   r   r   r   r(   E   
    r(   c                	   @   s@   e Zd ZdefdefdefdefdefdefdefdefgZd	S )
SHARE_INFO_2r&   r)   r*   r    max_usescurrent_usespathpasswdNr+   r   r   r   r   r-   M       r-   c                   @   s(   e Zd ZdefdefdefdefgZdS )SHARE_INFO_501r&   r)   r*   flagsNr+   r   r   r   r   r3   Z       r3   c                
   @   sF   e Zd Zdefdefdefdefdefdefdefdefd	efg	Zd
S )SHARE_INFO_502r&   r)   r*   r    r.   r/   r0   r1   reservedNr+   r   r   r   r   r6   c   s    r6   c                   @   sL   e Zd Zdefdefdefdefdefdefdefdefd	efd
efg
ZdS )SHARE_INFO_503r&   r)   r*   r    r.   r/   r0   r1   
servernamer7   Nr+   r   r   r   r   r8   q   s    r8   c                   @   r   )SESSION_INFO_0cnameNr'   r   r   r   r   r:      r   r:   c                   @   s(   e Zd ZdefdefdefdefgZdS )SESSION_INFO_10r;   r#   time	idle_timeNr+   r   r   r   r   r<      r5   r<   c                   @   s4   e Zd ZdefdefdefdefdefdefgZdS )SESSION_INFO_1r;   r#   	num_opensr=   r>   
user_flagsNr+   r   r   r   r   r?      s    r?   c                   @   s:   e Zd ZdefdefdefdefdefdefdefgZdS )	SESSION_INFO_2r;   r#   r@   r=   r>   rA   cltype_nameNr+   r   r   r   r   rB      s    rB   c                	   @   s@   e Zd ZdefdefdefdefdefdefdefdefgZd	S )
SESSION_INFO_502r;   r#   r@   r=   r>   rA   rC   	transportNr+   r   r   r   r   rD      r2   rD   c                   @   r   )LOCALGROUP_MEMBERS_INFO_0sidN)r   r   r   PSIDr   r   r   r   r   rF      r   rF   c                   @   "   e Zd ZdefdefdefgZdS )LOCALGROUP_MEMBERS_INFO_1rG   sidusagenameNr   r   r   rH   r	   r$   r   r   r   r   r   rJ      r,   rJ   c                   @   rI   )LOCALGROUP_MEMBERS_INFO_2rG   rK   domainandnameNrM   r   r   r   r   rN      r,   rN   c                   @   r   )LOCALGROUP_MEMBERS_INFO_3rO   Nr'   r   r   r   r   rP      r   rP   c                   @   s4   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS )NetSessionEnumRes   |   W      i	  i/	     i
	  r      N)r   r   r   ERROR_ACCESS_DENIEDERROR_INVALID_LEVELERROR_INVALID_PARAMETERERROR_NOT_ENOUGH_MEMORYNERR_ClientNameNotFoundNERR_InvalidComputerERROR_FILE_NOT_FOUNDNERR_FileIdNotFoundNERR_SUCCESSERROR_MORE_DATAr   r   r   r   rQ      s    rQ   c                 C   s"   t jj}tg|_t|_||  d S r   )windllNetapi32NetApiBufferFreePVOIDargtypesr	   restype)pbuff_NetApiBufferFreer   r   r   rd      s   rd   
   c                 C   s  dd }t jj}tttttttttg	|_t|_||_	t }t }t }td}	| r-t
| } |r3t
|}|r9t
|}|dkr@t}
n"|dkrGt}
n|dkrNt}
n|dkrUt}
n|dkr\t}
ntd| d	}g }d}|	jdkso|r|| |||t|tt|t|t|		}d
}||j7 }|jdkrt|t|
|j }t|jD ]}|t|j| | qt| ||jkr	 |S |	jdkso|so|S )Nc                 S   ,   t | }|t jks|t jkr|S td| NzNetSessionEnum exception! %srQ   r`   ra   	Exceptionresultfunc	argumentsrr   r   r   errc      zNetSessionEnum.<locals>.errcr   r   rV   rj     z#NetSessionEnum unsupported level %sTF)rb   rc   NetSessionEnumr$   r	   re   LPDWORDrf   rg   errcheckLPWSTRr:   r?   rB   r<   rD   rn   r   byrefMAX_PREFERRED_LENGTHctypescastPOINTERrangeappendUserSessionInfofrom_session_infocontentsrd   )r9   
clientnamer#   levelrt   _NetSessionEnumbufentriesreadtotalentriesresume_handlesi_type
first_callsessionsentries_read_totalresmapir   r   r   rw      sV   (


rw   rV   c              
   C   sh  dd }t jj}ttttttttg|_t|_||_	t }t }t }td}| r,t
| } |r2t
|}|dkr9t}	n|dkr@t}	n|dkrGt}	n|dkrNt}	ntd| d}
g }d}|jdksa|
r|| ||t|tt|t|t|}d	}
||j7 }|jdkrt|t|	|j }t|jD ]}|t|j| | qt| ||jkr	 |S |jdksa|
sa|S )
Nc                 S   rk   rl   rm   ro   r   r   r   rt   "  ru   z%NetLocalGroupGetMembers.<locals>.errcr   r   rV      z,NetLocalGroupGetMembers unsupported level %sTF)rb   rc   NetLocalGroupGetMembersr$   r	   re   rx   rf   rg   ry   rz   rF   rJ   rN   rP   rn   r   r{   r|   r}   r~   r   r   r   LocalGroupInfofrom_structr   rd   )r9   localgroupnamer   rt   _NetLocalGroupGetMembersr   r   r   r   r   r   
groupinfosr   r   r   r   r   r   r   r   !  sN   &


r   c              	   C   sf  dd }t jj}tttttttg|_t|_||_	t }t }t }td}| r+t
| } |dkr2t}n"|dkr9t}n|dkr@t}n|dkrGt}n|dkrNt}ntd| d	}	g }
d}|jdksa|	r|| |t|tt|t|t|}d
}	||j7 }|jdkrt|t||j }t|jD ]}|
t|j| | qt| ||jkr	 |
S |jdksa|	sa|
S )Nc                 S   rk   rl   rm   ro   r   r   r   rt   V  ru   zNetShareEnum.<locals>.errcr   r   rV   rv   i  z!NetShareEnum unsupported level %sTF)rb   rc   NetShareEnumr$   r	   re   rx   rf   rg   ry   rz   r%   r(   r-   r6   r8   rn   r   r{   r|   r}   r~   r   r   r   	ShareInfor   r   rd   )r9   r   rt   _NetShareEnumr   r   r   r   r   r   
shareinfosr   r   r   r   r   r   r   r   U  sN   $


r   r   c                 C   s\  dd }t jj}tttttttttg	|_t|_||_	t }t }t }td}	| r-t
| } |r3t
|}|r9t
|}|dkr@t}
n|dkrGt}
ntd| d}g }d}|	jdksZ|r|| |||t|tt|t|t|		}d}||j7 }|jdkrt|t|
|j }t|jD ]}|t|j| | qt| ||jkr	 |S |	jdksZ|sZ|S )	za
	Only members of the Administrators or Account Operators local group can successfully execute 
	c                 S   rk   )NzNetFileEnum exception! %srm   ro   r   r   r   rt     ru   zNetFileEnum.<locals>.errcr   rV   r   z NetFileEnum unsupported level %sTF)rb   rc   NetFileEnumr$   r	   re   rx   rf   rg   ry   rz   r   r   rn   r   r{   r|   r}   r~   r   r   r   r   r   r   rd   )r9   basepathr#   r   rt   _NetFileEnumr   r   r   r   r   r   r   r   r   r   r   r   r   r   r     sJ   (


r   )NNNrj   )NNrV   )NrV   )NNNr   )7enumdatetimer}   r   3pypykatz.commons.winapi.local.function_defs.defines9pypykatz.commons.winapi.local.function_defs.netapi32_highrz   r$   r|   r	   r   r   PSID_NAME_USE	Structurer   PFILE_INFO_2r   PFILE_INFO_3r%   PSHARE_INFO_0r(   PSHARE_INFO_1r-   PSHARE_INFO_2r3   PSHARE_INFO_501r6   PSHARE_INFO_502r8   PSHARE_INFO_503r:   PSESSION_INFO_0r<   PSESSION_INFO_10r?   PSESSION_INFO_1rB   PSESSION_INFO_2rD   PSESSION_INFO_502rF   PLOCALGROUP_MEMBERS_INFO_0rJ   PLOCALGROUP_MEMBERS_INFO_1rN   PLOCALGROUP_MEMBERS_INFO_2rP   PLOCALGROUP_MEMBERS_INFO_3EnumrQ   rd   rw   r   r   r   r   r   r   r   <module>   sh    


	

	
:
44