o
    Žõ±j²  ã                   @   sø   d dl Z d dlmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
mZ d dlmZmZmZmZmZ d dlmZ d d	lmZ d d
lmZ d dlmZmZmZmZmZmZmZm Z  d dl!m"Z" G dd„ de"ƒZ#dd„ Z$e%dkrzd dl&Z&e& 'e$ƒ ¡ dS dS )é    N)ÚasyauthSecret)ÚSPNEGOCredential)ÚNTLMCredential)ÚEPM)ÚKNOWN_UUIDSÚKNOWN_PROTOCOLS)Úuuidtup_to_binÚgenerateÚstringver_to_binÚbin_to_uuidtupÚbin_to_string)Ú
DCERPCAuth)ÚDCERPC5Connection)ÚNULL)ÚRPC_C_AUTHN_LEVEL_NONEÚRPC_C_AUTHN_LEVEL_CONNECTÚRPC_C_AUTHN_LEVEL_CALLÚRPC_C_AUTHN_LEVEL_PKTÚRPC_C_AUTHN_LEVEL_PKT_INTEGRITYÚRPC_C_AUTHN_LEVEL_PKT_PRIVACYÚDCERPCExceptionÚRPC_C_AUTHN_GSS_NEGOTIATE)ÚNDRCALLc                   @   s   e Zd ZdZdZdS )ÚDummyOpéÿ   © N)Ú__name__Ú
__module__Ú__qualname__ÚopnumÚ	structurer   r   r   úŠ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/aiosmb/examples/epmtest.pyr      s    r   c                  Ã   sš  ��z2g } d}t  |¡}| ¡ I d H \}}|d ur|‚| ¡ I d H \}}|d ur*|‚| ¡ I d H  tt|ƒƒ |D ]Q}d|d d d d |d d d d f }t|d d d d ƒ}t||fƒ}	t  	||	¡I d H \}
}t|ƒ |d ur‚t
|ƒ d	¡d
kr€q9|‚|  ||	|
f¡ q9| D ]¤\}}	}
tdddtjd�}t|gƒ ¡ }t |¡}t||
ƒ}| t¡ zxzW| ¡ I d H \}}|d urÂ|‚| |	¡I d H \}}|d urÒ|‚tƒ }| |¡I d H \}}t
|ƒ d¡d
k�rd}|tv rót| }td| ƒ td| ƒ td| ƒ tƒ  W n t�y  } z
t ¡  W Y d }~nd }~ww W | ¡ I d H  q�| ¡ I d H  w W d S  t�yL } zt ¡  W Y d }~d S d }~ww )Nz
10.10.10.2z%s.%sÚtowerÚFloorsr   ÚMajorVersionÚMinorVersionÚInterfaceUUIDÚept_s_not_registeredéÿÿÿÿÚAdministratorÚTESTz
Passw0rd!1)ÚusernameÚdomainÚsecretÚstypeÚrpc_s_access_deniedÚUNKz	UUID : %sz	proto: %sz	err  : %s)r   Úfrom_addressÚconnectÚlookupÚ
disconnectÚprintÚlenr   r   Úcreate_targetÚstrÚfindÚappendr   r   ÚPASSWORDr   Úbuild_contextr   Úfrom_smb_gssapir   Úset_auth_levelr   Úbindr   Úrequestr   Ú	ExceptionÚ	tracebackÚ	print_exc)ÚtargetsÚipÚepmÚ_ÚerrÚxÚentryÚversionÚuuidstrÚservice_uuidÚtargetÚcredÚgssapiÚauthÚ
connectionÚreqÚprotoÚer   r   r!   Úamain   s€   €
,ü


€€ÿ€ Ü'€ÿrV   Ú__main__)(rB   Úasyauth.common.constantsr   Ú!asyauth.common.credentials.spnegor   Úasyauth.common.credentials.ntlmr   Ú'aiosmb.dcerpc.v5.interfaces.endpointmgrr   Úaiosmb.dcerpc.v5.epmr   r   Úaiosmb.dcerpc.v5.uuidr   r	   r
   r   r   Ú1aiosmb.dcerpc.v5.common.connection.authenticationr   Úaiosmb.dcerpc.v5.connectionr   Úaiosmb.dcerpc.v5.dtypesr   Úaiosmb.dcerpc.v5.rpcrtr   r   r   r   r   r   r   r   Úaiosmb.dcerpc.v5.ndrr   r   rV   r   ÚasyncioÚrunr   r   r   r!   Ú<module>   s$    (Nþ