当前位置: 首页 > news >正文

Cobalt Strike 4.8 用户指南-第六节-Payload Artifacts和反病毒规避

Fortra 经常回答有关规避的问题。Cobalt Strike 会绕过反病毒产品吗?它绕过了哪些反病毒产品?多久检查一次?

Cobalt Strike 默认Artifact可能会被大多数端点安全解决方案拦截。尽管规避不是Cobalt Strike产品默认的目标,但Cobalt Strike确实提供了一些灵活性。

作为操作员,你可以更改 Cobalt Strike 在其工作流程中使用的可执行文件、DLLapplet和脚本模板。你还可以以多种格式导出 Cobalt Strike 的Beacon payload,可以与用于规避的第三方工具配合使用。

本章将重点介绍提供这种灵活性的 Cobalt Strike 功能。

# 6.1、Artifact 工件集

Cobalt Strike 使用 Artifact Kit 生成其可执行文件和 DLL。Artifact Kit是 Arsenal Kit 的一部分,Arsenal Kit 包含一系列工具包 ,它是一个源码框架,用于构建可规避某些防病毒产品的可执行文件和 DLL

# 6.1.1、Artifact 工件集理论

传统的反病毒产品使用签名来识别已知的恶意代码。如果我们将已知的恶意 shellcode 嵌入可执行文件,反病毒产品就会识别出 shellcode 并将可执行文件标记为恶意。

为了绕过这种检测,攻击者通常会以某种方式混淆 shellcode 并将其放入二进制文件中。这种混淆过程可以绕过使用简单字符串搜索来识别恶意代码的防病毒产品。

现在许多反病毒产品会进行更严格的检测。通过模拟虚拟沙箱运行可执行文件。在执行每个模拟步骤时,防病毒产品都会检查模拟进程空间中是否存在恶意行为。如果出现已知的不良行为,反病毒产品会将这个可执行文件或 DLL 标记为恶意文件。这项技术击败了许多试图从基于签名的防病毒产品中隐藏恶意代码的编码器和加壳器。

Cobalt Strike 的应对措施很简单。防病毒沙箱有其局限性。它不是一个完整的虚拟机。有些系统行为是防病毒沙箱无法模拟的。 Artifact Kit 是可执行文件和 DLL 模板的集合,这些可执行文件和 DLL 模板依赖于一些反病毒产品不会模拟来还原二进制中的 shellcode 的行为。

其中一项技术[参见:Artifact Kit 中的 src-common/bypass-pipe.c] 生成可执行文件和 DLL,通过命名管道为自身提供 shellcode。如果防病毒沙箱不能模拟命名管道,它将无法发现这个恶意的shellode

# 6.1.2、Artifact Kit 无效的地方

当然,反病毒产品可能击败 Artifact Kit 的特定实现。如果反病毒厂商为你使用的 Artifact Kit 技术编写了签名,那么它创建的可执行文件和 DLL 将被捕获。从Cobalt Strike 2.5 甚至更低版本就已经被反病毒软件盯上了。随着时间的推移,Cobalt Strike 中默认的绕过技术会逐渐失效。你可以使用这些 Artifact 工件集中的某项技术作为基础来构建你自己的Artifact 工件集实现。

但这远远不够。一些反病毒产品会调用反病毒厂商的服务器进行云查杀和检测,来决定该可执行文件或DLL 是否是非恶意的或者是之前从未见过的未知可执行文件或 DLL。其中一些产品会自动向厂商发送未知的可执行文件和 DLL,以供进一步分析并警告用户。有些产品会把未知的可执行文件或DLL 视为恶意的。这取决于反病毒产品及其设置。

要点:在这种情况下,再多的“混淆”也无济于事。你面临着一种不同类型的防御,需要相应地解决它。处理这些情况的方式与处理应用程序白名单的方式相同。尝试找到一个已知的好程序(例如,powershell),利用它把你的payload stager注入到内存中。

# 6.1.3、如何使用Artifact Kit

点击 Cobalt Strike 菜单Help -> Arsenal 以下载 Arsenal 套件(需要Cobalt Strike注册码)。还可以直接访问Arsenal网址:https://www.cobaltstrike.com/scripts

image-20230922103754410

Fortra 将 Arsenal Kit 作为 .tgz 文件分发。使用 tar 命令将其解压。 Arsenal Kit包括 Artifact Kit,它可以与其他套件一起构建或作为独立套件构建。有关构建套件的信息,请参阅 Arsenal Kit README.md 文件。

我们鼓励你修改 Artifact Kit 及其技术,使其满足你的需求。虽然说熟练的 C 程序员可以使用 Artifact Kit 做更多事情,但对于富有冒险精神的非程序员来说,使用 Artifact Kit 也是非常可行的。

# 6.2、Veil 规避框架

Veil 是一个流行的框架,用于生成可以绕过某些防病毒产品的可执行文件。可以使用 Veil 为Cobalt Strikepayload生成可执行文件。

安装说明:https://github.com/Veil-Framework/Veil

步骤:

1、点击Payloads -> Stager Payload Generator

2、选择监听器

3、选择输出类型为Veil

4、点击Generate生成payload并保存文件

image-20230922105030971

5、启动 Veil Evasion Framework 并选择你要使用的技术。

6、Vei 会询问关于 shellcode 的生成选项,选择Custom(自定义)

7、粘贴 Cobalt Strike 刚生成的payload的文件内容。

8、按 Enter 键,你将获得一个新的 Veil 制作的可执行文件

