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