这是[信安成长计划]的第 15 篇文章

0x00 目录

0x01 BOF功能分析

0x02 BOF功能执行

0x03 写在最后

其实在看过 RDI 与 DotNet 功能执行之后,BOF 的执行基本就不用再说了,唯一需要提及的可能就是它所包含的技术,而且相关的文章和代码也都很丰富了

0x01 BOF功能分析

在 CS 中,有相当一部分功能都是 BOF 形式的,我们随意选择一个

它继承了 PostExInlineObject 类,需要自己实现的并不多,但实际上,一些函数还是自己实现的好

在实际调用的时候,会先获取到 beacon 的 payload 和架构,然后一起传入后,调用了 go

在 go 函数里,首先会获取到需要执行的 bof 文件,然后对其进行解析

在其中他会获取执行函数,默认执行的函数是 go

这里就可以自己实现这个函数,让名字按照自己的想法来走

之后会对一些关键的位置进行解析,OBJ 实际上就是编译后但未链接的目标文件,这里就是把一些关键的节都取出来

然后接着就进行了任务的构建和发送,在构建的时候就将关键的信息都做成了一段数据,并不是将整个 OBJ 文件直接发送过去

最后一个放入的是参数,在我们当前这个 BOF 功能中,参数就是 beacon 的 payload,用于 BypassUAC 之后直接上线的

再结合之前的 DotNet 的操作,可以发现,参数是非常重要的,也是非常便于扩展的,我们可以定制自己想要的方式,然后将其他的内容通过参数传递过去,只需要在接受的时候进行处理就好了,后期的扩展性是很好的

0x02 BOF功能执行

这里就不跟了,任务号是 100,感兴趣的可以去看看

其中所使用的技术,有很多文章和开源代码了,直接参照这些会更舒服一点

直接来看 COFFLoader 就可以了

https://www.trustedsec.com/blog/coffloader-building-your-own-in-memory-loader-or-how-to-run-bofs/

https://github.com/trustedsec/COFFLoader

WBGlIl 的文章也是非常好的参考

https://wbglil.gitbook.io/cobalt-strike/cobalt-strike-yuan-li-jie-shao/untitled-3

0x03 写在最后

虽然这三种执行方式的细节点都直接略过了,实际上它们中间能够进行的修改操作还是可以有很多的,有一些细节是可以再优化一下了,不过整体来说,CS 是真的强,整体的代码规划和设计非常的完善,要在上面新增一些功能或者做一些改动都是非常方便的。

CobaltStrike逆向学习系列(15):CS功能分析-BOF的更多相关文章

  1. CobaltStrike逆向学习系列(14):CS功能分析-DotNet

    这是[信安成长计划]的第 14 篇文章 0x00 目录 0x01 DotNet功能分析 0x02 DotNet功能执行 0x03 写在最后 在上两篇文章中,讲述了 CS 中的一种功能执行方式 RDI, ...

  2. CobaltStrike逆向学习系列(1):CS 登陆通信流程分析

    这是[信安成长计划]的第 1 篇文章 关注微信公众号[信安成长计划][SecSource] 0x00 目录 0x01 密码校验 0x02 aggressor.authenticate 0x03 agg ...

  3. CobaltStrike逆向学习系列(11):自实现 Beacon 检测工具

    这是[信安成长计划]的第 11 篇文章 关注微信公众号[信安成长计划] 0x00 目录 0x01 检测原理 0x02 检测方案 0x03 存在的问题 0x04 解决方案 0x05 示例代码 0x06 ...

  4. CobaltStrike逆向学习系列(10):TeamServer 启动流程分析

    这是[信安成长计划]的第 10 篇文章 关注微信公众号[信安成长计划] 0x00 目录 0x01 基本校验与解析 0x02 初始化 0x03 启动 Listeners 在之前的分析中,都是针对 Cob ...

  5. CobaltStrike逆向学习系列(2):Stageless Beacon 生成流程分析

    这是[信安成长计划]的第 2 篇文章 关注微信公众号 [信安成长计划] 0x00 目录 0x01 Patch Beacon 0x02 Patch Loader 0x03 文件对比 0x04 流程图 C ...

  6. CobaltStrike逆向学习系列(12):RDI 任务发布流程分析

    这是[信安成长计划]的第 12 篇文章 0x00 目录 0x01 任务构建 0x02 结果处理 0x03 功能 DLL 分析 之前的分析都是针对整个 CS 的框架来进行的,但是功能也是整个 C2 中相 ...

  7. CobaltStrike逆向学习系列(7):Controller 任务发布流程分析

    这是[信安成长计划]的第 7 篇文章 关注微信公众号[信安成长计划] 0x00 目录 0x01 Controller->TeamServer 0x02 TeamServer->Beacon ...

  8. CobaltStrike逆向学习系列(6):Beacon sleep_mask 分析

    这是[信安成长计划]的第 6 篇文章 关注微信公众号[信安成长计划] 0x00 目录 0x01 C2Profile 分析 0x02 set userwx "true" 0x03 s ...

  9. CobaltStrike逆向学习系列(3):Beacon C2Profile 解析

    这是[信安成长计划]的第 3 篇文章 关注微信公众号[信安成长计划] 0x00 目录 0x01 Controller 端分析 0x02 Beacon 端分析 0x03 展示图 在上一篇文章中完成了 S ...

