如何捕获自定义通信协议的RAT流量
2021-05-14 11:45:00 Author: www.4hou.com(查看原文) 阅读量:197 收藏

攻击者在恶意软件和C&C服务器之间进行通信时通常应用标准应用层协议,这是由于恶意流量容易混在标准协议(例如HTTP / S)上的合法流量中,而依赖安全设备进行防护的公司也不会费时费力地检查所有SSL/TLS加密的通信流量。

但在SSL攻击大幅增长(2020年比2019年增长260%)的当下,许多安全团队也开始将注意力转向这些加密通道。现代网络安全代理、网关和防火墙已经发展到可以方便地解析应用协议并剥离SSL层来扫描底层数据。利用机器学习技术的扫描引擎可以更容易地区分恶意流量和合法流量。

这种现象导致一些攻击者开始将目光转向自定义协议,虽然在恶意通信中使用自定义协议并非新鲜事,但似乎有上升的趋势,在我们近期分析的流行恶意软件家族中,有近三分之一支持通过非http /S协议进行通信,几乎所有这些恶意软件都是远程访问木马(rat),不管是大规模感染活动还是高度针对性的攻击,都是如此。

本文将分析近期活动中观测到的一些流行RAT中使用的自定义协议,文末链接提供帮助检测此类攻击的签名和Snort规则。

以下是Zscaler阻止非HTTP / S C&C通信流量的统计图表,以及在三个月的时间内观察到的最活跃的RAT家族。

image.png

图1:近期由Zscaler观测到的通过非HTTP / S通信的威胁数目

image.png

图2:近期基于非HTTP / S的RAT家族攻击次数统计

Remcos RAT

Remcos是由称为Breaking Security的组织开发传播的远控软件。Remcos RAT于2016年末出现在黑客论坛中,之后受到了许多黑客的青睐,也被Gorgon、Elfin等APT团伙所采用。Remcos主要通过钓鱼邮件中的恶意附件传递,它的功能范围包括记录击键、执行命令、窃取凭证以及捕捉麦克风和网络摄像头等。RC4密钥和加密的配置数据保存在“RCData”下的资源部分“SETTINGS”中,该配置包含C&C地址、端口、互斥锁名称和用于C&C通信的加密密钥。

image.png

图3:资源中的加密配置

image.png

图4:解密的配置

Remcos通过自定义协议的非HTTP / S通道/端口通信,可以配置为以纯文本形式进行通信,这使得检测C&C流量相当简单。定制协议包含标头“ [DataStart]”,后跟数据大小,然后是提取的数据。

image.png

图5:以纯文本格式发送到C&C服务器的数据

然而在大多数情况下,通信由配置中的密钥及RC4算法进行加密,匹配加密二进制数据中的签名是做不到的,不过基于启发式的检测还是有发挥空间的。Remcos在执行时将系统信息发送给C&C服务器,服务器会响应命令来执行,由于请求和响应是用相同的对称密钥加密的,所以标头“[DataStart]”将生成相同的字节加密流来代替可执行文件生成的所有通信标头。

image.png

图6:以RC4加密方式发送到C&C服务器的数据

例如,如上图所示,字节“ 08 b4 de f6 84 27 70 9a 57 17 5e”的二进制流取代了标头“ [DataStart]”,所以在标记RC4加密的Remcos流量时,可以注意这类在请求和响应中11字节的重复流,再配合其他条件(如熵和数据长度限制)来看。

Crimson RAT

Crimson RAT一直受到攻击者的青睐,它曾对金融、医疗保健和航空技术领域的组织机构进行有针对性的攻击。2016年,Crimson被用于针对印度外交和军事资源的袭击,去年又出现在对印度金融机构的袭击中。Crimson通常通过包含恶意.doc文件或恶意可执行文件链接的钓鱼邮件发送给受害者。

image.png

图7:数据发送到C&C服务器

NetWire RAT

NetWire RAT于近10年前出现,已经过了多次更新迭代。NetWire曾在多场攻击行动中被检测到,如APT组织SilverTerrier和The White Company的行动。NetWire RAT通常被作为第二阶段有效负载下载到已被其他恶意软件(如GuLoader)破坏的系统中。

