观成科技:Play勒索软件组织加密流量分析

2024-05-30 07:12

本文主要是介绍观成科技:Play勒索软件组织加密流量分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.概述

近年来,勒索软件组织的作业链条逐渐从“加密数据->收取赎金”转变到“数据窃取->加密数据->暗网披露窃取数据大小和内容描述->收取赎金”[1]。勒索软件组织在获取到受害者的访问权限后,不会立刻进行勒索,而是进行横向移动、数据窃取等操作,从受害环境中窃取大量敏感、机密信息,用于二次勒索。当受害者不愿意支付赎金时,攻击者会在网络上进行数据泄露来威胁受害者支付赎金。这种攻击模式被称为“双重勒索”。为了达到数据窃取这一目的,多数勒索软件组织采用商业工具或开源工具,少数勒索软件组织选择自研工具。通过对这些商业工具和开源工具进行检测,我们可以提前在窃密阶段拦截勒索软件组织的攻击,而对自研工具进行检测,还可以识别具体的勒索软件组织。

Play勒索软件组织是现今非常活跃的勒索软件组织之一,该组织采用双重勒索模式进行攻击,在窃取受害者敏感数据后才对受害者系统进行加密。Play勒索软件组织从2022年6月至今,对包括美国、加拿大、英国、德国、葡萄牙、丹麦、瑞典、以色列、韩国、中国台湾、新西兰在内多个国家和地区的约300多个企业及关键基础设施进行了攻击。2023年11月,安全公司Adlumin称Play勒索软件疑似出售勒索服务,开始向勒索软件即服务(RaaS)模式转型。

Play勒索软件组织在窃密过程中,使用了自研武器Grixba、免费工具NetScan进行信息收集,使用商业工具SystemBC实现SOCKS5反向代理功能进行内网攻击,使用商业工具CobaltStrike实现命令与控制功能。观成科技瞰云加密威胁智能检测系统能够对Play勒索软件组织使用的自研工具Grixba、商业工具SystemBC和CobaltStrike进行有效检测。

2.技战术总结

Play勒索软件组织常见攻击过程如下图所示。

图 2‑1 勒索软件组织攻击示意图

攻击者通过漏洞利用获取到受害单位对外服务器的访问权限,通过该服务器进行信息收集,得到域控服务器地址,完成权限提升。随后在内网中进行横向移动,拿到内网其他主机的访问权限,部署远控木马和窃密木马,收集内网主机上的机密数据发送给C&C服务器,最后加密内网中主机与服务器的文件。

表 1: Play勒索软件组织技战术总结

攻击意图

攻击方式

通信方式

攻击工具

影响范围

窃密、勒索、赎金

漏洞利用、有效账户、钓鱼邮件

加密通信

自研、开源、商业

Windows平台

通过公开窃密数据和加密数据这两种方式向受害者勒索赎金。

通过VPN漏洞、Microsoft Exchange漏洞和ProxyNotShell漏洞获取访问权限。

1.通过TCP加密隧道与服务器进行通信;

2.通过SSH加密协议向服务器传输窃密数据。

1.Play勒索软件通过自研工具Grixba进行信息收集;

2.使用商业木马SystemBC和CobaltStrike;

3.使用大量开源工具如WinSCP、Plink进行窃密活动;

目前只针对Windows平台进行勒索

Play勒索软件组织在不同攻击阶段使用的工具如下图所示。

图 2‑2 攻击过程中使用的工具

Play勒索软件组织常利用漏洞(如CVE-2018-13379、CVE-2020-12812、CVE-2022-41040、CVE-2022-41082等)、钓鱼邮件和有效账户获取初始访问权限,然后通过AdFind 工具获取活动目录,使用NetScan、Grixba进行网络扫描,收集信息,配合使用 GMER、IOBit和PowerTool等工具禁用杀毒软件并且删除日志记录。Play勒索软件组织使用CobaltStrike进行命令与控制操作,通过SystemBC、Empire、PsExec和RDP进行内网横向移动,并使用WinRAR压缩内网中敏感数据,利用WinSCP和Plink将数据窃取到远程服务器,最终通过AES和RSA算法加密文件,并将文件后缀修改为“.play”,完成窃密+勒索的攻击过程。[2]

3.工具分析
    1. 信息收集:Grixba

表2:Grixba样本信息

SHA256

453257c3494addafb39cb6815862403e827947a1e7737eb8168cd10522465deb

Grixba是Play勒索软件组织自主研发的一种网络扫描工具,用于枚举域中所有用户和计算机。Grixba通过WMI、WinRM、远程注册表和远程服务来枚举软件和服务器。Grixba会检查安全软件、备份软件、远程管理工具等是否存在并将收集到的信息保存到CSV文件中,压缩为ZIP文件。

图 3‑1 Grixba支持的操作

图 3‑2 Grixba的扫描过程

