o
    j                     @   sr   d dl mZ d dlmZmZmZ dddZddd	ZG d
d dZddddddddddddddgg g fddZ	dS )    )LDAPConnectionFactory)SMBFileEnumListTargetGenFileTargetGenntlm2Nc                 C   s@   ddl m} | }|d }|d ur|}d|| |d |d |f S )Nr   get_logon_infologonserverzsmb%s+sspi-%s://%s\%s@%sdomainusernamewinacl.functions.highlevelr	   )
authmethodprotocol_versionhostr	   infor
    r   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pypykatz/smb/shareenum.pyget_smb_url   s   r   c                 C   s>   ddl m} | }|d }|d ur|}d| |d |d |f S )Nr   r   r
   zldap+sspi-%s://%s\%s@%sr   r   r   )r   r   r	   r   r
   r   r   r   get_ldap_url   s   r   c                   @   s   e Zd Zdd Zdd ZdS )LDAPTargetGenc                 C   s
   || _ d S )N)url)selfr   r   r   r   __init__   s   
zLDAPTargetGen.__init__c           
   
   C  s   zct | j}| }| I d H \}}|d ur||j}|jdddddd}|jg dd2 z+3 d H W \}}|d urC||j	}|d u rUd|j
d d	 |f }t|jt|d fV  q56 W d S  ty} }	 zd d |	fV  W Y d }	~	d S d }	~	ww )
NDC =,.)sAMAccountNamedNSHostName	objectSid)attrsz%s.%s)r   from_urlr   
get_clientconnect	_ldapinfodistinguishedNamereplaceget_all_machinesr!   r    strr"   	Exception)
r   conn_url
connection_erradinfodomain_namemachinednser   r   r   generate   s*    
zLDAPTargetGen.generateN)__name__
__module____qualname__r   r7   r   r   r   r   r      s    r   
      Fr,   zprint$c                    s   | dkrt |
|d} t| |||||||	|||||d}g }|d urR|D ]}zt|d}|  |jt| W q$   || Y q$t|dkrR|jt| |d urg|dkr_t	|
d}|jt
| t|jdkrqd|_| I d H  d S )Nauto)r   r   )worker_countdepthout_file	show_pbar	max_itemsfetch_dir_sdfetch_file_sdoutput_typemax_runtimeexclude_shareexclude_direxclude_targetrr   )r   T)r   r   openclosetarget_gensappendr   lenr   r   r   enum_urlrun)smb_urlldap_urltargetssmb_worker_countr?   r@   progressrB   dirsdfilesdr   r   rE   rF   rG   rH   rI   
enumeratornotfiletargetfr   r   r   	shareenum5   sH   

r]   )r   r   N)r   N)
msldap.commons.factoryr   aiosmb.examples.smbshareenumr   r   r   r   r   r   r]   r   r   r   r   <module>   s    



0