原理分析
监听器管理(Beacon)
监听器:等待被入侵系统连接自己的一个服务。
监听器的作用:为了接受payload回传的各类数据,类似于MSF中handler的作用。比如payload在目标机器执行以后,就会回连到监听器然后下载执行真正的shellcode代码。
一旦监听器建立起来,团队成员只需要知道这个监听器的名称即可,不需要关心监听器背后的基础环境。
stager:就是远程加载Beacon.dll的shellcode
Beacon Staging Sever: 是分阶段模式中,提供shellcode等功能扩展存储的Stage服务器。它的作用是为了防止Payload过大或者适应不同的攻击场景,可以分阶段进行payload投递
元数据:描述数据的数据,主要是描述数据属性的信息,用来支持如:指示存储位置、历史数据、资源查找、文件记录等功能。是一种电子式目录。
CS上线流量特征
步骤分析
上线包的敏感信息隐藏到了cookie中,特征非常明显。通过进一步分析,可以发现,上线包的请求Cookie值是受控主机元数据经过非对称加密后的密文,CS服务器接收到Cookie值后进行解密,从而获取到受控主机信息
cookie加密过程
- 攻击者利用CS sever生成新的Beacon监听(包括一对非对称公私钥)并生成stager
- 攻击者投递Stager到受控主机
- 受控主机在Exploit阶段执行小巧的Stager
- 受控主机根据Stager Url请求特征向Beacon Staging Sever 下载体积较大更复杂的Stager到本地,Beacon Staging Server会校验URL的合法性。
- Stage解密并解析Beacon配置信息(比如公钥PublicKey、C2 server信息)
- Stage通过公钥加密主机的元数据并发送至C2 Server
- C2 Server 用私钥解密数据获取主机元数据
stager url,可以作为特征来识别CS服务器。CS中的Stager URL校验算法,就是生成4位随机校验码,将校验码拼接到URL后面,即可请求到Stage的代码
分阶段上传payload
https://blog.csdn.net/qq_44159028/article/details/118157559
stager url校验算法
关键函数:checksum8、MSFURL、isStager
流量特征
http-beacon通信中,默认使用get方法向/dpixel
、/__utm.gif
、/pixel.gif
等地址发起请求。
心跳包
https,默认使用空证书建立加密通道。
dns-beacon通信中,默认使用cdn.
、www6.
、api.
、www.
、post.
为开头发起dns请求,并且查询结果伴随0.0.0.0
、0.0.0.80
、0.0.0.241
等非常规ip。
运行staging模式的pe文件,会向指定服务器的checksum8路径发起请求来下载stage
参考文章
参考文章
https://forum.butian.net/share/708
https://www.freebuf.com/articles/network/286276.html