stager 可执行文件 artifact.exe 运行后会有一个 payload 下载过程,使用 http 协议从指定服务器下载 stage 。
![CobaltStrike -- 流量分析 CobaltStrike 流量分析]()
其中 http 请求路径不唯一,但都符合一个 checksum8 规则,即:路径的 ascii 之和与 256 取余计算值等于 92 。
![CobaltStrike -- 流量分析 CobaltStrike 流量分析]()
而下载的文件约 211kb,解析后可以看到回连地址、加密字段、公钥等配置信息。
![CobaltStrike -- 流量分析 CobaltStrike 流量分析]()
随后 beacon 按设置的频率以 get 方法向 c2 服务器发起心跳请求,通过 cookie 携带靶机信息。
![CobaltStrike -- 流量分析 CobaltStrike 流量分析]()
![CobaltStrike -- 流量分析 CobaltStrike 流量分析]()
c2 服务器如果有任务下发,则放入 http 心跳请求返回包中。
![CobaltStrike -- 流量分析 CobaltStrike 流量分析]()
![CobaltStrike -- 流量分析 CobaltStrike 流量分析]()
beacon 端处理完成后,通过 post 方法回传数据。
![CobaltStrike -- 流量分析 CobaltStrike 流量分析]()
注:https-beacon 在 http-beacon 的基础上加入了 tls 层对流量加密,其他过程相似。
![CobaltStrike -- 流量分析 CobaltStrike 流量分析]()
![CobaltStrike -- 流量分析 CobaltStrike 流量分析]()
与 staging 阶段不同,stagless 不需要额外加载 stage,运行 dns-beacon.exe后,beacon 端发起一个A记录查询,查询内容为16进制字符串地址,表示靶机信标已上线,c2 服务器收到请求后回复 0.0.0.0 表示确认消息。
![CobaltStrike -- 流量分析 CobaltStrike 流量分析]()
此时,在客户端可以看见一个不同于 http(s)上线的黑框记录。
![CobaltStrike -- 流量分析 CobaltStrike 流量分析]()
客户端控制台输入 checkin 或其他指令激活窗口,dns-beacon服务器支持A、TXT、AAAA三种方式下发payload,激活后默认使用TXT记录,流量中表现为 0.0.0.243,除此之外还可以通过 mode 指令切换为A、AAAA 记录,流量中表现为 0.0.0.241、0.0.0.245,随后 beacon 端发起以 www 为首的A记录请求,向 c2 服务器传递靶机基础信息。
![CobaltStrike -- 流量分析 CobaltStrike 流量分析]()
beacon 准备接收 c2 任务,先发送以 api 开头的A记录请求告知 c2 服务器可以开始下发任务,即图中的 0.0.0.243-TXT 方式,随后发起以 api 开头的 TXT 记录请求等待 c2 服务器返回数据。
![CobaltStrike -- 流量分析 CobaltStrike 流量分析]()
beacon 端执行完命令后,再向 c2 服务器发起以 post 开头的A记录查询回传执行结果。
![CobaltStrike -- 流量分析 CobaltStrike 流量分析]()
三、声明:
仅供安全研究与学习之用,若将工具做其他用途,由使用者承担全部法律及连带责任,作者不承担任何法律及连带责任。
加我微信:ivu123ivu,进送书活动群,不定时免费送书
《自然语言处理NLP从入门到项目实战:Python语言实现》
![CobaltStrike -- 流量分析 CobaltStrike 流量分析]()
本书从人工智能和自然语言处理技术的基础原理讲起,逐步深入自然语言处理进阶实战,并配有实战代码讲解,重点介绍了使用开源技术、人工智能开放平台,以及使用国内外优秀开发框架进行基于规则、统计、深度学习的自然语言处理程序开发,让读者全面掌握理论基础,并学以致用。
原文始发于微信公众号(web安全工具库):CobaltStrike -- 流量分析
评论