Beacon 结果回传流程分析

2022-03-03 11:40:29 浏览数 (2)

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

0x00 目录

0x01 Beacon 接收与处理

0x02 结果回传

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

0x01 Beacon 接收与处理

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

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

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

0x02 结果回传

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

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

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

接下来就是解密操作

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

计算 Hmac 值,并进行校验

校验通过后进行解密

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

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

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

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

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

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

继续走处理流程

接着在 DataManager 中进行相应处理

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

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

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

0 人点赞