1.help命令
在Cobalt Strike中,help命令没有图形化操作,只有命令行操作。
在Cobalt Strike中,输入“help”命令会将Beacon的命令及相应的用法解释都列出来,输入“help 命令”会将此命令的帮助信息列出来,如图所示。
help命令
2.sleep命令
单击右键,在弹出的快捷菜单中选择“Session”"“Sleep”选项,或者在Beacon命令行环境中执行如下命令,即可调用sleep命令。
sleep [time in seconds]
在默认情况下,Cobalt Strike的回连时间为60秒。为了使Beacon能够快速响应渗透测试人员的操作,可以选中一个会话,单击右键,在弹出的快捷菜单中选择“Interact”选项,与被控制端进行交互。执行“sleep 1”命令,将心跳时间改为1秒,如图所示。也可以在Cobalt Strike的图形化界面中修改回连时间。
sleep命令
1.使用getuid命令获取当前用户权限
Beacon命令行:getuid。
getuid命令用于获取当前Beacon是以哪个用户的身份运行的、是否具有管理员权限等,如图所示。
getuid命令
2.使用getsystem命令获取System权限
Beacon命令行:getsystem。
在Cobalt Strike主界面中选择一个Beacon,进入交互模式,然后输入“getsystem”命令,尝试获取System权限,如图所示。
getsystem命令
3.使用getprivs命令获取当前Beacon的所有权限
Beacon命令行:getprivs。
getprivs命令用于获取当前Beacon包含的所有权限,类似于在命令行环境中执行“whoami /priv”命令。在Cobalt Strike主界面中选择一个Beacon,进入交互模式,输入“getprivs”命令,如图所示。
getprivs命令
4.使用Browser Pivot模块劫持指定的Beacon浏览器
图形化操作:单击右键,在弹出的快捷菜单中选择“Explore”"“Browser Pivot”选项。
Beacon命令行:命令如下。
browserpivot [pid] [x86|x64]
browserpivot [stop]
Browser Pivot模块用于劫持目标的IE浏览器,在目标主机上开设代理。本地浏览器通过代理劫持目标的Cookie实现免登录(在访问目标的IE浏览器所访问的网址时,使用的就是目标IE浏览器的Cookie)。
5.使用Desktop (VNC) 进行VNC连接
图形化操作:单击右键,在弹出的快捷菜单中选择“Explore”"“Desktop (VNC)”选项。
Beacon命令行:desktop [high|low]。
将VNC服务端注入目标机器,即可通过参数控制通信质量。需要注意的是,运行此模块时不要使用System权限或者服务的权限(使用这些权限运行此模块,可能无法连接用户屏幕),应尽量以指定用户权限使用此模块。正常运行此模块后的界面,如图所示,默认为只读模式,只能查看用户的桌面。单击界面下方的第二个图标,即可进入操作模式。
使用VNC获取的界面
6.文件管理模块
图形化操作:单击右键,在弹出的快捷菜单中选择“Explore”"“File Browser”选项。
Beacon命令行:cd,切换文件夹;ls,列出目录;download,下载文件;upload,上传文件;execute,执行文件;mv,移动文件;mkdir,创建文件夹;delete,删除文件或者文件夹。
文件管理模块有时会因为权限过高或者过低而无法正常浏览目标的文件。值得注意的是,切换目录、执行文件等动作,本质上都是Beacon在执行命令,所以,会在下一次心跳时才有数据返回。基本操作都可以在图形化界面中完成。
文件管理模块正常运行的结果,如图所示。
如图所示,选中一个可执行文件,单击右键,在弹出的快捷菜单中可以看到“Execute”选项。选择该选项,即可带参数执行,如图所示。
Cobalt Strike从3.10版本开始支持中文。如果运行cobaltstrike.jar的操作系统的语言为英语且未安装中文语言包,将无法正常显示中文。
文件管理
调用快捷菜单
带参数执行
7.net view命令
图形化操作:单击右键,在弹出的快捷菜单中选择“Explore”"“Net View”选项。
Beacon命令行:net view <DOMAIN>。
执行net view命令,会显示指定计算机共享的域、计算机和资源的列表。在Cobalt Strike主界面中选择一个Beacon,进入交互模式,输入“net view”命令,如图所示。
net computers:通过查询域控制器上的计算机账户列表来查找目标。
net dclist:列出域控制器。
net domain_trusts:列出域信任列表。
net group:枚举自身所在域控制器中的组。“net group \\target”命令用于指定域控制器。“net group \\target <GROUPNAME>”命令用于指定组名,以获取域控制器中指定组的用户列表。
net localgroup:枚举当前系统中的本地组。“net localgroup \\target”命令用于指定要枚举的远程系统中的本地组。“net localgroup \\target <GROUPNAME>”命令用于指定组名,以获取目标机器中本地组的用户列表。
net logons:列出登录的用户。
net sessions:列出会话。
net share:列出共享的目录和文件。
net user:列出用户。
net time:显示时间。
net view命令
8.端口扫描模块
图形化操作:单击右键,在弹出的快捷菜单中选择“Explore”"“Port Scan”选项。
Beacon命令行:portscan [targets] [ports] [arp|icmp|none] [max connections]。
端口扫描界面,如图所示。
端口扫描界面
在端口扫描界面中不能自定义扫描范围,但在Beacon命令行环境中可以自定义扫描范围。Beacon命令行支持两种形式(192.168.1.128-192.168.2.240;192.168.1.0/24),自定义的端口范围用逗号分隔。
端口扫描界面支持两种扫描方式。如果选择“arp”选项,就使用ARP协议来探测目标是否存活;如果选择“icmp”选项,就使用ICMP协议来探测目标是否存活。如果选择“none”选项,表示默认目标是存活的。
由于portscan命令采用的是异步扫描方式,可以使用Max Sockets参数来限制连接数。
9.进程列表模块
图形化操作:单击右键,在弹出的快捷菜单中选择“Explore”"“Process List”选项。
Beacon命令行:ps,查看进程;kill,结束进程。
进程列表就是通常所说的任务管理器,可以显示进程的ID、进程的父ID、进程名、平台架构、会话及用户身份。当Beacon以低权限运行时,某些进程的用户身份将无法显示,如图所示。
以低权限运行Beacon
如图所示,Beacon是以System权限运行的。可以选中目标进程,单击“Kill”按钮来结束进程。直接在Beacon命令行环境中使用“kill [pid]”形式的命令,也可以结束一个进程。
高权限进程
进程列表模块还支持键盘记录、进程注入、截图、令牌伪造等操作。
10.screenshot命令
图形化操作:单击右键,在弹出的快捷菜单中选择“Explore”"“Screenshot”选项。
Beacon命令行:screenshot [pid] <x86|x64> [run time in seconds]。
在Cobalt Strike主界面中选择一个Beacon,进入交互模式,执行“screenshot”命令,获得此刻目标主机当前用户的桌面截图,如图所示。可以选择“View”"“Screenshots”选项查看截图。
screenshot命令
screenshot命令还支持定时截图,如图所示。例如,命令“screenshot 2032 10”表示将screenshot命令注入PID为2032的进程空间,每10秒截图一次,将截图传回团队服务器。
定时截图
应尽量使用指定用户权限进行以上操作。无法使用服务账号或System权限进行以上操作。
11.Log Keystrokes模块
图形化操作:选择“Process List”"“Log KeyStrokes”选项。
Beacon命令行:keylogger [pid] <x86|x64>。
Log Keystrokes模块用于将键盘记录注入进程。当目标主机使用键盘进行输入时,就会捕获输入的内容并传回团队服务器,如图所示。
目标主机使用键盘输入
可以选择“View”"“Log KeyStrokes”选项查看键盘输入记录,如图9-90所示。在Cobalt Strike主界面选中一个Beacon,进入交互模式,输入“keylogger [pid] <x86|x64>”命令,也可以查看键盘输入记录。
查看键盘输入记录
应尽量使用普通用户权限进行以上操作。无法使用服务账号或System权限进行以上操作。
12.inject命令
图形化操作:依次选择“Process List”"“Inject”选项。
Beacon命令行:inject [pid] <x86|x64> [listener]。
将Payload注入目标进程,可以回弹一个Beacon。选择一个进程,单击“Inject”按钮,将弹出监听器选择界面。选择一个监听器,就会返回目标进程PID的Beacon会话。系统进程的PID和Beacon的PID是一样的,仅通过进程列表无法发现异常,如图所示。
系统进程的PID
Beacon进程的PID
13.Steal Token模块
图形化操作:依次选择“Process List”"“Steal Token”选项。
Beacon命令行:steal_token [pid]。
Steal Token模块可以模拟指定用户的身份运行进程的令牌。在域渗透测试中,若在非域控制器中发现以域管理员身份运行的进程,可以使用Steal Token模块获取域管理员权限,或者从管理员权限提升到System权限。可以使用rev2self命令将令牌还原。
在Cobalt Strike主界面中选择一个Beacon,进入交互模式,输入“steal_token [pid]”命令,就可以获取指定进程的令牌了,如图所示。
获取指定进程的令牌
14.Note模块
图形化操作:单击右键,在弹出的快捷菜单中选择“Sessions”"“Note”选项。
Beacon命令行:note [text]。
使用Note模块可以给目标设置标记,如图所示。单击“确定”按钮后,标记就会在会话列表中显示出来,如图所示。
给指定的Beacon设置标记
显示标记
Note模块可用来区分不同重要程度的机器。
15.exit命令
图形化操作:单击右键,在弹出的快捷菜单中选择“Sessions”"“Exit”选项。
Beacon命令行:exit。
exit命令用来退出当前Beacon会话,相当于放弃这个会话的权限。一般用exit命令搭配Remove模块来清除不需要的会话。
16.Remove模块
图形化操作:单击右键,在弹出的快捷菜单中选择“Sessions”"“Remove”选项。
当某个Beacon长时间没有回连或者不需要使用某个会话时,选中指定会话即可将其移出会话列表。
17.shell命令
Beacon命令行:shell [command] [arguments]。
在Cobalt Strike主界面中选择一个Beacon,进入交互模式,输入相应的shell命令,即可调用目标系统中的cmd.exe,如图所示。
shell命令
18.run命令
Beacon命令行:run [program] [arguments]。
run命令不调用cmd.exe,而是直接调用“能找到的程序”。例如,“run cmd ipconfig”在本质上和“shell ipconfig”一样,但使用“run ipconfig”,就相当于直接调用系统system32文件夹下的ipconfig.exe,如图所示。
run命令
19.execute命令
Beacon命令行:execute [program] [arguments]。
execute命令通常在后台运行且没有回显。
20.powershell模块
beacon命令行:powershell [commandlet] [arguments]。
powershell模块通过调用powershell.exe来执行命令。
21.powerpick模块
Beacon命令行:powerpick [commandlet] [arguments]。
powerpick模块可以不通过调用powershell.exe来执行命令。
22.powershell-import模块
Beacon命令行:powershell-import [/path/to/local/script.ps1]。
powershell-import模块可以直接将本地PowerShell脚本加载到目标系统的内存中,然后使用PowerShell执行所加载的脚本中的方法,命令如下,如图所示。
powershell-import /root/Desktop/powerview.ps1
powershell Get-HostIP
powershell-import模块
— 实验室旗下直播培训课程 —