Bluesky勒索软件深度技术分析

news2024/12/26 0:17:32

0 1、 背景介绍

勒索软件作为一种流行的木马,近年来已成为最为常见的安全威胁之一。与其他威胁不同,勒索软件先向受害者表明自己的身份,再通过加密的方式使用户数据资产或计算资源无法正常使用,而恢复数据资产的唯一方法通常是支付高昂的费用。

BlueSky作为近期发现的一种勒索软件变种,在3月份首次出现,在6月末开始爆发。它的一些勒索软件样本以“MarketShere.exe”和“SecurityUpdate.exe”的形式在线分发,在入侵目标之后,BlueSky会加密受感染机器上的文件,然后添加“.bluesky”文件扩展名。同时它还会生成两个文件,分别是:

#DECRYPT FILES BLUESKY#.txt

#DECRYPT FILES BLUESKY#.html

要求受害者访问BlueSky TOR的网站,并按照提供的说明进行操作。

0 2、 病毒分析

BlueSky的执行流程如下:动态加载 API、混淆字符串、采用反调试技术、进行权限提升、生成受害者 ID、对文件进行加密、生成赎金通知书。

图片

1. 动态加载 API

所有的API都通过动态加载的方式获取,首先通过遍历

PEB_LDR_DATA中的InLoadOrderModuleList链表

枚举其中包含的模块。

其中用到了许多反分析技术,包括字符串加密和反调试机制,使其能够混淆Windows API
函数名称并使用间接调用来解析API。此外,BlueSky使用DJB散列函数对API名称进行计算,并将它们与代码中的模糊哈希值进行比较,以便正确导入所需的模块。

图片

2. 混淆字符串

所有的字符串都进行了混淆,使用时通过动态解密的方式获取字符串。

图片

图片

3. 反调试技术

除了以上提到的字符串加密、API 混淆等反调试机制外

程序还调用NtSetInformationThread并使用ThreadHideFromDebugger
API隐藏线程,线程对调试器隐藏后,它将继续运行,但调试器不会收到与该线程相关的事件。该线程可以执行反调试检查,例如代码校验、调试标志验证等。但是,如果隐藏线程中有断点,或者对调试器隐藏了主线程,那么进程就会崩溃,调试器就会卡住。

图片

用 nop 填充函数调用地址处来过反调试。

图片

4. 权限提升

COM提升名称(COM Elevation Moniker)技术允许运行在用户账户控制(UAC)下的应用程序使用提升权限的方法来激活 COM 类,以此来提升
COM 接口权限。该方法的目标接口是 ICMLuaUtil,该接口存在于 CMSTPLUA 组件中,使用 OleViewDotNet 工具查看系统中的
COM 接口属性信息,找到 CMSTPLUA 组件:

图片

BlueSky 使用了这种方法来绕过UAC。

图片

此外,BlueSky 还会调用 RtlAdjustPrivilege 来获取每个文件和进程的权限。

图片

5. 生成受害者 ID

BlueSky 通过计算机卷信息、机器GUID、数字产品ID和安装日期值的MD5哈希,来生成唯一的用户ID:

A11F9CA342F6AF8414D5516688381DD5

并且使用该ID来生成互斥锁:

Global\A11F9CA342F6AF8414D5516688381DD5

图片

图片

解密字符串:

“x25519_public”

“RECOVERYBLOB”

“completed”

用来生成注册表项,保存BlueSky的加密操作数据。

图片

BlueSky 将与加密相关的信息存储在注册表项:

HKCU\Software\A11F9CA342F6AF8414D5516688381DD5

用来恢复信息RECOVERYBLOB

使用ChaCha20+Curve25519+RC4算法进行计算

通过ChaCha20+Curve25519算法对RECOVERYBLOB进行加密。

图片

图片

图片

6. 文件加密过程

与其他勒索软件通常包含文件扩展名列表以识别符合条件的加密文件不同,BlueSky会创建一个在文件加密过程中排除文件的扩展名列表,具体的清单如下:

扩展名:ldf、scr、icl、386、cmd、ani、adv、theme、msi、rtp、diagcfg、msstyles、bin、hlp、shs、drv、wpx、bat、rom、msc、
lnk、cab、spl、ps1、msu、ics、key、msp、com、sys、diagpkg、nls、diagcab、ico、lock、ocx、mpa、cur、cpl、mod、hta、exe、ini、icns、prf、dll、bluesky、nomedia、idx

目录: r e c y c l e . b i n 、 recycle.bin、 recycle.binwindows.bt、$windows.ws、boot、windows、windows.old、system
volume information、perflogs、programdata、program files、program files (x86)、all
users, appdata, tor browser

文件名:#decrypt files bluesky #.txt、#decrypt files bluesky
#.html、ntuser.dat、iconcache.db、ntuser.dat.log、bootsect.bak、autorun.inf、bootmgr、ntldr、thumbs.db

