仅供学习使用,请勿用于非法用途,后果自负!

  • CobalStrike简介
  • CobalStrike目录结构
  • Cobalstrike基本使用
    • CS安装
    • CS启动
    • CS页面介绍
    • cobalstrike菜单
    • view菜单
    • attack菜单
    • Beacon右键菜单
    • Beacon分类
    • Beacon工作原理
      • Beacon Http/https
      • Beacon Dns
      • Beacon SMB
      • Beacon TCP
    • 生成木马上线
      • Beacon使用
    • Beacon命令

CobalStrike简介

Cobalt Strike(简称为CS)是一款团队作战渗透测试神器,是一种可以用来进行横向移动、数据窃取、鱼叉式钓鱼的后渗透工具,分为客户端和服务端,一个客户端可以连接多个服务端,一个服务端也可以对应多个客户端连接。

CobalStrike目录结构

agscript:拓展应用的脚本
c2lint:检查c2配置文件的语法和预览
cobalstrike:客户端启动程序
cobalstrike_cn.vbs :汉化插件
cobalstrike.jar :cobalstrike程序主体
logs:日志记录目录
peclone:用于解析dll的结果
teamserver:服务端启动程序
teamserver.prop :自定义用于验证屏幕截图和keylog回调数据的设置,cs4.4引入。
winvnc.x64.dll vnc服务端dll x64位
winvnc.x86.dll vnc服务端dll x86位
update.jar 更新程序

cobaltstrike.store
此证书用来加密 Cobalt Strike 和客户端通信,带有默认 hash 而且比较敏感,建议自己生成一个:

 keytool -list -v -keystore cobaltstrike.store

Cobalstrike基本使用

CS安装

运行环境配置

  1. Linux安装JDK
apt search java | grep jdk
apt install openjdk-11-jdk
  1. windows安装JDK
下载JDK:
https://www.oracle.com/java/technologies/downloads/#java8-
windows
Oracle公共账号密码:http://bugmenot.com/view/oracle.com
  1. 环境变量配置(windows)
Java_Home => C:\Program files\jdk1.8.0_216
CLASSPATH => .;JAVA_HOME%\lib;%JAVA_HOME\lib\tools.jar
PATH => %JAVA_HOME%\bin;%JAVA_HOME\jre\bin

注:若所使用的vps有多个版本的JDK需要切换到jdk11:

update-alternatives --config java

CS启动

启动服务端

chmod +x teamserver
./teamserver [server_ipaddress] [password]

启动客户端

./cobaltstrike


Alias:别名,用户名@服务端IP地址
Host :服务端IP地址,可为域名
Port:服务端口号,默认50050,可进行修改
User:用户名,可随意填写,只要不冲突即可
Password: 登录密码,启动服务端时设置的密码

CS页面介绍

  1. Connect to team server:连接服务端
  2. Disonnect from team server:断开当前服务端连接
  3. Configure Listeners:配置监听器
  4. Show sessions in graph view:展示会话列表
  5. Show sessions in table view:展示视图列表
  6. Show targets in table view:展示目标列表
  7. Credentials:查看从靶机获取的账户密码
  8. Downloaded Files:查看从靶机下载的文件
  9. Keystrokes:查看键盘记录
  10. Screenshots:查看屏幕截图
  11. Generate Windows Executable (Stageless):生成无状态的EXE木马
  12. Setup java Signed Applet Attack:开启Web服务为自签名Java Applet提供运行
    环境
  13. MS Office Macro Attack:生成OFFICE宏病毒文件
  14. Setup Scripted Web-Delivery (Stageless):开启Web服务,供下载和执行
    Payload
  15. Host a file:开启Web服务,供下载文件
  16. Manage Web Server:管理Web服务
  17. Help:帮助文档
  18. About:关于Cobalt Strike

cobalstrike菜单

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

