摘要: test
2 GHz +以上的cpu
2 GB RAM
500MB +可用空间
在Amazon的EC2上,至少使用较高核数的CPU(c1.medium,1.7 GB)实例主机。
以下系统支持Cobalt Strike Team Server:
Kali Linux 2018.4 - AMD64
Ubuntu Linux 16.04,18.04 - x86_64
Cobalt Strike客户端在以下系统上运行:
Windows 7及更高版本
MacOS X 10.13及以上版本
Kali Linux 2018.4 - AMD64
Ubuntu Linux 16.04,18.04 - x86_64
要充分利用Cobalt Strike的功能,您必须使用许可证密钥更新许可产品。试用程序中包含执行此操作的更新程序
此程序接受许可证密钥并为您获取最新的Cobalt Strike版本。授权的Cobalt Strike软件包括防病毒的逃避功能,并删除了试用程序中未授许可申明。
1.进入到到Cobalt Strike文件夹
2.双击update.bat
输入以下内容:
cd /path/to/cobaltstrike
./update
1.进入到Cobalt Strike文件夹
2.双击“ Update Cobalt Strike.command”
确保使用许可证密钥更新team server和客户端软件。Cobalt Strike通常根据每个用户获得许可。team server不需要单独的许可证。
Cobalt Strike的更新程序只会询问您的密钥一次。之后,它会记住你的钥匙。如果需要更改密钥,只需删除存储在主目录中的.cobaltstrike.license文件即可。再次运行更新程序,Cobalt Strike将要求您提供新密钥。
Cobalt Strike依赖于Oracle Java 1.8,Oracle Java 11或OpenJDK 11环境。
1.为Linux 设置推荐的Java环境
2.解压cobaltstrike-trial.tgz
1.为MacOS X 设置推荐的Java环境
2.双击cobaltstrike-trial.dmg文件以安装它。
3.将Cobalt Strike文件夹拖到“应用程序”文件夹中。
1.为Windows 设置推荐的Java环境
2.在下载并安装Cobalt Strike之前禁用防病毒软件。
3.使用您喜欢的zip工具将cobaltstrike-trial.zip解压到您首选的安装位置。
Cobalt Strike分为客户端和服务器端。该服务器端被称为团队服务器,是Beacon有效负载的控制器,同时Cobalt Strike也具有社会工程学功能。团队服务器还存储Cobalt Strike收集的数据,并管理日志记录。
Cobalt Strike团队服务器必须以root身份运行在所支持的操作系统上。要启动Cobalt Strike团队服务器,请使用Cobalt Strike Linux软件包附带的teamserver脚本。
./teamserver 服务器IP地址 密码
团队服务器有两个必要参数和两个可选参数。第一个是团队服务器的IP地址。Cobalt Strike使用此值作为其默认的服务器主机。第二个是您的团队成员用于将Cobalt Strike客户端连接到团队服务器的密码。
第三个参数是可选的。此参数指定Malleable C2通信配置文件。
第四个参数也是可选的。此参数指定以YYYY-MM-DD为格式的结束日期。团队服务器会将此结束日期嵌入其生成的每个Beacon中。Beacon有效负载将拒绝在此结束日期或之后运行。如果Beacon有效载荷在此结束日期或之后唤醒,它也将被运行退出。
当团队服务器启动时,它将发布团队服务器SSL证书的SHA256哈希值。您应该将此哈希值分发给您的团队成员。当您的团队成员连接时,Cobalt Strike客户端会在向团队服务器进行身份验证之前询问是否验证此哈希。这是防止中间人攻击的重要保护。
Cobalt Strike客户端连接到团队服务器。要启动Cobalt Strike客户端,请使用软件包中附带的启动程序。不带任何参数。当Cobalt Strike客户端启动时,您将看到一个连接对话框。
Linux下:
Windows下:
在“host”字段中指定团队服务器的ip地址。团队服务器的默认端口是50050.很少有人更改此设置。“user”字段是团队服务器上的用户名称。将此更改为您的名称。“password”字段是团队服务器的密码。点击Connect连接到Cobalt Strike团队服务器。如果这是您与此团队服务器的第一次连接,Cobalt Strike将询问您是否识别此团队服务器的SSL证书的SHA256哈希值。如果需要,请点击OK,Cobalt Strike客户端将连接到服务器。Cobalt Strike还会记住这个SHA256哈希,以便以后方便连接。
您可以通过Cobalt Strike - > Preferences - > Fingerprints管理这些哈
希值。
Cobalt Strike会跟踪您连接的团队服务器并记住您的信息。从连接对话框的左侧选择其中一个团队服务器配置文件,以使用其信息自动填充连接对话框。您也可以通过Cobalt Strike - > Preferences - > Team Servers修改此连接。
要查看受控的应用程序,请进入View -> Applications。这将打开一个Applications选项卡,其中包含一个列表,显示System Profiler受控的所有应用程序信息。
应用程序浏览器有很多信息可用于对目标攻击的方法。以下是如何充分利用此输出的方法:
内部IP地址字段是从没有危险的未知签名Java小程序中收集的。如果此字段显示为unknown,则表示Java applet可能没有被运行。如果您在此处看到IP地址,则表示未签名的Java小程序已被执行。
Internet Explorer将输出用户安装的基本版本信息。随着Internet Explorer获取到更新信息后 , 它的输出的版本信息不会被更改。Cobalt Strike使用JScript.dll 版本号来判断Internet Explorer的补丁等级。进入到support.microsoft.com并搜索JScript.dll的内部版本号(版本字符串中的第三个数字)以将显示其Internet Explorer更新版本信息。
应用程序旁边的A * 64表示它是x64位应用程序。
Attacks-->web Dive-by-->system profiter
Cobalt Strike使用Artifact Kit生成其可执行文件和DLL。Artifact Kit是一款商业框架,用于构建可逃逸某些防病毒产品的可执行文件和DLL的检查。
传统的防病毒产品使用签名来识别已知的恶意信息。如果我们将已知的恶意shellcode嵌入到可执行文件中,则防病毒产品将识别shellcode并将可执行文件标记为恶意软件。
为了逃避这种检测,攻击者以某种方式混淆shellcode并将其嵌套于二进制文件中是很常见的。这种混淆可以逃避那些使用简单字符串搜索来识别恶意代码的反病毒产品。
有许多防病毒产品在进行了病毒库更新后,防病毒产品会模拟虚拟沙箱中可执行文件的来检查。通过每个模拟的运行步骤,防病毒产品会在模拟的进程空间中检查已知的错误。如果出现已知错误,则防病毒产品会将可执行文件或DLL标记为恶意。这种技术使许多编码器和加载器会被AV检查到,而这些编码器和加载器试图隐藏基于签名的防病毒产品中的已知错误。
Cobalt Strike与此相反,防病毒沙箱有局限性。它不是一个完整的虚拟机。防病毒沙箱无法模拟系统行为。Artifact Kit是可执行文件和DLL模板的集合,它依赖于反病毒产品不会模拟的某些行为来恢复位于二进制文件内的shellcode。
其中一种技术[参见:Artifact Kit中的 src-common/bypass-pipe.c]生成可执行文件和DLL,它们通过命名管道为自己提供shellcode。如果防病毒沙箱不能模拟命名管道,它将找不到已知的恶意shellcode。
当然,反病毒产品可能会破坏Artifact Ki的特定功能。如果反病毒软件供应商为您使用的Artifact Kit进行数字签名检查,那么它创建的可执行文件和DLL将被AV检查到。随着时间的推移,这种情况开始发生在Cobalt Strike 2.5及以下的版本中。如果您想从Artifact Kit中发挥最大的作用,那么您将使用其中一种技术作为基础来构建您自己的Artifact Kit套件。
即使这远远还够,因为反病毒厂商首先要确定可执行文件或DLL是否存在已知风险或未知风险或未发现和可执行文件或DLL。其中一些防病毒产品会自动将未知的可执行文件和DLL自动发送给反病毒厂商进行进一步分析并告警用户。并将未知的可执行文件和DLL视为恶意。这取决于反病毒产品及其设置。
注意:在这种情况下,没有任何“混淆”可用。你面对的是另一种检查方式,需要相应地改变。以此和处理应用程序白名单相同的方式来处理这些情况。需要尝试找到一个已知可用程序(例如,powershell),它将使你的有效负载可有效执行。
从授权的Cobalt Strike 进入Help -> Arsena来下载Artifact Kit。
Strategic Cyber LLC将Artifact Kit分发为.tgz文件。使用tar命令将其解压缩。Artifact Kit包含build.sh脚本。在Kali Linux上运行此脚本,使用Minimal GNU for Windows Cross Compiler构建默认的Artifact Kit技术。
Artifact Kit构建脚本为每个Artifact Kit技术创建一个包含模板的文件夹。要使用Cobalt Strike技术,请转到Cobalt Strike - > Script Manager,然后从该文件夹中加载artifact.cna脚本。
我们鼓励您修改Artifact Kit及其代码,以满足您的特定需求。虽然熟练的C程序员可以使用Artifact Kit做更多的事情,但非程序员也可以使用Artifact Kit。例如,一个主要的反病毒产品喜欢在每次发布时都在Cobalt Strike的试用版中为可执行文件写入数字签名。直到Cobalt Strike 2.5后,Cobalt Strike的试用版和许可版在其可执行文件和DLL中使用了命名管道技术。该供应商将为可执行文件使用的命名管道字符串也写一个数字签名。逃避它们的数字签名,可在执行后释放其本身的字符特征,就像在管道技术的源代码中更改管道的名称一样简单。
Cobalt Strike的许可版本需要有效的授权文件才能启动。授权文件是加密的blob,它提供有关Cobalt Strike产品许可的信息。此信息包括:许可证密钥,许可证到期日期以及与许可证密钥绑定的ID号。
内置的更新程序在运行(built-in update program )时从Cobalt Strike的更新服务器请求一个授权文件。即使您的Cobalt Strike版本是最新的,更新程序也会下载新的授权文件。这允许授权文件与Strategic Cyber LLC的记录中的许可日期保持同步。
Cobalt Strike将在其授权文件到期时阻止启动。如果授权文件在Cobalt Strike运行时失效,则不会产生任何影响。许可的Cobalt Strike产品仅在启动时检查授权文件。
当您的Cobalt Strike许可证到期时,您的授权文件将过期。如果续订Cobalt Strike许可证,请运行更新程序在运行(built-in update program )以使用最新信息刷新授权文件。
进入到Help -> System Information以查找授权文件何时到期。查找“ Other”部分下查找“有效”值。请记住,客户端信息和Team Server信息可能具有不同的值(取决于使用的许可证密钥以及上次刷新授权文件的时间)。
当Cobalt Strike的授权文件在其有效期限的30天内发出警告时,它也会发出警告。
授权文件是cobaltstrike.auth。更新程序始终将此文件与cobaltstrike.jar放在一起。在封闭环境中使用Cobalt Strike:
1.下载https://www.cobaltstrike.com/download上的Cobalt Strike试用包
2.从互联网连接系统更新Cobalt Strike试用包
3.将更新的cobaltstrike 文件夹的内容复制到您的环境中。最重要的文件是cobaltstrike.jar和cobaltstrike.auth。
在更新过程中,Cobalt Strike不会给Strategic Cyber LLC“致电”。授权文件由更新过程生成。
Cobalt Strike 3.8及以下版本不检查或要求授权文件。
Cobalt Strike 3.9及更高版本检查与cobaltstrike.jar文件位于同一目录的cobaltstrike.auth文件。从另一个文件夹更新Cobalt Strike并将新的cobaltstrike.auth文件复制到包含旧版Cobalt Strike的文件夹中。授权文件与产品的特定版本无关。
客户ID是与Cobalt Strike许可证密钥关联的4字节数字。Cobalt Strike 3.9及更高版本将此信息嵌入Cobalt Strike生成的payload stagers 和 stages generated中
客户ID值是Cobalt Strike 3.9及更高版本中Cobalt Strike payload stager的最后4个字节。
此屏幕截图是来自试用版的HTTP stager。试用版的客户ID值为0.此stager的最后4个字节(0x0,0x0,0x0,0x0)显示了这一点。
HTTP Payload Stager(Cobalt Strike Trial)
客户ID值也存在于payload stage,但还有更多的恢复步骤。Cobalt Strike不会在其网络流量或工具的其他部分中使用客户ID值。
如果每个team server上都有唯一的授权文件,则每个team server和源自它的 artifacts将具有不同的ID。
每次运行更新程序时,Cobalt Strike的更新服务器都会生成一个新的授权文件。每个授权文件都有一个唯一的ID。Cobalt Strike仅传输team server的ID。它不会从GUI或无客户端的授权文件传播ID
Beacon是Cobalt Strike有效载荷,用来模拟高级的攻击。使用Beacon通过HTTP,HTTPS或DNS来建立通信。您还可以通过控制Windows命名管道上的点对点Beacons来限制哪些主机可以通信。
Beacon非常灵活,支持异步和交互式通信。异步通信延迟低又慢。Beacon会将任务返回给服务器请求,并下载任务,然后进入睡眠状态。交互式通信是实时执行。Beacon的网络指标具有malleable性。重新定义Beacon与Cobalt Strike malleable C2之间的建立。这可以使您将Beacon活动作为其他恶意软件或混淆加密的流量为合法流量。
右键单击Beacon会话并选择 interact(交互)以打开Beacon的控制台。控制台是Beacon会话的主要用户界面。Beacon控制台允许您查看向Beacon发出的任务以及何时下载它们。Beacon控制台也是命令输出和其他信息输出的地方。
Beacon控制台