CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

admin 2022年4月23日02:34:50CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析已关闭评论106 views字数 735阅读2分27秒阅读模式

Beacon 在接受完命令并执行后,会将数据加密回传给 TeamServer,TeamServer 进行解析后,并根据类型对结果的格式进行处理后,再回传给 Controller

0x01 Beacon 接收与处理

直接在通信相关函数上下断,HttpSendRequest 发送任务,InternetReadFile 接收任务

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

跟出函数以后再根据其上下文分析,也就能推断出大致范围

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

同理在回结果的时候也是一样,这样也就大致确定了整个处理逻辑的代码范围,在这之间进行任务接收、解密、执行、结果回传等

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

0x02 结果回传

在 Beacon 回结果的时候依然是从 WebServer 接收,继续走了 MalleableHook 来调用到真正的处理函数

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

最终会走到 POST 的处理流程当中

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

接着会先读取前四个字节作为大小,然后申请内存,并将后续所有内容读入数组当中

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

接下来就是解密操作

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

与之前分析加密一样,先取出相应的 Key,然后再进行相应的操作

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

计算 Hmac 值,并进行校验

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

校验通过后进行解密

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

接着就是读取并返回,后面对 conunter 的计数,看描述可能是防止 replay attack,具体情况并未分析清楚

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

接着会通过读取返回值所指定的类型来决定以怎样的格式来返回

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

具体类型的含义在 Job 中也可见一二

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

然后按照指定格式处理完成后,会回传给 Controller

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

在 output 中调用了 broadcast,也就意味着他是从 BroadcastWriter 中回传的

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

接着 Controller 在 TeamQueue 中接收到了信息

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

继续走处理流程

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

接着在 DataManager 中进行相应处理

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

接着 TeamServer 这边实际还有流程没有完成

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

接着会将下面这些类型全部执行一遍

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

随便一个跟进去,根据名字分析,应该是对结果值进行相应的提取的,可能是用于对票据等一些内容的展示

CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月23日02:34:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CobaltStrike逆向学习系列(8)-Beacon 结果回传流程分析https://cn-sec.com/archives/916925.html