随机推荐

  1. “伏魔”赏金 | WebShell检测之「模拟污点引擎」首次公测,邀你来战!

    安全是一个动态的过程,攻防对抗如同在赛博世界里降妖伏魔,其要义是:取彼之长,补己之短.--伏魔引擎的诞生 伏魔引擎挑战赛 注册时间: 2022.01.10 00:00:00 - 2022.01.24 ...

  2. 【刷题-LeetCode】151 Reverse Words in a String

    Reverse Words in a String Given an input string, reverse the string word by word. Example 1: Input: ...

  3. 【解决了一个小问题】golang中引用一个路径较长的库,导致goland中出现"module contains a go.mod file, so major version must be compatible: should be v0 or v1, not v2"

    在项目中的go.mod文件中有这样一句: require ( github.com/xxx-devops/xx1/sdk/go v2.2.3 ) 项目的编译没有问题,但是goland中出现如下提示: ...

  4. nao机器人使用手册

    简单使用和保养 开关机和马达 开机是按一下,后来按一下相当于重启了一次程序,3是播报IP地址,5秒是关机,8秒是强制关机. 电池 3月左右不用需要取下电池.夏天5-8小时,冬天8-10小时充电.活动时 ...

  5. 【webpack4.0】---base.config.js基本配置(五)

    一.创建项目初始化 1.初始化项目npm init -y 2.创建 src (用来存放开发环境的代码)文件夹.  config (用来存放webpack的配置项)文件夹 3.安装webpack  We ...

  6. 如何使用c#编写单片机程序

    ​ 因为个人喜爱想研究单片机,但是不太会c,然后再找资料研究有没有其他的方法发现国外的c# nanoframework 框架可以编写单片机程序,本文我将会用自己踩过的坑来总结一些c#编写单片机的一些经 ...

  7. maven常用打包命令

    常用maven命令 执行与构建过程(编译,测试,打包)相关的命令必须进入pom.xml所在位置执行 mvn clean:清理(打包好的程序放在生成的名为target的文件中,清理即删除文件中打包好的程 ...

  8. pytorch运行错误:ValueError: too many dimensions 'str'

    问题: 本人在使用BERT进行微调的时候,在读取数据的时候出现了一个错误:ValueError: too many dimensions 'str'    于是我Debug了以后,发现问题出现在这个部 ...

  9. vite搭建vue项目-集成别名@、router、vuex、scss就是这样简单

    为什么要使用vite 当我们开始构建越来越大型的应用时, 需要处理的 JavaScript 代码量也呈指数级增长. 包含数千个模块的大型项目相当普遍. 这个时候我们会遇见性能瓶颈 使用 JavaScr ...

  10. CKKS Part3: CKKS的加密和解密

    本篇文章翻译于CKKS EXPLAINED, PART 3: ENCRYPTION AND DECRYPTION,主要介绍CKKS方案的加密和解密. 介绍 在上一篇 CKKS Part2: CKKS的 ...