$ ./Veil.py
Veil>: use Evasion //使用Evasion
Veil/Evasion>: use python/shellcode_inject/flat.py //设置payload技术
.....[python/shellcode_inject/flat>>]: generate //开始生成[?] Generate or supply custom shellcode?1 - Ordnance (default)2 - MSFVenom3 - Custom shellcode string4 - File with shellcode (\x41\x42..)5 - Binary file with shellcode[>] Please enter the number of your choice: 3 //选择自定义[>] Please enter custom shellcode (one line, no quotes, \x00.. format): //在此处粘贴payload txt内容[>] Please enter the base name for output files (default is payload): //按回车[?] How would you like to create your payload executable?1 - PyInstaller (default)2 - Py2Exe[>] Please enter the number of your choice: 1 //选择创建payload执行程序的方法==============================================================================[Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework
===============================================================================[*] Language: python[*] Payload Module: python/shellcode_inject/flat[*] Executable written to: /var/lib/veil/output/compiled/payload.exe[*] Source code written to: /var/lib/veil/output/source/payload.py
# 6.3、Java Applet攻击

Fortra 将源代码作为 Applet Kit 分发给 Cobalt Strike 的 Applet Attacks。 Cobalt Strike 武器库中也提供了此功能。通过Help -> Arsenal下载 Applet 工具包。

使用附带的 build.sh 脚本在 Kali Linux 上构建Applet工具包。许多 Cobalt Strike 客户利用这种灵活性,使用他们购买的代码签名证书来签署Cobalt Strike的 Java Applet 攻击。强烈推荐这种做法。

要使 Cobalt Strike 使用你的 Applet 工具包而不是内置工具包,请加载 Applet 工具包中包含的 applet.cna 脚本。

在 Cobalt Strike Arsenal页面上你会注意到Power Applet(Powershell 小程序)。这是 Cobalt Strike的 Java Applet攻击使用 PowerShell 的替代实现,用于将 payload 注入内存。Power Applet展示了你有使用完全不同的方法重建 Cobalt Strike 的标准攻击并把它门用于 Cobalt Strike 的工作流中的灵活性。通过加载小程序集中包含的 applet.cna 脚本,可以使 Cobalt Strike 使用你的小程序集而不是内置的工具包。

# 6.4、Resource Kit资源集

资源集是 Cobalt Strike 改变其在工作流中使用的 HTAPowershellPythonVBA 和 VBA 脚本模板的方法。Resource Kit是 Cobalt Strike arsenal的一部分,通过Help -> Arsenal下载。

资源集的 README.md 记录了所包含的脚本以及使用它们的功能。要规避反病毒产品,请考虑更改这些脚本中的字符串或行为。

要使 Cobalt Strike 使用你的脚本模板而不是内置脚本模板,请加载 dist/arsenal_kit.cna 或dist/resource/resources.cna脚本。有关更多信息,请参阅 Arsenal Kit README.md 文件。

# 6.5、Sleep Mask套件(睡眠掩码套件)

Sleep Mask Kit 是睡眠掩码函数的源代码,执行该函数来在Beacon进入休眠之前,它会对自身和相关内存(例如堆内存)进行掩码操作。用于规避针对.text/.data节的检测,通过Help -> Arsenal下载。其中包括sleep mask套件。

有关sleep mask套件的更多信息,请参阅 arsenal-kit/README.md 和 arsenal-kit/kits/sleepmask/README.md 文件。

# 说明

本文由笔者在Cobalt Strike官方用户指南原文(https://hstechdocs.helpsystems.com/manuals/cobaltstrike/current/userguide/content/topics/welcome_main.htm)基础上编译,如需转载请注明来源。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 3分钟带你了解什么是元数据管理
  • 基于Python的网络编程
  • docker安装配置、docker命令
  • git 更改分支名称
  • 公司网站设计方案
  • 【Linux】进程周边:进程概念
  • 给已有的.so库重新封装一个新的库,并能使用新旧库中的函数
  • Java Socket tcp udp 使用
  • Android 13 aosp 恢复出厂设置流程
  • 【MySQL】Ubuntu22.04安装MySQL8.0.39及修改默认用户名和密码
  • 如何操作可以有效的防止其他人修改Excel文件?
  • 《JavaEE进阶》----6.<SpringMVC实践项目:【简易两整数加法计算器】>
  • 【重学 MySQL】一、数据库概述
  • 深入理解 PyQt5:Python GUI 开发详解
  • GIS十大经典问题之1.缓冲区分析问题
  • __proto__ 和 prototype的关系
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 【面试系列】之二:关于js原型
  • Debian下无root权限使用Python访问Oracle
  • Docker下部署自己的LNMP工作环境
  • Intervention/image 图片处理扩展包的安装和使用
  • Javascript基础之Array数组API
  • JavaScript中的对象个人分享
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • MobX
  • Quartz初级教程
  • uva 10370 Above Average
  • VuePress 静态网站生成
  • webpack入门学习手记(二)
  • 关于for循环的简单归纳
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 探索 JS 中的模块化
  • 提醒我喝水chrome插件开发指南
  • 我与Jetbrains的这些年
  • 深度学习之轻量级神经网络在TWS蓝牙音频处理器上的部署
  • ​软考-高级-信息系统项目管理师教程 第四版【第23章-组织通用管理-思维导图】​
  • ## 1.3.Git命令
  • (1)(1.13) SiK无线电高级配置(五)
  • (HAL库版)freeRTOS移植STMF103
  • (Matalb时序预测)PSO-BP粒子群算法优化BP神经网络的多维时序回归预测
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • .md即markdown文件的基本常用编写语法
  • .NET 4.0中使用内存映射文件实现进程通讯
  • .Net CF下精确的计时器
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .net 使用ajax控件后如何调用前端脚本
  • .NET微信公众号开发-2.0创建自定义菜单
  • .NET之C#编程:懒汉模式的终结,单例模式的正确打开方式