view菜单

  1. Applications:显示受害主机的应用信息,浏览器版本信息
  2. Credentials:显示所有已获取的受害主机的凭证,如使用hashdump、
    Mimikatz获取到的密码凭证信息
  3. Downloads:查看已下载文件
  4. Event Log:主机上线记录以及团队协作聊天记录
  5. Keystrokes:查看键盘记录结果
  6. Proxy Pivots:查看代理模块
  7. Screenshots:查看所有屏幕截图
  8. Script Console:脚本控制台,加载第三方脚本以增强功能
  9. Targets:显示所有受害主机
  10. Web Log :所有访问Web服务的日志记录

attack菜单

1. packages
HTML Application:生成(executable/VBA/powershell)这三种原理实现的恶意HTA木马文件
MS Office Macro:生成office宏病毒文件
Payload Generator:生成各种语言版本的payload
USB/CD AutoPlay:生成利用自动播放运行的木马文件
Windows Dropper:捆绑器能够对任意的正常文件进行捆绑(免杀效果差)
Windows Executable:生成可执行exe木马
Windows Executable(Stageless):生成无状态的可执行exe木马

2. Web Drive-by
Manage:对开启的web服务进行管理
Clone Site:克隆网站,可以记录受害者提交的数据
Host File:提供一个文件下载,可以修改Mime信息
Scripted Web Delivery:为payload提供web服务以便下载和执行 类似于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 :用来邮件钓鱼的模块,鱼叉钓鱼攻击

3. Spear Phish
HTML Application

生成一个网页Payload 。三种执行模式:EXE执行、PowerShell、VBA

Executable:是以十六进制的方式内嵌一个EXE到HTA里,运行时会把exe释放到磁盘然后创建进程运行

Powershell:HTA调用powershell.exe执行payload

VBA:通过调用COM组件来执行payload(请确保目标机有Excel.Application组件否则会运行失败,注:组件源自Office)

MS Office Macro

Attacks -> Packages -> MS Office Macro -> Copy

将代码放到Word宏里面,另存为启用宏的Word文档( *.docm ),受害者点击启用内容,即可上线。

Payload Generator
生成各类语言的 ShellCode

C
C#
COM Scriptlet
Java
Perl
Powershell
Powershell Command
Python
Raw
Ruby
Veil
VBA

Windows Executable
生成可执行文件

Windows EXE
Windows Service EXE
Windows DLL

Windows Executable(s)
生成可执行文件还有powershell以及动态链接库

PowerShell
Raw
Windows EXE
Windows Service EXE
Windows DLL

Beacon右键菜单

Interact:打开Beacon
Access

  1. Dump Hashes # 获取hash
  2. Elevate # 提权
  3. Golden Ticket # 生成黄金票据注入当前会话
  4. Make token # 凭证转换
  5. Run Mimikatz # 运行 Mimikatz
  6. Spawn As # 用其他用户生成Cobalt Strike侦听器
    Explore
  7. Browser Pivot # 劫持目标浏览器进程
  8. Desktop(VNC) # 桌面交互
  9. File Browser # 文件浏览器
  10. Net View # 命令Net View
  11. Port Scan # 端口扫描
  12. Process List # 进程列表
  13. Screenshot # 截图
    Pivoting
  14. SOCKS Server # 代理服务
  15. Listener # 反向端口转发
  16. Deploy VPN # 部署VPN

Spawn:外部监听器(如指派给MSF,获取meterpreter权限)

Session

  1. Note # 备注
  2. Remove # 删除
  3. Sleep # 指定被控端休眠时间,默认60秒一次回传
  4. Exit # 退出

Beacon分类

根据内置 Listener 的分类可以将Beacon进行分类, Listener 是用来接收 Beacon请求信息的 Cobalt Strike 模块。

1.内部beacon

Beacon DNS
Beacon HTTP
Beacon HTTPS
Beacon SMB
Beacon TCP

2.外部beacon
与其他工具联合使用时才会使用到,一般用来派生会话到MSF。

Foreign HTTP
Foreign HTTPS

Beacon工作原理

