o
    àý°jÍ$  ã                   @   s&   d dl mZ G dd„ dƒZdd„ ZdS )é    )Úparse_credentialsc                   @   sf  e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%d&„ Zd'd(„ Zd)d*„ Zd+d,„ Zd-d.„ Zd/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Z d=d>„ Z!dYd@dA„Z"dBdC„ Z#dDdE„ Z$dFdG„ Z%dHdI„ Z&dJdK„ Z'dLdM„ Z(dNdO„ Z)dPdQ„ Z*dRdS„ Z+dTdU„ Z,dVdW„ Z-dXS )ZÚNTLMRelayxConfigc                 C   sr  d| _ d | _d | _d | _d | _d | _d | _d | _d | _d | _	d| _
d | _d | _d| _d | _d| _d| _d| _d| _d| _d | _d| _d | _d| _d| _d | _d| _d| _d | _d | _d | _d| _d| _ d | _!d | _"d| _#d| _$d| _%d| _&d| _'d | _(g | _)d | _*i | _+d| _,d | _-d| _.d| _/d| _0d | _1d | _2d| _3d | _4d | _5d | _6d| _7d | _8d | _9d| _:d | _;d | _<d S )NTFr   Ú i½  )=ÚdaemonÚinterfaceIpÚlisteningPortÚdomainIpÚmachineAccountÚmachineHashesÚtargetÚmodeÚredirecthostÚ
outputFileÚ
dumpHashesÚattacksÚlootdirÚrandomtargetsÚencodingÚipv6Ú
remove_micÚremove_sign_sealÚdisableMultiÚkeepRelayingÚcommandÚ
serve_wpadÚ	wpad_hostÚwpad_auth_numÚsmb2supportÚexeFileÚinteractiveÚenumLocalAdminsÚSMBServerChallengeÚ
rpc_attackÚrpc_modeÚrpc_use_smbÚauth_smbÚ	smblmhashÚ	smbnthashÚport_smbÚ
dumpdomainÚadddaÚ	aclattackÚvalidateprivsÚescalateuserÚqueriesÚdatabaseÚprotocolClientsÚrunSocksÚsocksServerÚremove_targetÚserve_imageÚisADCSAttackÚtemplateÚaltNameÚIsShadowCredentialsAttackÚShadowCredentialsPFXPasswordÚShadowCredentialsExportTypeÚShadowCredentialsOutfilePathÚisSCCMPoliciesAttackÚSCCMPoliciesClientnameÚSCCMPoliciesSleepÚisSCCMDPAttackÚSCCMDPExtensionsÚSCCMDPFiles)Úself© rC   úœ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/impacket/examples/ntlmrelayx/utils/config.pyÚ__init__   sz   
zNTLMRelayxConfig.__init__c                 C   ó
   || _ d S ©N)r!   ©rB   ÚvaluerC   rC   rD   ÚsetSMBChallengev   ó   