NetWire通过TCP自定义协议通信,通信采用AES加密。每个包以数据长度开头,后跟命令及加密数据。初始包发送一个32字节的种子值、16字节的IV值和以二进制指定的硬编码密码来生成AES密钥。C&C服务器为该信息生成会话密钥。

image.png

图8:以AES加密方式发送到C&C服务器的数据

由于通信是AES加密的,因此无法扫描通信中的签名模式,但初始数据包中有足够的信息可将流量标记为NetWire C&C通信。

AsyncRAT

AsyncRAT是一个开源的RAT,旨在通过安全加密连接远程监控和控制其他计算机。AsyncRAT提供了键盘记录器、屏幕查看器、命令执行等功能。由于其安全通信的特性,AsyncRAT被犯罪分子被武器化并用于APT活动(如“ Spalax Spalax”)中。AsyncRAT可通过各种方法传递,如鱼叉式网络钓鱼、恶意广告和开发工具包。

AsyncRAT通过安全的TCP通道进行通信。由于自定义证书由二进制文件本身携带并与C&C证书匹配,因此无法在代理/网关级别剥离TLS层,但是可以将此类自定义证书过滤掉,并通过其他阻止控件来阻止通信。

image.png

图9:证书持有者名称和签发者名称为“ AsyncRAT服务器”的服务器证书

Quasar RAT

Quasar是一个开源RAT,曾被Gorgon、Patchwork等APT组织运用在攻击活动中。它的功能包括远程桌面、键盘记录、密码窃取等。Quasar使用AES算法对通信进行加密,该算法使用客户端二进制中硬编码的预共享密钥,无法扫描AES加密流量上的签名模式,但是可以利用加密数据包的独特特征来标记Quasar的AES加密流量。

image.png

图10:以AES加密方式发送到C&C服务器的数据

有效负载的前4个字节可以用来识别Quasar流量。具体来说就是:前4个字节可以标识在TCP握手之后从服务器发送到客户端的第一个数据包,此数据包用于启动服务器/客户端身份验证过程。TCP有效负载的前4个字节包含“ 40 00 00 00”,这是后面以小尾数表示的数据的大小。

Agent Tesla RAT

Agent Tesla RAT一直非常活跃,在过去的几年中被大肆用于大规模钓鱼活动中。Agent Tesla随着时间的推移不断演变,在不同的活动中表现各异。犯罪分子使用此RAT来窃取用户凭据,并通过截屏、键盘记录和剪贴板捕捉监视受害者,从浏览器到邮件客户端,VPN到钱包等,各种软件均受影响。

Agent Tesla通过HTTP、FTP、SMTP和Telegram API向其C&C服务器通信和泄露数据。所有收集的数据都封装到HTML页面中,该HTML页面通过上述协议之一发送给C&C。为了通过FTP进行通信,HTML页面将作为文件发送到FTP C&C服务器。文件名的生成格式为“ PW_

image.png图11:通过FTP发送的数据

image.png 

图12:通过FTP的数据泄露

为了通过SMTP进行通信,HTML页面将作为邮件正文发送到C&C服务器。邮件主题以“ PW_

image.png

图13:通过SMTP的数据泄露

CyberGate RAT

CyberGate允许攻击者浏览及操纵受害者机器上的文件、设备和设置,以及下载和执行其他恶意软件。它还具有广泛的信息窃取能力,包括浏览器凭证盗窃、键盘记录、屏幕捕捉和远程启用网络摄像头。

CyberGate RAT在TCP上使用自定义协议进行通信。CyberGate根据从C&C服务器接收到的命令收集信息,通过ZLib压缩数据,使用硬编码密钥通过RC4对其加密,然后发送给C&C服务器。

image.png 

图14:发送给C&C的压缩加密数据

数据包以数据长度开头,后面是一个标记,然后是一个新的行分隔符,最后是加密的数据。要标记CyberGate RAT流量,可以考虑使用数据长度、标记符和分隔符的组合。