Grixba的操作共分为两个阶段,扫描阶段和信息收集阶段。扫描阶段通过ping操作判断主机是否存活,用GetHostEntry函数来获取主机名。信息收集阶段通过远程注册表、远程服务和WMI等进行操作。

图 3‑3 ICMP数据0x20

图 3‑4 获取主机名

图 3‑5 访问远程注册表

图 3‑6 通过WMI收集信息

Grixba进行网络扫描时产生的流量具有较为明显的特征,正常Windows ping操作中ICMP的载荷为“abcdefghijklmnopqrstuvwabcdefghi”,长度为32字节,而Grixba的ping操作中数据长度为2字节,值为16进制的“20 20”,该值硬编码在样本中。

图 3‑7 ICMP包中的数据

Grixba的扫描操作会依次生成如下协议的流量。

协议

操作

ICMP

ping

NBNS

查询主机名

SMB

查询远程注册表

DCERPC

WMI操作

图 3‑8 ICMP和NBNS

图 3‑9 SMB和DCERPC

    1. 代理:SystemBC

SystemBC是一种使用C语言编写的恶意软件,完整版SystemBC具有三种功能,一是将受害主机转变为SOCKS5代理,二是下载VBS、BAT、EXE等文件并执行,三是加载shellcode并执行。Play勒索软件在攻击活动中使用的SystemBC删减了功能二和三,只保留了SOCKS5代理功能。

表3: SystemBC样本信息

SHA256

86e4e23f9686b129bfb2f452acb16a4c0fda73cf2bf5e93751dcf58860c6598c

C2

137.220.49.66

通信加密算法

RC4

字符串加密算法

XOR

通信加密密钥

D4 AC DA CB 2D 35 AB 3B 0D C4 C4 48 FE B7 C8 42 C9 4D AE D5 35 9C 73 E7 F3 5E 79 8E 4D 06 B8 EF 43 8E D6 39 90 93 1A 61 9B 00 00 00 00 00 00 00 00 00

字符串加密密钥

D4 AC DA CB 2D 35 AB 3B 0D C4 C4 48 FE B7 C8 42 C9 4D AE D5 35 9C 73 E7 F3 5E 79 8E 4D 06 B8 EF 43 8E D6 39 90 93 1A 61 9B

  1. 代理实现过程

样本会收集计算机名和卷序列号,加密后发送给C&C服务器。C&C服务器会下发开启代理的指令,样本接收到指令后与C&C服务器建立加密的SOCKS5隧道。C&C服务器默认开启443端口与受害机进行加密SOCKS5通信,开启4001~49151端口与攻击者进行SOCKS5通信。攻击者会连接C&C服务器上的SOCKS5代理,并发起数据请求,该请求由C&C服务器通过加密的SOCKS5通道发送给受害机,受害机获取到数据响应后通过加密的SOCKS5通道返回给C&C服务器,服务器解密后再发送给攻击者。

图 3‑10 反向代理实现过程

  1. 通信数据解密

SystemBC使用RC4算法加密与C&C服务器通信的数据。密钥为“D4 AC DA CB 2D 35 AB 3B 0D C4 C4 48 FE B7 C8 42 C9 4D AE D5 35 9C 73 E7 F3 5E 79 8E 4D 06 B8 EF 43 8E D6 39 90 93 1A 61 9B 00 00 00 00 00 00 00 00 00”,共50字节。

  1. 上线包解密

上线包共100字节,包含系统版本、用户名和卷序列号。

图 3‑11 上线包

图 3‑12 上线包结构

图 3‑13 上线包解密

  1. 控制指令解密

C&C服务器下发给SystemBC的数据格式如下图所示,数据长度是数据部分的长度,地址类型包括“1”、“3”和“4”,1代表地址是域名,2代表地址是IP,3代表地址是IPv6。

图 3‑14 控制指令

图 3‑15 控制指令格式

图 3‑16 地址类型

头部数据和其余数据是分开加密的,解密时需要先解密4字节的头部数据,再解密剩余的数据部分。

图 3‑17 头部单独解密

图 3‑18 数据单独解密

  1. SOCKS5通信解密

SystemBC接收到指令后,加密SOCKS5协议的数据发送给C&C服务器,建立SOCKS5代理。

图 3‑19 加密的SOCKS5协议数据

图 3‑20 代理数据解密

  1. 字符串解密

SystemBC使用XOR算法对字符串进行解密,密钥为“D4 AC DA CB 2D 35 AB 3B 0D C4 C4 48 FE B7 C8 42 C9 4D AE D5 35 9C 73 E7 F3 5E 79 8E 4D 06 B8 EF 43 8E D6 39 90 93 1A 61 9B”。在对字符串进行解密时,密钥起始数据偏移通过“(要解密的数据地址-0x404000)%0x28”得到。

图 3‑21 字符串XOR解密

4.产品检测

观成科技瞰云加密威胁智能检测系统可成功对Play勒索软件组织使用的自研工具Grixba、商业工具SystemBC和CobaltStrike进行检测。

