当前位置: 首页 > news >正文

利用VPN设备漏洞入侵!新型勒索软件CACTUS攻击手法分析

图片

近期,亚信安全应急响应中心截获了利用VPN设备已知漏洞传播的新型勒索软件CACTUS,该勒索于2023年3月首次被发现,一直保持着活跃状态。CACTUS勒索软件通过Fortinet VPN的已知漏洞进行入侵(黑客首先获取到VPN账号,再通过VPN服务器入侵到组织内部),获取初始访问权限。随后,勒索团伙会通过网络扫描,远控软件和RDP暴力破解在内网横向移动,窃取被害者的重要信息,并将窃取的信息传输到云存储中。最后,勒索团伙对被害机器进行勒索投毒。

CACTUS勒索软件介绍

图片

【CACTUS攻击流程】

在内网横向移动阶段,该勒索团伙使用Netscan、PSnmap的修改版本对域内机器进行网络扫描。通过使用PowerShell命令来枚举端点,在Windows事件查看器中查看成功登录来识别用户帐户,并ping远程主机。除此之外,勒索团伙还使用各种合法工具及远程软件对被害者机器进行控制,例如Splashtop、 AnyDesk、SuperOps RMM、Cobalt Strike和基于Go的代理工具Chisel。另外, 该勒索还通过RDP暴力破解获取内网访问权限。

获取到内网机器的访问权限后,勒索团伙首先会窃取被害者的敏感信息,并使用Rclone等常见工具将窃取的信息传输到云存储中,然后再进行手动投毒。在勒索阶段,勒索团伙会威胁用户,如果不缴纳赎金,将会泄露窃取到的数据。在数据加密及数据泄露双重威胁下,用户缴纳赎金的概率将会提高。

CACTUS勒索与以往勒索软件相比较,其最大不同之处是利用7-Zip进行防御规避。CACTUS 勒索软件使用批处理脚本提取 7-Zip加密保护的勒索软件二进制文件,然后在执行有效负载之前删除 .7z文件。CACTUS勒索软件在加密前会初始化AES密钥以及OpenSSL库,通过OpenSSL库提供加密服务。其还通过创建计划任务达到持久化加密文件目的。在加密过程中,混合使用了 AES 和 RSA 算法,其中,使用 AES 算法对文件数据进行加密,并将加密后的数据写入文件中,然后使用 RSA 公钥对随机生成的加密密钥进行加密,并在文件夹中留下勒索信息说明文件。为防止受害者通过备份恢复数据,其会删除卷影副本。

图片

【CACTUS勒索信】

病毒详细分析

该勒索首先执行bat脚本,将test.7z压缩包解压,并将勒索软件复制到C:\windows\目录下,通过脚本中的命令行参数运行,并执行后续加密操作:

图片

其会创建一个互斥体,防止多个进程运行:

图片

使用AES算法并初始化密钥,后续用于进行数据加密:

图片

提供RSA公钥,后续用于对AES密钥进行加密:

图片

该勒索将自身复制到C:\ProgramData\{文件名}.exe:

图片

其将垃圾数据混淆的十六进制编码配置文件写入 C:\ProgramData\ntuser.dat,其中包含原始 exe 的路径,这是一个 base64 字符串,包含勒索软件运行的相关配置。通过将每个双字符字节表示的对齐方式推出一个字符来进一步混淆处理十六进制字符串:

图片

创建计划任务,指向:C:\ProgramData\{文件名}.exe -r:

图片

该勒索使用了 OpenSSL 库提供的加密算法对文件进行加密:

图片

其会删除卷影副本,禁用自动修复功能,以防止用户恢复数据:

图片

获取本地磁盘以及磁盘类型:

图片

创建勒索信:

图片

图片

遍历文件,并对文件进行加密:

图片

图片

使用AES,RSA和OpenSSL进行文件加密:

图片

加密文件后,添加加密后缀:.CTS1,.CTS6,.CTS7等:

图片

图片

亚信安全产品解决方案

●亚信安全病毒码版本18.939.60,云病毒码版本18.939.71,全球码版本18.939.00已经可以检测该勒索软件中对外公开的样本,请用户及时升级病毒码版本。

图片

●亚信安全梦蝶防病毒引擎可以检测该勒索软件,可检测的病毒码版本为1.6.0.194

图片

安全建议

●修复Fortinet VPN已知漏洞;

