观成科技: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

相关文章

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、

MySQL中读写分离方案对比分析与选型建议

《MySQL中读写分离方案对比分析与选型建议》MySQL读写分离是提升数据库可用性和性能的常见手段,本文将围绕现实生产环境中常见的几种读写分离模式进行系统对比,希望对大家有所帮助... 目录一、问题背景介绍二、多种解决方案对比2.1 原生mysql主从复制2.2 Proxy层中间件:ProxySQL2.3

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

MySQL中EXISTS与IN用法使用与对比分析

《MySQL中EXISTS与IN用法使用与对比分析》在MySQL中,EXISTS和IN都用于子查询中根据另一个查询的结果来过滤主查询的记录,本文将基于工作原理、效率和应用场景进行全面对比... 目录一、基本用法详解1. IN 运算符2. EXISTS 运算符二、EXISTS 与 IN 的选择策略三、性能对比

MySQL 内存使用率常用分析语句

《MySQL内存使用率常用分析语句》用户整理了MySQL内存占用过高的分析方法,涵盖操作系统层确认及数据库层bufferpool、内存模块差值、线程状态、performance_schema性能数据... 目录一、 OS层二、 DB层1. 全局情况2. 内存占js用详情最近连续遇到mysql内存占用过高导致

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

Olingo分析和实践之EDM 辅助序列化器详解(最佳实践)

《Olingo分析和实践之EDM辅助序列化器详解(最佳实践)》EDM辅助序列化器是ApacheOlingoOData框架中无需完整EDM模型的智能序列化工具,通过运行时类型推断实现灵活数据转换,适用... 目录概念与定义什么是 EDM 辅助序列化器?核心概念设计目标核心特点1. EDM 信息可选2. 智能类

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1