o
    j                     @   s   d dl mZ d dlmZmZmZmZmZmZ d dl	m
Z
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mZmZmZ G dd de
Zdd	 Zed
krZd dlZee  dS dS )    )logger)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)InterfaceManagerInterfaceEndpoint)NULL)MSRPC_UUID_EFSRhRpcEfsRpcAddUsersToFilehRpcEfsRpcAddUsersToFileExhRpcEfsRpcDecryptFileSrvhRpcEfsRpcEncryptFileSrv%hRpcEfsRpcDuplicateEncryptionInfoFilehRpcEfsRpcFileKeyInfohRpcEfsRpcOpenFileRawhRpcEfsRpcQueryRecoveryAgentshRpcEfsRpcQueryUsersOnFilehRpcEfsRpcRemoveUsersFromFilec                       s   e Zd Z fddZedd Zedd Zdd Zd	d
 Z	dd Z
dddZdd Zdd ZdddZdddZdd Zdd Zd ddZ  ZS )!EFSRRPCc                    s   t  || d S N)super__init__)self
connectionendpoint	__class__ /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/aiosmb/dcerpc/v5/interfaces/efsrmgr.pyr      s   zEFSRRPC.__init__c                 C   sp   t ddddtdt ddddtdt ddddtdt dddd	tdt dddd
tdt dddtdt dddtdgS )Nncan_npz$df1941c5-fe89-4e79-bf10-463657acf44dz1.0z\efsrpc)pipename	authlevelz$c681d488-d850-11d0-8c52-00c04fd90f7ez\lsarpcz\samrz\lsassz	\netlogonncacn_ip_tcp)r$   )r
   r   clsr    r    r!   	endpoints   s   zEFSRRPC.endpointsc                 C   s
   t | |S r   )r   )r   r   r    r    r!   create_instance"   s   
zEFSRRPC.create_instancec                    s   d S r   r    r&   r    r    r!   cleanup&   s   zEFSRRPC.cleanupc                       t | j|I d H S r   )r   dcer   fileNamer    r    r!   r   )      z EFSRRPC.hRpcEfsRpcAddUsersToFilec                    r+   r   )r   r,   r-   r    r    r!   r   ,   r/   z"EFSRRPC.hRpcEfsRpcAddUsersToFileExr   c                       t | j||I d H S r   )r   r,   )r   r.   openFlagr    r    r!   r   /      z EFSRRPC.hRpcEfsRpcDecryptFileSrvc                    r+   r   )r   r,   r-   r    r    r!   r   2   r/   z EFSRRPC.hRpcEfsRpcEncryptFileSrvc                    r0   r   )r   r,   )r   srcFileNamedstFileNamer    r    r!   r   5   r2   z-EFSRRPC.hRpcEfsRpcDuplicateEncryptionInfoFilec                    r0   r   )r   r,   )r   r.   	infoClassr    r    r!   r   8   r2   zEFSRRPC.hRpcEfsRpcFileKeyInfoc                    r0   r   )r   r,   )r   r.   flagsr    r    r!   r   ;   r2   zEFSRRPC.hRpcEfsRpcOpenFileRawc                    r+   r   )r   r,   r-   r    r    r!   r   >   r/   z%EFSRRPC.hRpcEfsRpcQueryRecoveryAgentsc                    r+   r   )r   r,   r-   r    r    r!   r   A   r/   z"EFSRRPC.hRpcEfsRpcQueryUsersOnFileNc                    s"   t | j||d ur|ntI d H S r   )r   r,   r   )r   r.   EncryptionCertificatesr    r    r!   r   D   s    z%EFSRRPC.hRpcEfsRpcRemoveUsersFromFile)r   r   )__name__
__module____qualname__r   classmethodr(   staticmethodr)   r*   r   r   r   r   r   r   r   r   r   r   __classcell__r    r    r   r!   r      s"    




r   c            
   
      s  z;d} d}d}d }t  D ]&}t j| ||||dI d H \}}|d ur.tdt|  qt| |4 I d H  td |dI d H \}}|d urQtd|  |dI d H \}}|d uretd|  |dI d H \}}|d urytd|  |dI d H \}}|d urtd	|  |dI d H \}}|d urtd
|  |	ddI d H \}}|d urtd|  |
dI d H \}}|d urtd|  |dI d H \}}|d urtd|  |dI d H \}}|d urtd|  |dI d H \}}|d urtd|  |dI d H \}}|d urtd|  t| W d   I d H  n1 I d H s1w   Y  qtd W d S  ty] } zt| dd l}	|	  W Y d }~d S d }~ww )Nz192.168.56.22hodor)r   zFailed to connect to %s   z\\192.168.56.129\C$\almaz*hRpcEfsRpcAddUsersToFile failed Reason: %sz,hRpcEfsRpcAddUsersToFileEx failed Reason: %sz*hRpcEfsRpcDecryptFileSrv failed Reason: %sz*hRpcEfsRpcEncryptFileSrv failed Reason: %sz7hRpcEfsRpcDuplicateEncryptionInfoFile failed Reason: %sz'hRpcEfsRpcFileKeyInfo failed Reason: %sz'hRpcEfsRpcOpenFileRaw failed Reason: %sz/hRpcEfsRpcQueryRecoveryAgents failed Reason: %sz,hRpcEfsRpcQueryUsersOnFile failed Reason: %sz/hRpcEfsRpcRemoveUsersFromFile failed Reason: %s   r   )r   r(   from_ntlm_paramsprintstrr   r   r   r   r   r   r   r   r   r   	Exception	traceback	print_exc)
hostuserpassworddomainr   rpcerrreserE   r    r    r!   amainG   sr   


*&rO   __main__N)aiosmbr   aiosmb.dcerpc.v5.rpcrtr   r   r   r   r   r   aiosmb.dcerpc.v5.interfacesr	   r
   aiosmb.dcerpc.v5.dtypesr   aiosmb.dcerpc.v5.efsrr   r   r   r   r   r   r   r   r   r   r   r   rO   r8   asynciorunr    r    r    r!   <module>   s     459