Cobalt Strike最实用的24条命令(建议收藏)

admin 2023年12月18日09:03:37评论52 views字数 5664阅读18分52秒阅读模式
Cobalt Strike的基本命令

1.help命令

在Cobalt Strike中,help命令没有图形化操作,只有命令行操作。

在Cobalt Strike中,输入“help”命令会将Beacon的命令及相应的用法解释都列出来,输入“help 命令”会将此命令的帮助信息列出来,如图所示。

Cobalt Strike最实用的24条命令(建议收藏)

Cobalt Strike最实用的24条命令(建议收藏)

help命令

2.sleep命令

单击右键,在弹出的快捷菜单中选择“Session”"“Sleep”选项,或者在Beacon命令行环境中执行如下命令,即可调用sleep命令。

sleep [time in seconds]

在默认情况下,Cobalt Strike的回连时间为60秒。为了使Beacon能够快速响应渗透测试人员的操作,可以选中一个会话,单击右键,在弹出的快捷菜单中选择“Interact”选项,与被控制端进行交互。执行“sleep 1”命令,将心跳时间改为1秒,如图所示。也可以在Cobalt Strike的图形化界面中修改回连时间。

Cobalt Strike最实用的24条命令(建议收藏)

sleep命令

Beacon的常用操作命令

1.使用getuid命令获取当前用户权限

Beacon命令行:getuid。

getuid命令用于获取当前Beacon是以哪个用户的身份运行的、是否具有管理员权限等,如图所示。

Cobalt Strike最实用的24条命令(建议收藏)

getuid命令

2.使用getsystem命令获取System权限

Beacon命令行:getsystem

在Cobalt Strike主界面中选择一个Beacon,进入交互模式,然后输入“getsystem”命令,尝试获取System权限,如图所示。

Cobalt Strike最实用的24条命令(建议收藏)

getsystem命令

System权限是Windows操作系统中第二高的权限。即使拥有System权限,也无法修改系统文件。TrustedInstaller权限是Windows操作系统中最高的权限。

3.使用getprivs命令获取当前Beacon的所有权限

Beacon命令行:getprivs。

getprivs命令用于获取当前Beacon包含的所有权限,类似于在命令行环境中执行“whoami /priv”命令。在Cobalt Strike主界面中选择一个Beacon,进入交互模式,输入“getprivs”命令,如图所示。

Cobalt Strike最实用的24条命令(建议收藏)

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权限或者服务的权限(使用这些权限运行此模块,可能无法连接用户屏幕),应尽量以指定用户权限使用此模块。正常运行此模块后的界面,如图所示,默认为只读模式,只能查看用户的桌面。单击界面下方的第二个图标,即可进入操作模式。

Cobalt Strike最实用的24条命令(建议收藏)

使用VNC获取的界面

6.文件管理模块

图形化操作:单击右键,在弹出的快捷菜单中选择“Explore”"“File Browser”选项。

Beacon命令行:cd,切换文件夹;ls,列出目录;download,下载文件;upload,上传文件;execute,执行文件;mv,移动文件;mkdir,创建文件夹;delete,删除文件或者文件夹。

文件管理模块有时会因为权限过高或者过低而无法正常浏览目标的文件。值得注意的是,切换目录、执行文件等动作,本质上都是Beacon在执行命令,所以,会在下一次心跳时才有数据返回。基本操作都可以在图形化界面中完成。

文件管理模块正常运行的结果,如图所示。

如图所示,选中一个可执行文件,单击右键,在弹出的快捷菜单中可以看到“Execute”选项。选择该选项,即可带参数执行,如图所示。

Cobalt Strike从3.10版本开始支持中文。如果运行cobaltstrike.jar的操作系统的语言为英语且未安装中文语言包,将无法正常显示中文。

Cobalt Strike最实用的24条命令(建议收藏)

文件管理

Cobalt Strike最实用的24条命令(建议收藏)

调用快捷菜单

Cobalt Strike最实用的24条命令(建议收藏)

带参数执行

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:显示时间。

Cobalt Strike最实用的24条命令(建议收藏)

Cobalt Strike最实用的24条命令(建议收藏)

net view命令

以上命令的帮助信息,均可通过help命令获取。

8.端口扫描模块

图形化操作:单击右键,在弹出的快捷菜单中选择“Explore”"“Port Scan”选项。

Beacon命令行:portscan [targets] [ports] [arp|icmp|none] [max connections]。

端口扫描界面,如图所示。