Beacon Http/https

以HTTP或HTTPS协议建立Beacon连接
  1. HTTP Beacon payload连接到C2控制器,它会发起一个GET请求,获取来自C2控制器的执行操作任务
  2. 如果C2控制器有要执行的任务,那么它会响应一组包含payload执行的所有任务的加密数据
  3. 否则HTTP Beacon payload会返回到睡眠状态,我们可以在payload配置中设置时间周期。
  4. 当Payload执行任务后产生输出时,HTTP Beacon payload会通过一个包含加密数据的POST请求发送给C2,这个POST请求中包含任务运行后的输出。如果没有输出,那么就没有这个POST请求。

通常创建一个简单的监听器,只需要配置以下选项即可:
Name:监听器名字
Payload:选择Beacon类型
HTTP Hosts:配置HTTP Beacon回连主机地址
HTTP Host (Stager):配置分阶段payload,Stager的请求地址,仅当Payload明确需要Stager配合时有效
HTTP Port (C2):配置HTTP Beacon回连的监听端口
Host Rotation Strategy:CS4.3新增,在 beacon 通信时,可以选择更多的轮询方案以逃避检测、阻断, beacon 回连主机策略
Profile: Malleable C2 配置文件,用于自定义通信流量特征
HTTP Port (Bind):绑定监听端口,实现端口重定向
HTTP Host Header:设置内层真实域名,在使用域前置技术时使用
HTTP Proxy:为Payload指定代理

Beacon Dns

以DNS协议流量建立Beacon连接


DNS Hosts:Beacon回连的主机,可以添加多个
Host Rotation Strategy:Beacon回连主机策略
HTTP Host (Stager):配置Stager主机,仅当Payload明确需要Stager配合时有效
Profile:Malleable C2配置文件,用于自定义通信流量特征
DNS Port (Bind):绑定监听端口,实现端口重定向
DNS Resolver:指定NS服务器

Beacon SMB

以SMB协议流量建立Beacon连接,适用于内网横向
windows/beacon_smb/bind_pipe

简介
SMB Beacon 使用命名管道通过父级 Beacon 进行通讯,当两个Beacons链接后,子Beacon 从父 Beacon 获取到任务并发送。因为链接的Beacon 使用 Windows 命名管道进行通信,此流量封装在 SMB 协议中,所以 SMB Beacon 相对隐蔽,绕防火墙时可能发挥奇效。

前提条件

  1. 具有 SMB Beacon 的主机必须接受 445 端口上的连接。
  2. 只能链接由同一个 CobaltStrike 实例管理的 Beacon 。
  3. 利用这种 Beacon 横移必须有目标主机的管理员权限或者说是拥有具有管理员权限的凭据。

Beacon TCP

仅与父 Beacon 通信,适用于内网横向移动
windows/beacon_tcp/bind_tcp

命令格式同 smb 相似,不过此处连接目标IP的命令不是 link ,而是 connect 。取消连接目标机器的话对应的命令与 smb 同为 unlink。

生成木马上线

  1. 生成 Windows 可执行程序木马文件
    点击攻击选项,选择生成木马,选择windows无阶段木马选择我们配置好的监听器
    点击生成即可
  2. 上传木马到目标机器
    通过Webshell上传执行
    通过引诱目标下载,钓鱼
  3. 执行上线
    执行木马文件,等待Beacon回连CS

Beacon使用

在目标上线CS后,右键目标 interact 使用 Beacon

在 Cobalt Strike 中它的心跳默认是60s(即sleep时间为60s,每一分钟目标主机Beacon 与 teamserver 通信一次)

如果sleep时间过长,在下载文件时花费时间明显过长,所以在测试时会把时间降低一点 。

一般拿到 Beacon 后先执行 sleep 修改到合适的睡眠时间,根据实战环境来调节,建议不要太快,不然流量会很明显。

Beacon 中不能直接输入 cmd 命令,比如要让目标机执行 ipconfig 这条cmd命令,对应的beacon命令是 shell ipconfig

