CobaltStrike逆向学习系列(12):RDI 任务发布流程分析
这是[信安成长计划]的第 12 篇文章
0x00 目录
0x01 任务构建
0x02 结果处理
0x03 功能 DLL 分析
之前的分析都是针对整个 CS 的框架来进行的,但是功能也是整个 C2 中相当重要的部分,接下来几篇文章会对基本的功能类型的流程进行分析
0x01 任务构建
CS 自带的 RDI 类型的功能也有好多,但所有的构建等也都是大同小异了,这里以 HashDump 来进行分析,HashDump 有两种触发方式,一种是在界面上直接点击,一种是通过命令

这两种方式在执行前都会去判断当前用户的权限是否是管理员,如果是才会去执行,而这两种不同的触发方式所使用的检测权限也是在不同位置的
如果是在界面上点击的话,它会在 cna 脚本中直接进行判断

如果通过命令的话,它会在 BeaconConsole 处理的时候直接来判断

而判断方法就是直接判断用户名是否带星号,因为在初始化 BeaconEntry 的时候就已经进行了设置,如果是管理员的话,会直接在名字尾部追加星号

但是无论他们走哪个流程来处理,最终都会通过 TaskBeacon 来进行任务的构建

判断架构也是 BeaconEntry 就已经处理好的

然后先来看一下 HashdumpJob 的内容,可以看到它继承自 Job,而且里面也没有上面所要调用的 spawn,所以这也一定是继承过来的

在 Job 中明显能够看出来有六个函数需要自己来实现
其中最关键的就是 getDLLName、getPipeName、getCallbackType,至于其他设置描述等对于实际的执行也没有那么大的影响

getDLLName 是用来获取所需要调用的 DLL 的,getPipeName 是用来通过制定管道将信息回传给 Beacon 的,这里是特殊字符的占位符,用来后面做 Patch 时候来寻找对应位置的,getCallbackType 是用来决定信息回传到 TeamServer 以后用什么样的格式来回传给 Controller 的

理解了上面的内容以后就可以继续跟入了

首先会通过刚才获取到的名字,将对应的 DLL 读取出来

接着根据架构来 Patch 对应的引导头,并开始构建任务,设置对应的任务号

接着就需要对管道进行处理

它会根据 C2Profile 中设计的命名格式来生成对应的管道名,并在最后将值 Patch 到 DLL 当中

因为 HashDump 功能并不需要进行修复、线程修复、混淆等操作,所以这几步内容都是不需要的

我们也没有设置 SmartInject,这里也忽略掉,然后就构建好了一个任务

当前这个任务的内容就是任务号(4个字节)+ DLLSize(4个字节)+ DLL

紧接着又构建了一个任务,包括了 JobType、CallbackType、WaitTime、PipeName 以及描述等信息,这里的 JobType 之前的任务对应一下,这里很明显就是任务号

最后将两个任务都进行了发送

这里它实际上是调用了两次任务发布,而且这里也很明显能看到之前设置的 Description 是用来在控制台展示的

0x02 结果处理
在结果解密之后,他会先读取 CallbackType

这里也很明显就与之前的设置对应上了

然后会对结果进行处理,对格式进行处理,将凭证添加到 credentials 中,并在最后直接更新上去

这样也就完成了整个流程
0x03 功能 DLL 分析
在 DLL 中可以很容易的看到 Java 在处理时候所设置的这一串值

然后会直接用这片内存的值来连接管道

