原理分析

监听器管理(Beacon)

监听器:等待被入侵系统连接自己的一个服务。

监听器的作用:为了接受payload回传的各类数据,类似于MSF中handler的作用。比如payload在目标机器执行以后,就会回连到监听器然后下载执行真正的shellcode代码。


一旦监听器建立起来,团队成员只需要知道这个监听器的名称即可,不需要关心监听器背后的基础环境。

stager:就是远程加载Beacon.dll的shellcode

Beacon Staging Sever: 是分阶段模式中,提供shellcode等功能扩展存储的Stage服务器。它的作用是为了防止Payload过大或者适应不同的攻击场景,可以分阶段进行payload投递


元数据:描述数据的数据,主要是描述数据属性的信息,用来支持如:指示存储位置、历史数据、资源查找、文件记录等功能。是一种电子式目录。

CS上线流量特征

步骤分析

上线包的敏感信息隐藏到了cookie中,特征非常明显。通过进一步分析,可以发现,上线包的请求Cookie值是受控主机元数据经过非对称加密后的密文,CS服务器接收到Cookie值后进行解密,从而获取到受控主机信息

cookie加密过程

  1. 攻击者利用CS sever生成新的Beacon监听(包括一对非对称公私钥)并生成stager
  2. 攻击者投递Stager到受控主机
  3. 受控主机在Exploit阶段执行小巧的Stager
  4. 受控主机根据Stager Url请求特征向Beacon Staging Sever 下载体积较大更复杂的Stager到本地,Beacon Staging Server会校验URL的合法性。
  5. Stage解密并解析Beacon配置信息(比如公钥PublicKey、C2 server信息)
  6. Stage通过公钥加密主机的元数据并发送至C2 Server
  7. 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.00.0.0.800.0.0.241等非常规ip。

运行staging模式的pe文件,会向指定服务器的checksum8路径发起请求来下载stage

参考文章

参考文章

https://forum.butian.net/share/708

https://www.freebuf.com/articles/network/286276.html

https://paper.seebug.org/1922/

https://www.freebuf.com/articles/network/286276.html

评论