前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cobalt Strike最实用的24条命令(建议收藏)

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

作者头像
Ms08067安全实验室
发布2023-12-14 12:34:55
2910
发布2023-12-14 12:34:55
举报

Cobalt Strike的基本命令

1.help命令

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

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

help命令

2.sleep命令

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

代码语言:javascript
复制
sleep [time in seconds]

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

sleep命令

Beacon的常用操作命令

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

Beacon命令行:getuid。

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

getuid命令

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

Beacon命令行:getsystem。

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

getsystem命令

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

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

Beacon命令行:getprivs。

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

getprivs命令

4.使用Browser Pivot模块劫持指定的Beacon浏览器

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

Beacon命令行:命令如下。

代码语言:javascript
复制
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命令

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

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执行所加载的脚本中的方法,命令如下,如图所示。

代码语言:javascript
复制
powershell-import /root/Desktop/powerview.ps1
powershell Get-HostIP

powershell-import模块

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-12-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Ms08067安全实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Cobalt Strike的基本命令
相关产品与服务
网站渗透测试
网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档