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
     
