1、相关文件基本信息
2、基本流程
流程图:
3、关键行为
3.1 创建管道
获取系统时间戳并对0x26AA取余拼接管道名。
创建子线程。
在线程中创建管道,并等待主线程连接管道
3.2 主线程解密读取管道中shellcode
主线程开始循环:
主线程睡眠1024毫秒,等待子线程创建完管道,在主线程中用CreateFile函数尝试连接管道。
主线程连接管道之后,子线程向管道中写入shellcode,然后退出子线程。
主线程读取shellcode成功,则退出循环。
申请内存。
解密shellcode,把解密的数据存入刚申请的内存中,并且能够明显看到内存中数据的特征是一个PE文件。
3.3 执行shellcode
修改shellcode内存属性为可执行。
创建线程,并把shellcode地址作为参数传入进去,然后主线程无限循环睡眠。
在线程中跳转到shellcode处。
有意思的地方来了,把PE数据的特征作为指令执行,手动平衡栈帧,然后call到想要的地址执行。
3.4 与C2服务器通信
获取当前主机各类信息PID及主机名。
此处开始是一个循环,连接C2服务器。
第一次连接时向C2服务器发送收集的主机信息,之后向C2服务器发送所下发的指令信息。
通过InternetReadFile函数读取服务器指令的hash,并比较hash区分指令。
以下为ls指令的分支,获取当前目录,遍历文件,然后将收集的信息发送给服务器。
并且执行完一圈会睡眠60秒,避免频繁的触发网络行为。
四
总结
Cobalt Strike所生成的后门除了beacon.exe还有很多种类,可以根据场景的不同使用不同的后门,在目前Cobalt Strike所有的后门都比较活跃,在红蓝对抗中也占据着一席之地,建议提前部署具备高级威胁检测能力的安全产品进行及时监控、防范。
- End -
京公网安备 11010802024705号 京ICP备20030588号 Copyright © 兰云科技 www.lanysec.com 版权所有