z NTLMRelayxConfig.setSMBChallengec                 C   rF   rG   )r"   rH   rC   rC   rD   ÚsetSMBRPCAttacky   rK   z NTLMRelayxConfig.setSMBRPCAttackc                 C   rF   rG   )r   rH   rC   rC   rD   ÚsetSMB2Support|   rK   zNTLMRelayxConfig.setSMB2Supportc                 C   rF   rG   )r0   )rB   ÚclientsrC   rC   rD   ÚsetProtocolClients   rK   z#NTLMRelayxConfig.setProtocolClientsc                 C   rF   rG   )r   )rB   ÚiprC   rC   rD   ÚsetInterfaceIp‚   rK   zNTLMRelayxConfig.setInterfaceIpc                 C   rF   rG   )r   )rB   ÚportrC   rC   rD   ÚsetListeningPort…   rK   z!NTLMRelayxConfig.setListeningPortc                 C   ó   || _ || _d S rG   )r1   r2   )rB   ÚsocksÚserverrC   rC   rD   ÚsetRunSocksˆ   ó   
zNTLMRelayxConfig.setRunSocksc                 C   rF   rG   )r   )rB   r   rC   rC   rD   ÚsetOutputFileŒ   rK   zNTLMRelayxConfig.setOutputFilec                 C   rF   rG   )r   )rB   r   rC   rC   rD   ÚsetdumpHashes�   rK   zNTLMRelayxConfig.setdumpHashesc                 C   rF   rG   )r   )rB   r   rC   rC   rD   Ú
setTargets’   rK   zNTLMRelayxConfig.setTargetsc                 C   rF   rG   )r   )rB   ÚfilenamerC   rC   rD   Ú
setExeFile•   rK   zNTLMRelayxConfig.setExeFilec                 C   rF   rG   )r   )rB   r   rC   rC   rD   Ú
setCommand˜   rK   zNTLMRelayxConfig.setCommandc                 C   rF   rG   )r    )rB   r    rC   rC   rD   ÚsetEnumLocalAdmins›   rK   z#NTLMRelayxConfig.setEnumLocalAdminsc                 C   rF   rG   )ÚaddComputerSMB)rB   r`   rC   rC   rD   ÚsetAddComputerSMBž   rK   z"NTLMRelayxConfig.setAddComputerSMBc                 C   rF   rG   )r   )rB   r   rC   rC   rD   ÚsetDisableMulti¡   rK   z NTLMRelayxConfig.setDisableMultic                 C   rF   rG   )r   )rB   r   rC   rC   rD   ÚsetKeepRelaying¤   rK   z NTLMRelayxConfig.setKeepRelayingc                 C   rF   rG   )r   )rB   r   rC   rC   rD   ÚsetEncoding§   rK   zNTLMRelayxConfig.setEncodingc                 C   rF   rG   )r   )rB   r   rC   rC   rD   ÚsetModeª   rK   zNTLMRelayxConfig.setModec                 C   rF   rG   )r   )rB   r   rC   rC   rD   Ú
setAttacks­   rK   zNTLMRelayxConfig.setAttacksc                 C   rF   rG   )r   )rB   r   rC   rC   rD   Ú
setLootdir°   rK   zNTLMRelayxConfig.setLootdirc                 C   rF   rG   )r   )rB   r   rC   rC   rD   ÚsetRedirectHost³   rK   z NTLMRelayxConfig.setRedirectHostc                 C   s@   | j sd S |d u s|d u s|d u rtdƒ‚|| _|| _|| _d S )Nz<You must specify machine-account/hashes/domain all together!)r3   Ú	Exceptionr	   r
   r   )rB   r	   r
   r   rC   rC   rD   ÚsetDomainAccount¶   s   