其他的beacon命令,可以在beacon中输入help

Beacon命令

   argue                     匹配过程的欺骗参数blockdlls                 阻止子进程中的非Microsoft DLLbrowserpivot             设置浏览器 pivot 会话cancel                   取消正在进行的下载cd                       变更目录checkin                   Call home and post dataclear                     清除 beacon 队列connect                   通过TCP连接到Beacon peercovertvpn                 部署Covert VPN客户端cp                       复制文件dcsync                   从DC提取密码哈希desktop                   查看目标桌面并与之交互dllinject                 将反射DLL注入到进程中dllload                   使用LoadLibrary()将DLL加载到进程中download                 下载文件downloads                 列出正在进行的文件下载drives                   列出目标上的驱动器elevate                   在提升权限的环境中生成会话execute                   在目标上执行程序(无输出)execute-assembly         在目标内存中执行本地 .NET 程序exit                     终止beacon会话getprivs                 在当前令牌上启用系统特权getsystem                 尝试获得SYSTEMgetuid                   获取用户IDhashdump                 转储密码哈希help                     帮助菜单inject                   在特定进程中产生会话inline-execute           在此会话中运行Beacon Object Filejobkill                   杀死长期运行的后渗透任务jobs                     列出长期运行的后渗透任务jump                     在远程主机上生成会话kerberos_ccache_use       将缓存中的kerberos tickets应用于此会话kerberos_ticket_purge     清除本次会议中的kerberos ticketskerberos_ticket_use       将kerberos tickets应用于此会话keylogger                 将键盘记录器注入进程kill                     杀死进程link                     通过命名管道连接到Beacon peerlogonpasswords           使用mimikatz转储凭证和哈希ls                       列出文件make_token               创建令牌以传递凭据mimikatz                 运行mimikatz命令mkdir                     创建目录mode dns                 将DNS A记录用作数据通道(仅DNS beacon)mode dns-txt             将DNS TXT记录用作数据通道(仅DNS beacon)mode dns6                 将DNS AAAA记录用作数据通道(仅DNS beacon)mv                       移动文件net                       网络和主机枚举工具note                     给beacon分配一个注释portscan                 扫描网络以查找开放服务powerpick                 通过 Unmanaged PowerShell执行命令powershell               通过powershell.exe执行命令powershell-import         导入Powershell脚本ppid                     为产生的post-ex jobs设置父IDps                       显示进程列表psinject                 在特定进程中执行powershell命令pth                       使用Mimikatz进行哈希传递pwd                       打印当前目录reg                       查询注册表remote-exec               在远程主机上运行命令rev2self                 恢复为原始令牌rm                       删除文件或文件夹rportfwd                 设置反向端口转发run                       在目标上执行程序(返回输出)runas                     以其他用户身份执行程序runasadmin               在提升权限的环境中执行程序runu                     在另一个PID下执行程序screenshot               截屏setenv                   设置环境变量shell                     通过cmd.exe执行命令shinject                 将Shellcode注入进程shspawn                   生成进程并将shellcode注入其中sleep                     设置beacon睡眠时间socks                     启动SOCKS4a服务器以中继流量socks stop               停止SOCKS4a服务器spawn                     产生一个会话spawnas                   以其他用户身份发起会话spawnto                   设置可执行文件以将进程生成为spawnu                   在另一个进程下产生会话ssh                       使用SSH在主机上生成一个SSH会话ssh-key                   使用SSH在主机上生成一个SSH会话steal_token               从进程中窃取访问令牌timestomp                 将时间戳从一个文件应用到另一个文件unlink                   与父Beacon断开连接upload                   上传文件