NanoCore RAT

NanoCore RAT大约在十年前就出现了,迄今为止依然是最流行的RAT之一。NanoCore RAT是模块化恶意软件,带有扩展其功能的插件。基本插件具有远程监控、网络摄像头监控、捕捉音频等功能,还有可用于加密货币挖掘、勒索软件攻击、凭证窃取等的插件。NanoCore RAT通过包含.doc宏的钓鱼邮件传递,使用无文件感染技术加载到受害者机器。

NanoCore通过TCP上的自定义协议进行通信,并使用具有硬编码密钥和IV值的DES算法来加密bot及其C&C服务器之间的通信。通信数据包以4字节的数据长度开头,然后是该长度的DES加密数据。

image.png

图15:加密的数据C&C通信

DES加密数据中的模式无法扫描,但我们观察到公开可用的bot生成器没有配置DES密钥的选项,因此从此bot生成器生成的所有样本都将拥有相同的DES密钥,即“72201878c294897”。这将导致由此bot构建器生成的所有bot之间产生相同的加密流量。比如来自服务器的命令是“is alive”,即0x600,用密钥加密后为“c1 c3 d0 32 43 59 a1 78”。

但是,地下论坛还有其他自定义的bot生成器,允许用户配置密钥。对于更通用的检测,我们需要对TCP数据包大小和数据长度值进行试探检验。服务器的第一个响应将始终为0x24字节,前4个字节始终为“ 20 00 00 00”,该响应包含该bot将加载的插件的GUID,bot以0x12字节的数据响应此操作,该数据总是以4字节流“08 000 000 000”开始。可以利用这些特征进行检测。

image.png

图16:来自C&C服务器的固定长度优先响应

Gh0st RAT

Gh0st是一个开源RAT,曾被TA459、APT18等APT组织使用,其功能包括包括远程桌面、记录按键、窃取凭证、捕捉麦克风和网络摄像头等。Gh0stRAT的源代码是公开的,攻击者就其需要修改,因此出现了许多变种。

Gh0st在TCP上使用自定义协议进行通信。它使用字节到字节加密算法来加密与C&C服务器的通信,在执行时收集系统数据,如系统信息、版本、处理器描述、安装的防病毒产品等,然后在这些数据前添加一个标记和数据长度,最后对采集到的数据进行单字节XOR和SUB运算,对每个字节进行加密。

image.png

图17:加密之前和加密之后收集的数据

njRAT

njRAT(也称为Bladabindi)也出现于近十年前,是当今最活跃的远程访问木马。它的功能包括远程桌面、记录按键、窃取凭证、捕捉麦克风和网络摄像头等。njRAT通常是通过钓鱼邮件的恶意附件传递,也有通过伪装成合法的应用安装程序来提供的。

自2013年源代码泄露以来,njRAT已被包括Gorgon、APT41在内的APT组织广泛采用。多年来出现了许多变种,一些通过标准HTTP协议通信,还有一些通过TCP自定义协议通信。数据包以十进制格式的数据长度开始,以空字符结尾,中间是命令、分隔符和提取的数据。

image.png

图18:来自C&C服务器的固定长度优先响应

结论

上面讨论的所有RAT都是在TCP上的自定义加密协议上通信的。当通信被加密时,很难在网络流量中扫描它们的签名模式,但我们已经讨论了基于加密数据的启发式标记RAT流量的替代方法。对于非http /S上的大多数RAT流量来说,有四个共同的属性:

· 数据包以一定长度的加密数据开始。在前4的小端值上加上4应该给出TCP数据的总长度。

· 数据长度较高后,数据的熵随之增加。

· C&C服务器以与客户机相同的数据包格式响应。

· 通常,服务器响应仅发送命令,因此长度在特定范围内。

上述RAT的Cloud IPS(非HTTP / S)签名和Snort规则请参见此处

本文翻译自:https://www.zscaler.com/blogs/security-research/catching-rats-over-custom-protocols如若转载,请注明原文地址


文章来源: https://www.4hou.com/posts/D6lK
如有侵权请联系:admin#unsafe.sh