z!NTLMRelayxConfig.setDomainAccountc                 C   rF   rG   )r   )rB   r   rC   rC   rD   ÚsetRandomTargetsÀ   rK   z!NTLMRelayxConfig.setRandomTargetsc                 C   sL   || _ || _|| _|| _|| _|| _|| _|| _|	| _|
| _	|| _
|| _d S rG   )r)   r*   r+   r,   r-   ÚaddcomputerÚdelegateaccessÚdumplapsÚdumpgmsaÚdumpadcsÚsidÚadddnsrecord)rB   r)   r*   r+   r,   r-   rl   rm   rn   ro   rp   rq   rr   rC   rC   rD   ÚsetLDAPOptionsÃ   s   
zNTLMRelayxConfig.setLDAPOptionsc                 C   rF   rG   )r.   )rB   r.   rC   rC   rD   ÚsetMSSQLOptionsÑ   rK   z NTLMRelayxConfig.setMSSQLOptionsc                 C   sX   || _ || _t|ƒ\| _| _| _|d ur| d¡\| _| _nd| _d| _|| _	|| _
d S )Nú:r   )r#   r$   r   Ú	smbdomainÚsmbuserÚsmbpassÚsplitr&   r'   Úrpc_smb_portÚicpr_ca_name)rB   r#   r$   r%   Ú
hashes_smbrz   r{   rC   rC   rD   ÚsetRPCOptionsÔ   s   
zNTLMRelayxConfig.setRPCOptionsc                 C   rF   rG   )r   )rB   r   rC   rC   rD   ÚsetInteractiveâ   rK   zNTLMRelayxConfig.setInteractivec                 C   ó   || _ || _|| _|| _d S rG   )ÚkeywordÚmailboxÚdump_allÚdump_max)rB   r€   r�   r‚   rƒ   rC   rC   rD   ÚsetIMAPOptionså   ó   
zNTLMRelayxConfig.setIMAPOptionsc                 C   rF   rG   )r   )rB   Úuse_ipv6rC   rC   rD   ÚsetIPv6ë   rK   zNTLMRelayxConfig.setIPv6c                 C   s   |d urd| _ || _|| _d S )NT)r   r   r   )rB   r   r   rC   rC   rD   ÚsetWpadOptionsî   s   
zNTLMRelayxConfig.setWpadOptionsFc                 C   s   || _ || _|| _d S rG   )r   r3   r   )rB   r   r3   r   rC   rC   rD   ÚsetExploitOptionsô   s   
z"NTLMRelayxConfig.setExploitOptionsc                 C   rF   rG   )r4   )rB   r4   rC   rC   rD   ÚsetWebDAVOptionsù   rK   z!NTLMRelayxConfig.setWebDAVOptionsc                 C   rF   rG   )r6   )rB   r6   rC   rC   rD   ÚsetADCSOptionsü   rK   zNTLMRelayxConfig.setADCSOptionsc                 C   rF   rG   )r5   )rB   r5   rC   rC   rD   ÚsetIsADCSAttackÿ   rK   z NTLMRelayxConfig.setIsADCSAttackc                 C   rF   rG   )r8   )rB   r8   rC   rC   rD   ÚsetIsShadowCredentialsAttack  rK   z-NTLMRelayxConfig.setIsShadowCredentialsAttackc                 C   r   rG   )ÚShadowCredentialsTargetr9   r:   r;   )rB   rŽ   r9   r:   r;   rC   rC   rD   ÚsetShadowCredentialsOptions  r…   z,NTLMRelayxConfig.setShadowCredentialsOptionsc                 C   rF   rG   )r<   )rB   r<   rC   rC   rD   ÚsetIsSCCMPoliciesAttack  rK   z(NTLMRelayxConfig.setIsSCCMPoliciesAttackc                 C   rT   rG   )r=   r>   )rB   Úsccm_policies_clientnameÚsccm_policies_sleeprC   rC   rD   ÚsetSCCMPoliciesOptions  rX   z'NTLMRelayxConfig.setSCCMPoliciesOptionsc                 C   rF   rG   )r?   )rB   r?   rC   rC   rD   ÚsetIsSCCMDPAttack  rK   z"NTLMRelayxConfig.setIsSCCMDPAttackc                 C   rT   rG   )r@   rA   )rB   Úsccm_dp_extensionsÚsccm_dp_filesrC   rC   rD   ÚsetSCCMDPOptions  rX   z!NTLMRelayxConfig.setSCCMDPOptionsc                 C   rF   rG   )r/   )rB   Úmssql_dbrC   rC   rD   Ú
setMSSQLDb  rK   zNTLMRelayxConfig.setMSSQLDbc                 C   rF   rG   )r7   )rB   r7   rC   rC   rD   Ú
setAltName  rK   zNTLMRelayxConfig.setAltNameN)F).Ú__name__Ú
__module__Ú__qualname__rE   rJ   rL   rM   rO   rQ   rS   rW   rY   rZ   r[   r]   r^   r_   ra   rb   rc   rd   re   rf   rg   rh   rj   rk   rs   rt   r}   r~   r„   r‡   rˆ   r‰   rŠ   r‹   rŒ   r�   r�   r�   r“   r”   r—   r™   rš   rC   rC   rC   rD   r      sX    ^

r   c                 C   s†   t ƒ }|  d¡D ]8}| d¡}t|ƒdkrt‚t|ƒdkr'| t|d ƒ¡ qtt|ƒ\}}||k r6tdƒ‚| t||d ƒ¡ q|S )Nú,ú-é   é   r   z2Upper bound in port range smaller than lower bound)	Úsetry   ÚlenÚ
ValueErrorÚaddÚintÚmapÚupdateÚrange)rI   ÚportsÚentryÚitemsÚitem1Úitem2rC   rC   rD   Úparse_listening_ports  s   
r¯   N)Úimpacket.examples.utilsr   r   r¯   rC   rC   rC   rD   Ú<module>   s
     