●全面部署安全产品,保持相关组件及时更新;

●采用高强度密码,避免使用弱口令或重复口令;

●尽量关闭不必要的默认共享,避免被横向传播;

●请注意备份重要文档。备份的最佳做法是采取3-2-1规则,即至少做三个副本,用两种不同格式保存,并将副本放在异地存储。

相关文章:

利用VPN设备漏洞入侵!新型勒索软件CACTUS攻击手法分析

近期,亚信安全应急响应中心截获了利用VPN设备已知漏洞传播的新型勒索软件CACTUS,该勒索于2023年3月首次被发现,一直保持着活跃状态。CACTUS勒索软件通过Fortinet VPN的已知漏洞进行入侵(黑客首先获取到VPN账号,再通过V…...

第7章 SpringBoot安全管理

学习目标 了解SpringSecurity安全管理的功能 掌握SpringSecurity的安全配置 掌握SpringSecurity自定义用户认证的实现方法 掌握SpringSecurity自定义用户授权管理的实现方法 掌握如何使用SpringSecurity实现页面控制 实际开发中,一些应用通常要考虑到安全性问题。例如,对于一…...

【QT+QGIS跨平台编译】之二十二:【FontConfig+Qt跨平台编译】(一套代码、一套框架,跨平台编译)

文章目录 一、FontConfig介绍二、文件下载三、文件分析四、pro文件五、编译实践 一、FontConfig介绍 FontConfig 是一个用于配置和定制字体的库,广泛应用于基于X Window系统的操作系统中,尤其是在Linux和Unix-like系统中。它为应用程序提供了一种统一的…...

echarts中绘制3D三维地球

简介 echarts中的三维地球,需要用到世界地图json数据,我把json文件放到我的资源中,有需要的自行下载。 安装插件 // 安装echats npm install echarts --save npm install echarts-gl --save 项目中引用 1,引入安装的echarts…...

go grpc高级用法

文章目录 错误处理常规用法进阶用法原理 多路复用元数据负载均衡压缩数据 错误处理 gRPC 一般不在 message 中定义错误。毕竟每个 gRPC 服务本身就带一个 error 的返回值,这是用来传输错误的专用通道。gRPC 中所有的错误返回都应该是 nil 或者 由 status.Status 产…...

Redis实现登录的优化

目录 1 前言 2 实现步骤 2.1 软件环境准备 2.1.1 Redis的安装 2.1.2 在pom.xml中添加依赖 2.1.3 在application.yml中进行相关配置 2.2 StringRedisTemplate的常用方法 2.2.1 获取operations 2.2.2 主要方法 2.3 令牌主动失效机制 2.3.1 登录时将令牌存入Redis 2.…...

ROS方向第二次汇报(5)

文章目录 1.本方向内学习内容:1.1.自定义msg:1.1.1.定义msg文件:1.1.2.编辑配置文件: 1.2.自定义srv:1.2.1.定义srv文件:1.2.2.编辑配置文件: 1.3.服务通信案例实现:1.3.1.服务端实现…...

C# 浅克隆与深克隆

在C#中,浅克隆(Shallow Clone)和深克隆(Deep Clone)是两种常见的对象克隆技术,用于创建对象的新副本。 它们的主要区别在于复制对象的层次和属性的处理方式。 浅克隆(Shallow Copy)…...

Shell 正则表达式及综合案例及文本处理工具

目录 一、常规匹配 二、常用特殊字符 三、匹配手机号 四、案例之归档文件 五、案例之定时归档文件 六、Shell文本处理工具 1. cut工具 2. awk工具 一、常规匹配 一串不包含特殊字符的正则表达式匹配它自己 例子,比如说想要查看密码包含root字符串的&#x…...

React | Center 组件

在 Flutter 中有 Center 组件,效果就是让子组件整体居中,挺好用。 React 中虽然没有对应的组件,但是可以简单封装一个: index.less .container {display: flex;justify-content: center;align-items: center;align-content: ce…...

头歌C++之函数强化练习题

目录 第1关:结构实现复数运算 任务描述 编程要求 第2关:求亲密对数 任务描述 编程要求 第3关:计算一年的第几天 任务描述 编程要求 第4关:正整数求和 任务描述 编程要求 第5关:Pig Latin 任务描述 编程要求 第6关:打印日历 任务描述 编程要求 第1关:结…...

淘宝扭蛋机小程序:开启你的惊喜之旅

随着移动互联网的飞速发展,各种小程序层出不穷,其中,淘宝扭蛋机小程序以其独特的互动性和趣味性,吸引了大量用户。本文将为你详细介绍这款小程序的特色功能、用户体验以及如何使用,助你开启一段惊喜之旅。 一、特色功…...

Jmeter 基于Docker 实现分布式测试

基于Docker 实现分布式测试 制作Jmeter基础镜像制作工作节点镜像启动工作节点启动控制节点遇到的问题 使用Docker 部署Jmeter非常方便,可以省略软件的安装以及配置,比如jdk、jmeter。需要部署多个工作节点可以节省时间。 制作Jmeter基础镜像 下载jmeter…...

Vite与Webpack打包内存溢出问题优雅处理方式

Vite与Webpack打包内存溢出问题处理 文章目录 Vite与Webpack打包内存溢出问题处理1. Vite1. 打包错误提示2. 命令行方式解决3. 配置环境变量方式解决1. 设置变量2. 配置系统的环境变量 2. Webpack1. 打包错误提示2. 命令行方式解决3. 配置环境变量方式解决1. 设置变量2. 配置系…...

sqlalchemy——@listens_for

问:sqlalchemy如何实现:表中指定数据更新时,其time字段自动更新?答:使用listens_for 装饰器来注册事件监听器,确保在项目数据更新时触发相应的处理逻辑。 示例代码如下: # coding: utf-8 impo…...

MySQL进阶之锁(全局锁以及备份报错解决)

锁 全局锁 全局锁就是对整个数据库实例加锁,加锁后整个实例就处于只读状态,后续的DML的写语句,DDL语 句,已经更新操作的事务提交语句都将被阻塞。 其典型的使用场景是做全库的逻辑备份,对所有的表进行锁定&#xff…...

C#实现windows系统重启、关机

1、C#实现windows系统重启、关机 实现原理,使用系统shutdown命令执行: 强制关机: shutdown -s -f -t 0 强制重启: shutdown -r -f -t 0 2、关于shutdown命令详解: C#实现控制Windows系统关机、重启和注销的方法&…...

JS中Set和Map用法详解

目录 1、Set 1.基本用法 2.Set 实例的属性和方法 3.遍历操作 2、Map 1、Set 1.基本用法 ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set本身是一个构造函数,用来生成 Set 数据结构。 const s …...

使用nginx对视频、音频、图片等静态资源网址,加token签权

目前很多静态资源,都可以无权限验证,进行访问或转发,对有价值的资源进行签权,限制转发无法在代码中实现拦截,我们可以使用nginx对视频、音频、图片等静态资源网址,加token签权 如: http://192…...

[每周一更]-(第86期):NLP-实战操作-文本分类

NLP文本分类的应用场景 医疗领域 - 病历自动摘要: 应用: 利用NLP技术从医疗文档中自动生成病历摘要,以帮助医生更快速地了解患者的状况。 法律领域 - 法律文件分类: 应用: 使用文本分类技术自动分类法律文件&#xf…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

【python异步多线程】异步多线程爬虫代码示例

claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...

JavaScript基础-API 和 Web API

在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目,该项目是一个 Spring AI 快速入门的样例工程项目,旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计,每个模块都专注于特定的功能领域,便于学习和…...

【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅

目录 前言 操作系统与驱动程序 是什么,为什么 怎么做 system call 用户操作接口 总结 前言 日常生活中,我们在使用电子设备时,我们所输入执行的每一条指令最终大多都会作用到硬件上,比如下载一款软件最终会下载到硬盘上&am…...

2025年- H71-Lc179--39.组合总和(回溯,组合)--Java版

1.题目描述 2.思路 当前的元素可以重复使用。 (1)确定回溯算法函数的参数和返回值(一般是void类型) (2)因为是用递归实现的,所以我们要确定终止条件 (3)单层搜索逻辑 二…...

基于谷歌ADK的 智能产品推荐系统(2): 模块功能详解

在我的上一篇博客:基于谷歌ADK的 智能产品推荐系统(1): 功能简介-CSDN博客 中我们介绍了个性化购物 Agent 项目,该项目展示了一个强大的框架,旨在模拟和实现在线购物环境中的智能导购。它不仅仅是一个简单的聊天机器人,更是一个集…...