o
    Žõ±js
  ã                   @   s   d dl mZ G dd„ dƒZdS )é    )ÚRDPCredParserc                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚRDPCMDHelperc                 C   s   dg| _ dg| _d S )NÚrdp)Úlive_keywordsÚkeywords)Úself© r   ú‰/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/pypykatz/rdp/cmdhelper.pyÚ__init__   s   zRDPCMDHelper.__init__c                 C   sü   |j ddd�}| ¡ }d|_d|_|j ddd�}|jdtd	d
� |jdddd� |j ddd�}|jdtd	d
� |jdddd� |j ddd�}| ¡ }d|_d|_|j ddd�}	|	jddgd� |	jddd� |j ddd�}
|
jddgd� |
jddd� d S )Nr   Úa)ÚhelpTÚlive_rdp_moduleÚlogonpasswordsz#Parse RDP credentials (SERVER side)z--pidz+Search a specific process PID for RDP creds)Útyper   z--allÚ
store_truez;Looks for all processes which use the rdp DLL rdpcorets.dll)Úactionr   Úmstscz#Parse RDP credentials (CLIENT side)z9Looks for all processes which use the rdp DLL mstscax.dllz(Parse RDP credentials from minidump fileÚ
rdp_modulezgParse RDP credentials (SERVER side) from minidump file. Plain-text passwords only for WINVER <= Win2012ÚcmdÚminidump)ÚchoicesÚ
memoryfilezpath to the dump filezgParse RDP credentials (CLIENT side) from minidump file. Unable to recover plain-text passwords offline.)Ú
add_parserÚadd_subparsersÚrequiredÚdestÚadd_argumentÚint)r   ÚparserÚlive_parserÚ
live_groupÚlive_rdp_subparsersÚlive_logonpasswords_groupÚlive_mstsc_groupÚgroupÚrdp_subparsersÚlogonpasswords_groupÚmstsc_groupr   r   r	   Úadd_args   s(   zRDPCMDHelper.add_argsc                 C   sb   t | jƒdkr|j| jv r|  |¡ t | jƒdkr+|jdkr-|j| jv r/|  |¡ d S d S d S d S )Nr   Úlive)Úlenr   ÚcommandÚrunr   ÚmoduleÚrun_live)r   Úargsr   r   r	   Úexecute-   s
   
$ÿzRDPCMDHelper.executec                 C   s<   t j|j|j|jd�}|D ]}|jD ]}tt|ƒƒ qqd S )N)ÚpidÚall_rdpr   )r   Úgo_liver1   Úallr   ÚcredentialsÚprintÚstr©r   r/   ÚcredparsersÚ
credparserÚcredr   r   r	   r.   4   s   
ÿÿzRDPCMDHelper.run_livec                 C   s6   t  |j|j¡}|D ]}|jD ]}tt|ƒƒ qq
d S )N)r   Úparse_minidump_filer   r   r5   r6   r7   r8   r   r   r	   r,   :   s   
ÿÿzRDPCMDHelper.runN)Ú__name__Ú
__module__Ú__qualname__r
   r(   r0   r.   r,   r   r   r   r	   r      s    r   N)Úpypykatz.rdp.parserr   r   r   r   r   r	   Ú<module>   s   