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rt }t|j d |}||j}|dM|g|g|j|jdN}|j|j |j|jdOI d H  d S |jd)krt|j }t|j d |}||j}|dM|g|g|j|jdN}|j|j |j|jdOI d H  d S |jd-krt }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rt|j }t|j d |}||j}|dM|g|g|j|jdN}|j|j |j|jdOI d H  d S |jd5krt|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-countd   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    
