o
    Žõ±jÚ"  ã                	   @   sä   d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZ d d	lmZ d d
lmZ d dlmZ edfe	dfedfedfedfedfedfedfdœZdd„ Zdd„ Zedkrpeƒ  dS dS )é    N)Ú	SMBTarget)ÚSMBConnectionFactory)ÚSMBFingerScanner)ÚSMBInterfaceScanner)ÚSMBProtocolScanner)ÚSMBAdminScanner)ÚSMBSessionScanner)ÚSMBPrintnightmareScanner)ÚSMBFileScanner)ÚSMBBruteForceScannerz3SMB Finger grabs OS info. Only works with NTLM authz.Lists available interfaces on the remote hostsz-SMB protocol version and NTLM signing checkerz1Checks if giver user is admin on the remote hostszLists SMB sessionsz-Checks hosts for printnightmare vulnerabilityzEnumerates files and shareszBrute forces SMB logins)ÚfingerÚ	interfaceÚprotoÚadminÚsessionÚprintnightmareÚfileÚbrutec                  Ã   st  �dd l } ddlm}m} ddlm} ddlm} | jdd�}|j	ddt
d	d
d� |j	ddt
ddd� |j	dddd� |j	dddd� |j	ddddd� |j	ddt
ddd� |jd d d!d"�}|jd#d$d�}|j	d%d&d'd(� |jd)d*d�}|j	d+d,d� |j	d%d&d'd(� |jd-d.d�}	|	j	d%d&d'd(� |jd/d0d�}
|
j	d+d,d� |
j	d%d&d'd(� |jd1d2d�}|j	d+d,d� |j	d%d&d'd(� |jd3d4d�}|j	d+d,d� |j	d%d&d'd(� |jd5d6d�}|j	d+d,d� |j	d%d&d'd(� |jd7d8d�}|j	dd9d,d� |j	d:d;d,d� |jd!d<�}|j	d=d>d,d� |j	d?dd@d� |j	dAdBdCt
dDdE� |j	dFdGdHt
dIdE� |j	dJdKd� | ¡ }| tj¡ |jtv�rKtdL|j ƒ d S |jd#k�r‚t ¡ }t|j d |ƒ}| |j¡}|dM|g|g|j|jdN�}|j|j |j|jdO�I d H  d S |jd)k�r»t |j ¡}t|j d |ƒ}| |j¡}|dM|g|g|j|jdN�}|j|j |j|jdO�I d H  d S |jd-k�ròt ¡ }t|j d |ƒ}| |j¡}|dM|g|g|j|jdN�}|j|j |j|jdO�I d H  d S |jd/k�r+t |j ¡}t|j d |ƒ}| |j¡}|dM|g|g|j|jdN�}|j|j |j|jdO�I d H  d S |jd1k�rdt |j ¡}t|j d |ƒ}| |j¡}|dM|g|g|j|jdN�}|j|j |j|jdO�I d H  d S |jd3k�r�t |j ¡}t|j d |ƒ}| |j¡}|dM|g|g|j|jdN�}|j|j |j|jdO�I d H  d S |jd5k�rØt |j ¡}t|j d ||j!dP�}| |j¡}|dM|g|g|jd dN�}|j|j |j|jdO�I d H  d S |jd7k�r8t"|j#|j$d dQ�}i }t|j d ||ƒ}||j%|j&|j$|j'dR�}z| (|j)¡ W n
   | *|j)¡ Y |j'�s| +|j,¡ |dM||g|jd dN�}|j|j |j|jdO�I d H  d S d S )SNr   )ÚUniTargetGenÚUniCredentialGen)Ú
UniScanner)ÚloggerzSMB Scanner)Údescriptionz-wz--worker-countéd   zParallell count)ÚtypeÚdefaultÚhelpz-tz	--timeouté
   zTimeout for each connectionz--no-progressÚstore_falsezDisable progress bar)Úactionr   z-oz
--out-filezOutput file path.)r   z-ez--errorsÚ
store_truezIncludes errors in output.z-dz--depthé   zShare enumeration depth.ÚscantypeT)ÚtitleÚdestÚrequiredr   zFetch certificateÚtargetsÚ*z5Hostname or IP address or file with a list of targets)Únargsr   r   zList interfacesÚurlzConnection string in URL formatr   z.Scan for SMB protocol version and NTLM signingr   zCheck if user is adminr   zList SMB sessionsr   z&Check for printnightmare vulnerabilityr   zEnumerate files and sharesr   zBrute force SMB loginsz--domainz-uz--usernames)r%   z-pz--passwordsz--upzUsername is passwordz-sz--sleep-timeé   z$Sleep time between attempts per user)r   r   r   z-az--max-attemptsé   z"Max unsuccessful attempts per userÚtargetzIP/hostname of targetzUnknown scan type: "%s"Ú
SMBScanner)Úworker_countÚhost_timeout)ÚprogressÚout_fileÚinclude_errors)Údepth)ÚipÚdomainÚproxies)Úmax_attemptsÚ
sleep_timer5   Úusername_is_password)-ÚargparseÚ)asysocks.unicomm.common.scanner.targetgenr   r   Ú'asysocks.unicomm.common.scanner.scannerr   Úaiosmbr   ÚArgumentParserÚadd_argumentÚintÚadd_subparsersÚ
add_parserÚadd_mutually_exclusive_groupÚ
parse_argsÚsetLevelÚloggingÚCRITICALr"   Úsmbscan_optionsÚprintr   Úcreate_dummyÚ	from_listr&   r.   ÚtimeoutÚscan_and_processÚno_progressr1   ÚerrorsÚfrom_urlr)   r3   r   r,   r5   r7   r8   ÚupÚadd_users_fileÚ	usernamesÚadd_usernameÚadd_passwords_fileÚ	passwords)r:   r   r   r   r   ÚparserÚ
subparsersÚ
fingerscanÚinterfacescanÚ	protoscanÚ	adminscanÚsessionscanÚprintnightmarescanÚfilescanÚ	brutescanÚgroupÚargsÚconnectionfactoryÚexecutorÚtgenÚscannerr,   Úexclude_usersÚcgen© ri   ú”/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/aiosmb/examples/scanners/__main__.pyÚamain   sÜ   €ñrk   c                   C   s   t  tƒ ¡ d S )N)ÚasyncioÚrunrk   ri   ri   ri   rj   Úmain¢   s   rn   Ú__main__)rl   rF   Ú aiosmb.commons.connection.targetr   Ú!aiosmb.commons.connection.factoryr   Ú"aiosmb.examples.scanners.smbfingerr   Ú!aiosmb.examples.scanners.smbifacer   Ú!aiosmb.examples.scanners.smbprotor   Ú!aiosmb.examples.scanners.smbadminr   Ú#aiosmb.examples.scanners.smbsessionr   Ú*aiosmb.examples.scanners.smbprintnightmarer	   Ú aiosmb.examples.scanners.smbfiler
   Ú!aiosmb.examples.scanners.smbbruter   rH   rk   rn   Ú__name__ri   ri   ri   rj   Ú<module>   s6   ø 
ÿ