如下图所示,BlueSky
使用多线程队列进行加密。启动的其中一个负责文件加密,另一个负责枚举本地文件系统上的文件,并将挂载的网络共享添加到队列中。这种多线程架构与 Conti
(Ransomware) v3 的代码相似,特别是网络搜索模块是 Conti v3 的精确复制品。但是文件加密例程存在某些差异。例如,Conti v3
使用基于 RSA 和 AES 的文件加密,而BlueSky 使用基于 Curve25519 和 ChaCha20 的文件加密。

图片

BlueSky 的文件加密与 Babuk Ransomware 类似——都使用Curve25519(非对称加密)
为主机生成公钥,并与攻击者的公钥生成共享密钥。生成椭圆曲线密钥对后,BlueSky 计算出共享密钥的哈希值,并使用它为 ChaCha20
算法生成文件加密密钥。最后,它读取文件缓冲区,使用 ChaCha20(对称加密) 对其进行加密并替换原始文件的内容,如下图所示。

图片

图片

7. 赎金通知书

加密完成之后会生成赎金通知的文档和网页,其中恢复 ID 就是保存在注册表项 RECOVERYBLOB 中的值。

图片

图片

图片

0 3、 防范建议

针对勒索软件的防护六方云希望用户做到以下几点:

1、规范上网行为,不下载安装未知的软件,不点开来历不明的文档、图片、音频视频等;

2、定期更换域控、数据库、服务器上的管理员密码;

3、定期更新病毒库,定时组织内网进行全盘扫描;

4、定期更新补丁,修复漏洞;

5、定期检查防火墙及安全软件的防护日志,及时发现异常并解决;

6、定期离线备份或异地备份重要数据;

7、修改数据库默认端口,防止被扫描器爆破。

8、进行严格的隔离,有关系统、服务尽量不开放到互联网上,内网中的系统也要通过防火墙、VLAN或网闸等进行隔离。

新病毒库,定时组织内网进行全盘扫描;

4、定期更新补丁,修复漏洞;

5、定期检查防火墙及安全软件的防护日志,及时发现异常并解决;

6、定期离线备份或异地备份重要数据;

7、修改数据库默认端口,防止被扫描器爆破。

8、进行严格的隔离,有关系统、服务尽量不开放到互联网上,内网中的系统也要通过防火墙、VLAN或网闸等进行隔离。

最后

分享一个快速学习【网络安全】的方法,「也许是」最全面的学习方法:
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)

2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等

3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)

4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现

5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固

6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)

在这里插入图片描述

恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k。

到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?

想要入坑黑客&网络安全的朋友,给大家准备了一份:282G全网最全的网络安全资料包免费领取!
扫下方二维码,免费领取

有了这些基础,如果你要深入学习,可以参考下方这个超详细学习路线图,按照这个路线学习,完全够支撑你成为一名优秀的中高级网络安全工程师:

高清学习路线图或XMIND文件(点击下载原文件)

还有一些学习中收集的视频、文档资源,有需要的可以自取:
每个成长路线对应板块的配套视频:


当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。

因篇幅有限,仅展示部分资料,需要的可以【扫下方二维码免费领取】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/183155.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

收藏破万,谷歌联手哈佛发布首个炼丹指南:教你科学化「调参」

调参不能只靠直觉,也是一门大学问! 虽然算法工程师往往调侃自己是「调参侠」,但调参这件事可能真没想象中那么简单。 比如,你是不是经常会有疑惑到底该选择哪个优化器?一个batch放多少数据?超参数如何设置…

人工智能英文缩写怎么读,人工智能英文缩写大全

1、人工智能英文缩写是什么? AI。 人工智能,英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术以及应用系统的一门技术科学。“十三五”以来,我国高度重视人工智能的发展,国内科研机构也围绕人工智能…

【Pytorch项目实战】之机器翻译:编码器-解码器、注意力机制AM

文章目录机器翻译 - 中英文翻译算法一:编码器-解码器(Encoder - Decoder)算法二:注意力机制(Attention Model,AM)2.1为何要引入注意力机制?2.2注意力机制的语义向量表示C计算2.3每个…

2023年首更,警惕6本SCISSCI期刊被剔除

2023年1月17日,Web of Science核心期刊目录首次更新。此次SCIE & SSCI期刊目录更新,与上次更新(2022年12月)相比,共有6本期刊被剔除出SCIE & SSCI期刊目录,详情如下: 公众号“Unionpub…

Redis实战9-全局唯一ID

发布优惠券的时候,每个店铺都可以发布优惠券,当用户抢购的时候,优惠券表中的id如果使用数据库的自增长ID会存在以下问题: 1:id的规律太明显,容易被刷 2:当数据量很大的时候,会受到单表数据的限…

三、分布式id,lua脚本,分布式锁,消息队列

文章目录优惠卷秒杀1.redis实现分布式ID2.优惠券秒杀下单3.超卖问题4.lua脚本5.分布式锁6.redis stream消息队列实现异步秒杀7.redis消息队列list实现消息队列PubSub实现消息队列stream实现消息队列stream的消息队列-消费者组学习黑马点评项目整理总结:https://www.bilibili.co…