所以情况也就很明了了,在程序中提前写好固定的值,在 Java 处理的时候,将处理后的值直接替换到这片位置上,用于后续结果通过管道来进行回传
CobaltStrike逆向学习系列(12):RDI 任务发布流程分析的更多相关文章
- CobaltStrike逆向学习系列(10):TeamServer 启动流程分析
这是[信安成长计划]的第 10 篇文章 关注微信公众号[信安成长计划] 0x00 目录 0x01 基本校验与解析 0x02 初始化 0x03 启动 Listeners 在之前的分析中,都是针对 Cob ...
- CobaltStrike逆向学习系列(4):Beacon 上线协议分析
这是[信安成长计划]的第 4 篇文章 关注微信公众号[信安成长计划] 0x00 目录 0x01 Beacon 发送 0x02 TeamServer 处理 0x03 流程图 0x04 参考文章 在上一篇 ...
- CobaltStrike逆向学习系列(1):CS 登陆通信流程分析
这是[信安成长计划]的第 1 篇文章 关注微信公众号[信安成长计划][SecSource] 0x00 目录 0x01 密码校验 0x02 aggressor.authenticate 0x03 agg ...
- CobaltStrike逆向学习系列(13):RDI 任务执行流程分析
这是[信安成长计划]的第 13 篇文章 0x00 目录 0x01 任务号 0x02 功能执行 0x03 结果接收 在上一篇文章中已经讲明了 RDI 类型的任务在发布时候的流程,接下来就是执行了,文中不 ...
- CobaltStrike逆向学习系列(7):Controller 任务发布流程分析
这是[信安成长计划]的第 7 篇文章 关注微信公众号[信安成长计划] 0x00 目录 0x01 Controller->TeamServer 0x02 TeamServer->Beacon ...
- CobaltStrike逆向学习系列(15):CS功能分析-BOF
这是[信安成长计划]的第 15 篇文章 0x00 目录 0x01 BOF功能分析 0x02 BOF功能执行 0x03 写在最后 其实在看过 RDI 与 DotNet 功能执行之后,BOF 的执行基本就 ...
- CobaltStrike逆向学习系列(14):CS功能分析-DotNet
这是[信安成长计划]的第 14 篇文章 0x00 目录 0x01 DotNet功能分析 0x02 DotNet功能执行 0x03 写在最后 在上两篇文章中,讲述了 CS 中的一种功能执行方式 RDI, ...
- CobaltStrike逆向学习系列(2):Stageless Beacon 生成流程分析
这是[信安成长计划]的第 2 篇文章 关注微信公众号 [信安成长计划] 0x00 目录 0x01 Patch Beacon 0x02 Patch Loader 0x03 文件对比 0x04 流程图 C ...
- CobaltStrike逆向学习系列(11):自实现 Beacon 检测工具
这是[信安成长计划]的第 11 篇文章 关注微信公众号[信安成长计划] 0x00 目录 0x01 检测原理 0x02 检测方案 0x03 存在的问题 0x04 解决方案 0x05 示例代码 0x06 ...
随机推荐
- Hybrid App(混合开发) 移动端开发调试
1.下载项目,npm install安装依赖 本地运行 npm run dev(根据具体packjson配 置而定) 2.局域网访问:http://172.20.9.35:8080/ 3.手机端访问: ...
- 【刷题-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: ...
- 数据库DDL、DML、DCL、DQL、DPL、CCL的全称和使用
数据库DDL.DML.DCL.DQL.DPL.CCL的全称和使用 简介: SQL (Structure Query Language):结构化查询语言,一种特殊目的的编程语言,一种数据库查询和程序设计 ...
- 申请Namecheap的.me 顶级域名以及申请ssl认证--github教育礼包之namecheap
关于教育礼包的取得见另一篇随笔,在那里笔者申请了digital ocean的vps(虚拟专用主机),跟阿里云差不多,不过个人感觉比阿里云便宜好用一点. 有了自己的主机ip,就想到申请域名,方便好记,也 ...
- golang中的标准库数据格式
数据格式介绍 是系统中数据交互不可缺少的内容 这里主要介绍JSON.XML.MSGPack JSON json是完全独立于语言的文本格式,是k-v的形式 name:zs 应用场景:前后端交互,系统间数 ...
- java继承成员变量特点
1 /* 2 * 在子父类中,成员的特点体现. 3 * 1,成员变量. 4 * 2,成员函数. 5 * 3,构造函数. 6 */ 7 8 //1, 成员变量. 9 /* 10 * 当本类的成员和局部变 ...
- java 方法实例
// 方法 public class Demo { public static void main(String[] args) { m(); m2(2); m3('3', 4); m4(4, 6); ...
- Android安卓开发-记账本布局
账单页面布局统计页面布局我的页面布局主页面加号记账页面布局.点击记账页面记账类别布局点击收入页面收入类别布局统计页面支出布局统计页面收入布局查询页面布局数据库设计字段一,支出id和收入id分配字段二, ...
- 新年好 takoyaki,期待再次与你相见
一.序 今天是中国农历一年的最后一天,往年都叫年三十,今年没有三十,最后一天是二十九.厨房的柴火味.窗外的鞭炮声还有不远处传来的说笑声,一切都是熟悉味道,新年到了,家乡热闹起来了.平常左邻右舍都是看不 ...
- Python3.7.3 + pycharm安装
Python3.7.3下载地址: https://www.python.org/ https://www.python.org/getit/ Pycharm: http://www.jetbrains ...