图 4‑1 Play勒索软件自研工具Grixba告警截图

图 4‑2 商业木马SystemBC告警截图

图 4‑3 商业木马CobaltStrike告警截图

5.总结

Play勒索软件组织在攻击过程中多以开源工具和商业工具为主,少量使用自研工具。自研工具如Grixba流量特征明显,商业工具如CobaltStrike、SystemBC具有时间和空间侧的可检测特征,在流量侧对这些工具进行检测,有助于在攻击初期提前发现攻击活动,防止机密数据被加密勒索,有效减少数据和财产损失。而开源SSH工具如WinSCP和Putty本身无恶意行为,利用它们进行数据窃取,会加大检测难度。观成科技安全研究团队会在SSH窃密流量检测方面持续发力,不断强化检测能力,覆盖勒索软件组织产生的更多加密流量。

6.参考链接
  1. 《从八个方面认识勒索攻击和危害》之二:勒索攻击的两种典型模式

https://www.antiy.cn/About/news/20211103.html

  1. An In-Depth Look at Play Ransomware

https://explore.avertium.com/resource/an-in-depth-look-at-play-ransomware

这篇关于观成科技:Play勒索软件组织加密流量分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1015885

相关文章

Springboot请求和响应相关注解及使用场景分析

《Springboot请求和响应相关注解及使用场景分析》本文介绍了SpringBoot中用于处理HTTP请求和构建HTTP响应的常用注解,包括@RequestMapping、@RequestParam... 目录1. 请求处理注解@RequestMapping@GetMapping, @PostMappin

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

C++ scoped_ptr 和 unique_ptr对比分析

《C++scoped_ptr和unique_ptr对比分析》本文介绍了C++中的`scoped_ptr`和`unique_ptr`,详细比较了它们的特性、使用场景以及现代C++推荐的使用`uni... 目录1. scoped_ptr基本特性主要特点2. unique_ptr基本用法3. 主要区别对比4. u

JAVA SpringBoot集成Jasypt进行加密、解密的详细过程

《JAVASpringBoot集成Jasypt进行加密、解密的详细过程》文章详细介绍了如何在SpringBoot项目中集成Jasypt进行加密和解密,包括Jasypt简介、如何添加依赖、配置加密密钥... 目录Java (SpringBoot) 集成 Jasypt 进行加密、解密 - 详细教程一、Jasyp

Nginx内置变量应用场景分析

《Nginx内置变量应用场景分析》Nginx内置变量速查表,涵盖请求URI、客户端信息、服务器信息、文件路径、响应与性能等类别,这篇文章给大家介绍Nginx内置变量应用场景分析,感兴趣的朋友跟随小编一... 目录1. Nginx 内置变量速查表2. 核心变量详解与应用场景3. 实际应用举例4. 注意事项Ng

Java多种文件复制方式以及效率对比分析

《Java多种文件复制方式以及效率对比分析》本文总结了Java复制文件的多种方式,包括传统的字节流、字符流、NIO系列、第三方包中的FileUtils等,并提供了不同方式的效率比较,同时,还介绍了遍历... 目录1 背景2 概述3 遍历3.1listFiles()3.2list()3.3org.codeha

使用MyBatis TypeHandler实现数据加密与解密的具体方案

《使用MyBatisTypeHandler实现数据加密与解密的具体方案》在我们日常的开发工作中,经常会遇到一些敏感数据需要存储,比如用户的手机号、身份证号、银行卡号等,为了保障数据安全,我们通常会对... 目录1. 核心概念:什么是 TypeHandler?2. 实战场景3. 代码实现步骤步骤 1:定义 E

Nginx分布式部署流程分析

《Nginx分布式部署流程分析》文章介绍Nginx在分布式部署中的反向代理和负载均衡作用,用于分发请求、减轻服务器压力及解决session共享问题,涵盖配置方法、策略及Java项目应用,并提及分布式事... 目录分布式部署NginxJava中的代理代理分为正向代理和反向代理正向代理反向代理Nginx应用场景

Redis中的有序集合zset从使用到原理分析

《Redis中的有序集合zset从使用到原理分析》Redis有序集合(zset)是字符串与分值的有序映射,通过跳跃表和哈希表结合实现高效有序性管理,适用于排行榜、延迟队列等场景,其时间复杂度低,内存占... 目录开篇:排行榜背后的秘密一、zset的基本使用1.1 常用命令1.2 Java客户端示例二、zse

Redis中的AOF原理及分析

《Redis中的AOF原理及分析》Redis的AOF通过记录所有写操作命令实现持久化,支持always/everysec/no三种同步策略,重写机制优化文件体积,与RDB结合可平衡数据安全与恢复效率... 目录开篇:从日记本到AOF一、AOF的基本执行流程1. 命令执行与记录2. AOF重写机制二、AOF的