另辟蹊径:揭秘一款通过公开笔记中转通信的新型远控工具
作者: 日期:2023年02月22日 阅:1,096

概述

近期发现一款通过独特方式进行远程控制的工具,它通过公开笔记作为控制命令中转平台来隐匿远程控制行为,该工具不仅具有一定的免杀能力,在流量侧由于全程通过HTTPS协议进行通信,因此还具备一定的防检测、防溯源的能力。另外,在HTTPS加密载荷中的控制命令本身还使用AES算法进行了加密,可以进一步防止解密后的检测。

实现原理

该工具由控制端和受控端两部分组成,公开笔记网站则作为控制命令的中转平台。

图1:实现原理图

1、受控端获取命令行参数

受控端由攻击者手动启动运行时,需要两个参数:admin和notekey。

其中,

  • :公开笔记路径,该路径下的公开笔记用于保存受控端信息,这些信息包括hostname、notekey以及noteid。
  • :受控端主机名;
  • :是由攻击者任意填写的盐字符串,跟控制命令进行拼接后再进行AES加密,加盐可以一定程度上使密文长度随机化,有效避免加密字符串碰撞;
  • :公开笔记路径,用于保存AES加密后的控制命令和命令执行返回的结果;

2、受控端将受控主机信息写入到公开笔记

受控端获取完参数启动后,通过AddHost函数将hostname、notekey以及noteid写入到admin参数所传入的公开笔记路径中。

  • notekey以及noteid

攻击者启动控制端程序时,会先输入参数admin,该参数必须跟受控端指定的admin参数内容一致,admin路径的笔记中保存的数据主要有notekey、noteid等信息,控制端通过admin参数获取受控端信息。

4、控制端发送控制命令并接收处理结果

控制端对notekey盐字符串和要执行的Shell命令按照固定格式进行拼接,然后进行AES加密,再将加密后的命令发送到路径为noteid的公开笔记中。

控制端向公开笔记中写入命令后会睡眠30s,这段时间受控端会接收到命令并返回命令执行结果,30秒后控制端从公开笔记noteid路径中读取受控端返回的数据。

下图是控制端发送whoami命令时的加密数据,图中字符串是加密后的控制命令。

由于该工具是开源的,其AES密钥硬编码在源码中,可以在源码中直接获取到密钥,利用AES解密工具直接对该加密控制命令进行解密还原,解密后可以看到控制命令是由盐字符串加命令本身拼接而成,冒号前的部分是盐字符串,也就是notekey,后半部分是控制命令”whoami”。

下图显示了控制端通过nodeid记录的路径接收命令执行的结果,通过AES解密工具可以看到返回了”whoami”命令查询到的受控主机用户名信息。

5、受控端接收命令并返回处理结果

受控端启动后会进入工作循环,每10秒读取一次noteid路径下的笔记,以检查是否有新的控制命令需要执行。

流量分析

该远控工具使用HTTPS进行加密通信,由于其命令与控制通过公开笔记网站进行中转,因此,其HTTPS单流特征与该平台的正常访问流量基本一致。不过,其受控端会周期性的持续访问公开笔记,以获取控制命令,因此其HTTPS多流行为会体现出类似心跳的特征;另外,该工具客户端与主流浏览器产生的TLS限定域指纹也不相同,这些都会使该工具的通信行为被加密流量检测设备发现。

总结

该远控工具有一个明显优点,它利用正常公开笔记网站进行远程控制,有一定能力规避流量设备的检测,干扰安全研究人员的判断。不过其也存在缺陷,一方面,其通信过程存在心跳特征,会一定程度上暴露其恶意行为;另一方面,该工具功能较少,基本只有命令执行的功能,难以处理复杂的攻防场景。不过该工具是开源的,攻击者可以进行二次开发,补全短板后将会大大提升该工具的威胁程度,观成科技安全研究团队会对此类加密通信远控工具进行持续的研究和分析。

申明:本文系厂商投稿收录,所涉观点不代表安全牛立场!


相关文章

没有相关文章!