5 个用于自动化的杀手级 Python 脚本

Python 是一种功能强大的语言,广泛用于自动执行各种任务。无论您是开发人员、系统管理员,还是只是想通过自动化日常任务来节省时间的人,Python 都能满足您的需求。 这里有 5 个 Python 脚本,可以帮助您自动执行各种任务 文章目录…

Spring Boot之Swagger

文章目录零 项目源码一 Swagger简介二 Spring Boot集成Swagger2.1 环境准备2.2 配置Swagger2.3 配置文档信息2.4 配置扫描接口2.5 配置开关Swagger2.6 配置API分组2.7 配置实体类2.8 常用注解零 项目源码 Swagger源码免费下载 一 Swagger简介 Swagger官网swagger是一款可以根…

深入开源和金融技术世界,《新程序员005》来了!

亲爱的 CSDN 以及《新程序员》的读者朋友们,《新程序员005:开源深度指南 & 新金融背后的科技力量》正式与大家见面!现在,点击下方封面,即可订阅,立享电子书,纸质书将在春节后为大家寄出&…

9、循环语句

目录 一、while循环语句 二、do…while循环语句 三、for循环语句 1. for语句 2. foreach语句 一、while循环语句 while语句也称条件判断语句,它的循环方式为利用一个条件来控制是否要继续反复执行这个语句。 语法如下: 当条件表达式的返回值为真时…

【并发编程十三】c++原子操作(1)

【并发编程十三】c原子操作(1)一、改动序列1、改动序列2、预测执行二、原子操作及其类别1、原子操作2、非原子操作3、原子类型三、标准原子类型1、标准原子类型的两种实现方式2、原子操作的用途3、原子操作的宏四、操作std:atomic_flag1、简介2、使用说明…

jsp ssm宿舍报修换宿管理系统-宿管idea

目 录 1 1绪论 1 1.1 课题研究的背景 1 1.2 课题研究的意义 1 1.3 本文主要工作 1 2 关键技术介绍 3 2.1 JSP技术的简介 3 2.2 SSM框架 3 2.3 MYSQL数据库 4 2.4 MySQL环境配置 4 2.5 B/S架构 4 3 需求分析与可行性分析 5 3.1功能需求分析…

年后公司缺人,面了13个测试员,发现他们都有一个通病.....

公司缺人,面了不少测试,结果竟然没有一个合适的。 一开始瞄准的就是中级的水准,也没指望来大牛,提供的薪资在10-20k,面试的人很多,但平均水平很让人失望。 看简历很多都是3年工作经验,但面试中…

数据不幸丢失怎么办?恢复丢失数据的 7 大方法

有时,您的系统可能会无意中被数据丢失等不可预见的事件唤醒。数据丢失已成为我们数字经济中的普遍现象,其发生的方式多种多样,包括意外删除、病毒攻击、无法访问的分区、数据损坏,甚至更灾难性的情况,如数据盗窃。 不…

Spring进阶:3步引入MybatisPlus多数据源,详细配置及原理解析

前言 MybatisPlus(MP)作为mybatis的增强工具,提供了配置多数据源的扩展,通过简单的几步配置,即可使用注解轻松切换数据源。 以下是dynamic-datasource提供的功能列表: 使用方法 1,引入dynamic-datasource-spring-bo…

第六章 数组、排序和查找

一、数组(P156) 1. 数组介绍 数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。即:数(数据)组(一组)就是一组数据2. 数组的使用 2.1 使用方式1:动态初始化 数组的定义:数据类型 …

uniCloud 微信小程序登陆全流程demo

ps: 博主一向不喜欢废话,直接说几个点,你悟了就直接去试,可以不用看完,还是得自己去试印象才深刻,博主写博文就怕自己以后忘记做个笔记顺便能帮一个是一个 1、你要获取unionid 肯定得访问外网,u…

【C++初阶】六、STL---string(总)|为什么学习string类|标准库中的string类|string 类常用接口

目录 一、为什么学习string类 1.1 C语言中的字符串 1.2 字符串在OJ面试中 二、标准库中的string类 2.1 string 介绍 2.2 编码格式 三、string 类常用接口 3.1 Member functions(成员函数) 3.1.1 构造函数(Construct) 3.…

C++11 并发指南七(C++11 内存模型一:介绍)

C11 并发指南七(C11 内存模型一:介绍) 文章目录C11 并发指南七(C11 内存模型一:介绍)第六章主要介绍了 C11 中的原子类型及其相关的API,原子类型的大多数 API 都需要程序员提供一个 std::memory_order(可译为内存序,访…

面试第一次被问到SDK测试,当时就懵了

01、是什么 客户端SDK是为第三方开发者提供的软件开发工具包,包括SDK接口、开发文档和Demo示例等。SDK和应用之间是什么关系呢?以云信即时消息服务为例,如下图所示,应用客户端通过调用云信SDK接口,进行消息等数据查询…