Cobalt Strike最实用的24条命令(建议收藏)

端口扫描界面

在端口扫描界面中不能自定义扫描范围,但在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以低权限运行时,某些进程的用户身份将无法显示,如图所示。

Cobalt Strike最实用的24条命令(建议收藏)

以低权限运行Beacon

如图所示,Beacon是以System权限运行的。可以选中目标进程,单击“Kill”按钮来结束进程。直接在Beacon命令行环境中使用“kill [pid]”形式的命令,也可以结束一个进程。

Cobalt Strike最实用的24条命令(建议收藏)

高权限进程

进程列表模块还支持键盘记录、进程注入、截图、令牌伪造等操作。

10.screenshot命令

图形化操作:单击右键,在弹出的快捷菜单中选择“Explore”"“Screenshot”选项。

Beacon命令行:screenshot [pid] <x86|x64> [run time in seconds]。

在Cobalt Strike主界面中选择一个Beacon,进入交互模式,执行“screenshot”命令,获得此刻目标主机当前用户的桌面截图,如图所示。可以选择“View”"“Screenshots”选项查看截图。

Cobalt Strike最实用的24条命令(建议收藏)

screenshot命令

screenshot命令还支持定时截图,如图所示。例如,命令“screenshot 2032 10”表示将screenshot命令注入PID为2032的进程空间,每10秒截图一次,将截图传回团队服务器。

Cobalt Strike最实用的24条命令(建议收藏)

定时截图

应尽量使用指定用户权限进行以上操作。无法使用服务账号或System权限进行以上操作。

11.Log Keystrokes模块

图形化操作:选择“Process List”"“Log KeyStrokes”选项。

Beacon命令行:keylogger [pid] <x86|x64>。

Log Keystrokes模块用于将键盘记录注入进程。当目标主机使用键盘进行输入时,就会捕获输入的内容并传回团队服务器,如图所示。

Cobalt Strike最实用的24条命令(建议收藏)

目标主机使用键盘输入

可以选择“View”"“Log KeyStrokes”选项查看键盘输入记录,如图9-90所示。在Cobalt Strike主界面选中一个Beacon,进入交互模式,输入“keylogger [pid] <x86|x64>”命令,也可以查看键盘输入记录。

Cobalt Strike最实用的24条命令(建议收藏)

查看键盘输入记录

应尽量使用普通用户权限进行以上操作。无法使用服务账号或System权限进行以上操作。

12.inject命令

图形化操作:依次选择“Process List”"“Inject”选项。

Beacon命令行:inject [pid] <x86|x64> [listener]。

将Payload注入目标进程,可以回弹一个Beacon。选择一个进程,单击“Inject”按钮,将弹出监听器选择界面。选择一个监听器,就会返回目标进程PID的Beacon会话。系统进程的PID和Beacon的PID是一样的,仅通过进程列表无法发现异常,如图所示。

Cobalt Strike最实用的24条命令(建议收藏)

系统进程的PID

Cobalt Strike最实用的24条命令(建议收藏)

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]”命令,就可以获取指定进程的令牌了,如图所示。

Cobalt Strike最实用的24条命令(建议收藏)

获取指定进程的令牌

14.Note模块

图形化操作:单击右键,在弹出的快捷菜单中选择“Sessions”"“Note”选项。

Beacon命令行:note [text]。

使用Note模块可以给目标设置标记,如图所示。单击“确定”按钮后,标记就会在会话列表中显示出来,如图所示。

Cobalt Strike最实用的24条命令(建议收藏)

给指定的Beacon设置标记

Cobalt Strike最实用的24条命令(建议收藏)

显示标记

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,如图所示。

Cobalt Strike最实用的24条命令(建议收藏)

shell命令

18.run命令

Beacon命令行:run [program] [arguments]。

run命令不调用cmd.exe,而是直接调用“能找到的程序”。例如,“run cmd ipconfig”在本质上和“shell ipconfig”一样,但使用“run ipconfig”,就相当于直接调用系统system32文件夹下的ipconfig.exe,如图所示。

Cobalt Strike最实用的24条命令(建议收藏)

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.ps1powershell Get-HostIP

Cobalt Strike最实用的24条命令(建议收藏)

powershell-import模块

原文始发于微信公众号(Ms08067安全实验室):Cobalt Strike最实用的24条命令(建议收藏)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月18日09:03:37
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Cobalt Strike最实用的24条命令(建议收藏)http://cn-sec.com/archives/2291410.html

发表评论

匿名网友 填写信息