CobalStrike(CS)基础超级详细版相关推荐

  1. Metasploit(MSF)基础超级详细版

    MSF基础学习看这一篇就够了 Metasploit 常见名词解释 MSF简介 MSF框架结构 MSF配置数据库 内网主机发现 MSF命令查询 常用命令 数据库管理命令 核心命令 模块命令 进程命令 资 ...

  2. 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)

    手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版) SSM(Spring+SpringMVC+Mybatis),目前较为主流的企业级架构方案.标准的MVC设计模式, ...

  3. supervisord部署使用超级详细版

    supervisord部署使用超级详细版 一. 安装 pip 命令(安装python 环境) 因为 supervisord本身是基于Python开发的,所以在使用时需要先安装Python 的运行环境 ...

  4. 黑客入门(超级详细版)

    据我了解,"黑客"大体上应该分为"正"."邪"两类,正派黑客依靠自己掌握的知识帮助系统管理员找出系统中的漏洞并加以完善,而邪派黑客则是通过各 ...

  5. Redis五种数据类型应用场景详解(超级详细版)

    目录 NoSQL:一类新出现的数据库(not only sql) 特征 NoSQL和SQL数据库的比较: 电商场景解决方案 Redis简介 Redis特性 Redis 优势 Redis应用场景 官方文 ...

  6. 详解手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)

    转载(https://www.jb51.net/article/130560.htm) SSM(Spring+SpringMVC+Mybatis),目前较为主流的企业级架构方案.标准的MVC设计模式, ...

  7. hexo+github搭建博客(超级详细版,精细入微)

    转载此文章前,请先联系作者,经作者同意后再转载,并请注明原文链接和作者,整理这些不容易,最终版权归作者所有,谢谢合作!移步我的个人博客:https://yafine-blog.cn,阅读体验更佳 前言 ...

  8. awk基础教程详细版

    awk 用法:awk ' pattern {action} ' 变量名    含义  ARGC   命令行变元个数  ARGV   命令行变元数组  FILENAME   当前输入文件名  FNR   ...

  9. android基础 [超级详细android Activity组件解析(Activity综述,Activity生命周期,Activity启动--携带参数启动)]

    1 章节目录 2 Android Activity综述 2.1 Activity怎么用 2.2 layout - 界面布局 2.3 Java - 控制界面 2.4 AndroidManifest.xm ...

最新文章

  1. 零基础入门学习Python(1)
  2. 汇编语言--CMOS RAM芯片
  3. stm32f10x_it.c 定义的程序列表模板(stm32f103x_it.c中放的是中断的空函数)
  4. linux中select()函数分析
  5. 1352. 虫洞【难度: 中 / 枚举 判环】
  6. wordpress忘记登录密码,更改域名的办法。
  7. 吐嘈OpenCV的图像旋转功能 _7
  8. 逐步创建ASP.NET Core 2.2应用程序
  9. Linux操作系统PS命令详细解析
  10. Android 如何自定义EditText 下划线?
  11. 暴风影音 去广告 方法
  12. PCB画板与硬件调试+AD快捷键小技巧
  13. Python:火山小视频-无水印视频-多线程-批量采集实现和完整代码
  14. 主线程启动多个子线程,子线程彼此之间并发执行,互不影响
  15. python迭代器是什么_python中什么是迭代器
  16. 【Python】python基础编程回顾(4)
  17. 【直播预告】流行度偏差如何利用?探索解耦域适应无偏召回模型
  18. 【STM32】标准库-以太网外设-LAN8720A-LWIP-无操作系统
  19. 2021年第一天的祝福送给大家
  20. js 中的循环(全)

热门文章

  1. librosa提取音乐音频频谱特征并可视化
  2. R语言 数据清洗(缺失值处理、异常值处理)
  3. 编译原理——语法分析程序的设计
  4. Here Document
  5. 工业控制应用程序二进制的秘密
  6. 美通企业日报 | GSK辉瑞完成消费保健品业务合并;温德姆未来三年中国开500家酒店...
  7. 在广州闯荡的经历,不断去追求自己的梦想!
  8. qt linux 多语言,Qt跨平台(window、linux)实现多语言
  9. 校园社交网站(PC端)
  10. c++语言基础:delete和delete[]