【病毒分析】Babyk加密器分析-NAS篇

news2024/12/25 9:28:55

1.前情提要

继上篇分析了关于Babyk加密器在Windows环境的行为特征,本篇是针对NAS系统的相关分析。

2.总体行为

图片

3.密钥下发(Builder.exe)

这里可以通过VS生成了Builder.exe来实现对其Builder过程进行分析,可以看到主要是对这部分文件的处理与释放

图片

文件释放列表及作用:

无法复制加载中的内容

流程图:

图片

逻辑分析:

1. 读取参数,第一个参数是文件夹路径,第二个是指定密钥文件

图片

2. 根据参数1的文件路径,kp.curve25519与ks.curve25519进行拼接,用于后续存储密钥

图片

3. 利用随机数函数CryptGenRandom来产生一个私钥,再利用该私钥配合curve25519算法生成一个公钥

图片

4. 或者看是否存在第三个参数,有指定私钥的文件,利用该文件内的私钥配合curve25519算法生成一个公钥

图片

5. 将私钥和外部的note.txt勒索信写入到加密器中,将私钥写入到解密器中

图片

6. 将生成的私钥和公钥写入到kp.curve25519和ks.curve25519文件中

图片

4.密钥产生程序

4.1 逆向分析(keygen.exe)

整体流程就是调用随机数函数SystemFunction036,产生了32位的随机数

图片

其中systemFunction036是cryptbase.dll中的函数

图片

之后就是经过了Curve25519算法的密钥生成,得出了一个公钥和一个私钥

图片

5.NAS

5.1 目录结构

存在一个build.bat批处理文件和main.go代码文件

图片

5.2 单独构建脚本(build.bat)

build.bat:

@echo off

set GOOS=linux
set GOARCH=386
go build -o e_nas_x86.out

set GOOS=linux
set GOARCH=arm
go build -o e_nas_arm.out

pause

该脚本会生成两个版本的文件,一个是linux下intel架构的程序,另外一个是linux下arm架构的程序。

5.3 加密器分析(e_nas_x86)

5.3.1 整体流程:

图片

5.3.2 逆向分析:

首先获取勒索信的长度,并将其赋值到note_content,用于后续勒索信的写入。

图片

5.3.2.1 读取参数

判断是否存在输入参数,如果有就对其进行遍历,如果没有那就打印帮助说明e_nas_x86.out /path/to/be/encrypted,意味着参数1是需要指定加密路径。

图片

遍历文件,对文件进行过滤加密,不是文件就继续递归

图片

5.3.2.2 路径过滤

目录的判断是有遇到过滤目录的话,就会选择跳过,不做加密操作,最后遍历完后,会写入勒索信。

5.3.2.3 过滤目录
/proc
/boot
/sys
/run
/dev
/etc
/home/httpd
.system/thumbnail
.system/opt
.config
.qpkg
/mnt/ext/opt

图片

5.3.2.4 过滤文件

.babyk
README_babyk.txt

如果是文件,会判断是否是加密后缀的文件(.babyk),或者是否是勒索信(README_babyk.txt),如果都不是,会调用main_main_func1_gowrap1函数进行加密流程,否则就跳过。

图片

5.3.2.5 文件加密

main_main_func1_gowrap1函数

这里主要就是调用main_encrypto_file进行加密实现

图片

5.3.2.6 加密核心(main_encrypto_file函数)

基本的流程和windows差不多,一个是在生成IV和Key的过程换成了sha256,其次就是最后的流加密算法换成了Chacha20。

图片

生成加密私钥和公钥,并结合黑客的公钥生成共享密钥,最后将文件名称修改为加密文件名称。

图片

利用共享密钥生成IV和KEY

图片

对文件进行加密,然后将加密当前文件生成的公钥和加密标志“choung dong looks like hot dog!”写入到文件末尾

这里会对文件的大小进行计算,来选择合适大小的加密大小。

计算方法:根据需要加密文件的大小来进行判断,如果大于0x1400000,就属于大文件,对其进行分块进行循环加密,一个块大小为0xA00000,如果小于等于0x1400000,并且大于0x400000,那就一次只加密0x400000大小的文件内容,如果小于0x400000,文件大小就是加密大小,全加密。

图片

图片

5.3.2.7 加密后缀

图片

5.4 总结

该架构的设计因为加密的系统是NAS文件存储系统,并未进行多余的服务关闭等功能,只是做了简单的目录过滤,然后就开始了加密,加密完毕后写入公钥和加密标志并且会对每个目录下写入勒索信。

6.安全建议

6.1 风险消减措施

资产梳理排查目标:根据实际情况,对内外网资产进行分时期排查

服务方式:调研访谈、现场勘查、工具扫描

服务关键内容:流量威胁监测系统排查、互联网暴露面扫描服务、技术加固服务、集权系统排查

图片

6.2 安全设备调优

目标

通过对安全现状的梳理和分析,识别安全策略上的不足,结合目标防御、权限最小化、缩小攻击面等一系列参考原则,对设备的相关配置策略进行改进调优,一方面,降低无效或低效规则的出现频次;另一方面,对缺失或遗漏的规则进行补充,实现将安全设备防护能力最优化。

图片

主要目标设备

网络安全防护设备、系统防护软件、日志审计与分析设备、安全监测与入侵识别设备。

6.3 全员安全意识增强调优

目标:

通过网络安全意识宣贯、培训提升全方位安全能力

形式:

培训及宣贯

图片

线下培训课表

若无法组织线下的集体培训,考虑两种方式:

1.提供相关的安全意识培训材料,由上而下分发学习

2.组织相关人员线上开会学习。线上培训模式。

图片

线上学习平台

7.团队介绍

solar团队数年深耕勒索解密与数据恢复领域,在勒索解密和数据恢复领域建立了良好的声誉,以高效、安全、可靠的解决方案赢得了客户的信任。无论是个人用户还是大型企业,都能提供量身定制的服务,确保每一个被勒索软件侵害的数据都能够恢复到最佳状态,同时在解密数据恢复后,提供全面的后门排查及安全加固服务,杜绝二次感染的风险。同时,solar团队坚持自主研发及创新,在攻防演练平台、网络安全竞赛平台、网络安全学习平台方面加大研发投入,目前已获得十几项专利及知识产权。团队也先后通过了ISO9001质量管理体系、ISO14000环境管理体系、ISO45001职业安全健康管理体系 、ITSS(信息技术服务运行维护标准四级)以及国家信息安全漏洞库(CNNVD)技术支撑单位等认证,已构建了网络安全行业合格的资质体系 

8.数据恢复服务流程

多年的数据恢复处理经验,在不断对客户服务优化的过程中搭建了"免费售前+安心保障+专业恢复+安全防御"一体化的专业服务流程。

① 免费咨询/数据诊断分析

       专业的售前技术顾问服务,免费在线咨询,可第一时间获取数据中毒后的正确处理措施,防范勒索病毒在内网进一步扩散或二次执行,避免错误操作导致数据无法恢复。

       售前技术顾问沟通了解客户的机器中毒相关信息,结合团队数据恢复案例库的相同案例进行分析评估,初步诊断分析中毒数据的加密/损坏情况。

② 评估报价/数据恢复方案

       您获取售前顾问的初步诊断评估信息后,若同意进行进一步深入的数据恢复诊断,我们将立即安排专业病毒分析工程师及数据恢复工程师进行病毒逆向分析及数据恢复检测分析。

       专业数据恢复工程师根据数据检测分析结果,定制数据恢复方案(恢复价格/恢复率/恢复工期),并为您解答数据恢复方案的相关疑问。

③ 确认下单/签订合同

       您清楚了解数据恢复方案后,您可自主选择以下下单方式:

双方签署对公合同:根据中毒数据分析情况,量身定制输出数据恢复合同,合同内明确客户的数据恢复内容、数据恢复率、恢复工期及双方权责条款,双方合同签订,正式进入数据恢复专业施工阶段,数据恢复后进行验证确认,数据验证无误,交易完成。

④ 开始数据恢复专业施工

      安排专业数据恢复工程师团队全程服务,告知客户数据恢复过程注意事项及相关方案措施,并可根据客户需求及数据情况,可选择上门恢复/远程恢复。

      数据恢复过程中,团队随时向您报告数据恢复每一个节点工作进展(数据扫描 → 数据检测 → 数据确认 → 恢复工具定制 → 执行数据恢复 → 数据完整性确认)。

⑤ 数据验收/安全防御方案

      完成数据恢复后,我司将安排数据分析工程师进行二次检查确认数据恢复完整性,充分保障客户的数据恢复权益,二次检测确认后,通知客户进行数据验证。

      客户对数据进行数据验证完成后,我司将指导后续相关注意事项及安全防范措施,并可提供专业的企业安全防范建设方案及安全顾问服务,抵御勒索病毒再次入侵。

更多资讯 扫码加入群组交流

图片

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

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

相关文章

Excel 学习手册 - 精进版(包括各类复杂函数及其嵌套使用)

作为程序员从未想过要去精进一下 Excel 办公软件的使用方法,以前用到某功能都是直接百度,最近这两天跟着哔哩哔哩上的戴戴戴师兄把 Excel 由里到外学了一遍,收获良多。程序员要想掌握这些内容可以说是手拿把掐,对后续 Excel 的运用…

Elastic 线下 Meetup 将于 2024 年 7 月 27 号在深圳举办

2024 Elastic Meetup 深圳站活动,由 Elastic、腾讯、新智锦绣联合举办,现诚邀广大技术爱好者及开发者参加。 时间地点 2024年 7 月 27 日 13:30-18:00 活动地点 中国深圳 南山区海天二路 33 号腾讯滨海大厦 北塔 3 楼多功能厅 ​ 活动流程 14:00-15…

如何轻松统管虚拟化和容器环境?一文了解 SmartX 虚拟化容器融合基础设施

随着越来越多的企业完成应用容器化改造,应用负载的运行环境也变得越来越复杂——近 60% 的企业正在或计划同时采用虚拟化环境和容器环境运行应用系统*,以满足不同业务在性能和敏捷性等方面的不同需求。不过,虚拟化和容器平台通常由不同的厂商…

基于单片机STC89C52和GSM实现的远程拨号开锁设计(含文档、源码与proteus仿真,以及系统详细介绍)

本篇文章论述的是基于单片机STC89C52和GSM实现的远程拨号开锁设计的详情介绍,如果对您有帮助的话,还请关注一下哦,如果有资源方面的需要可以联系我。 目录 摘要 仿真图 单片机系统流程图 实物图 代码 系统论文 资源下载 摘要 本文介…

汇编教程1

本教程主要教大家如何使用vscode插件编写汇编语言,这样更方便,不用在32位虚拟机中编写汇编语言,后续的汇编实验代码都是使用vscode编写,话不多说,开始教学 安装vscode 如果已经安装过vscode,可以跳过这一…

Spring事务原理、Spring事务传播机制

Spring的EnableTransactionManagement 和Transactional原理 Configuration EnableTransactionManagement public class AppConfig { // 配置类内容 } Service public class MyService { Transactional public void processPayment(Payment payment) { // 这里是业…

聚焦 Navicat 17 新特性 | 数据字典提升数据结构清晰度

随着 Navicat 17 的发布,在业界引起了广泛的共鸣与热议。我们曾深入剖析其众多革新特性,包括模型设计创新与优化、高效的查询与配置、用户界面交互体验再升级,以及它如何原生适配国产 Linux ARM 平台和麒麟操作系统等,这些新特性实…

Maven学习——Maven的下载、安装与配置(详细攻略!)

目录 前言 1.下载与安装 2.配置Maven的环境变量 3.配置Maven的本地仓库 4. 配置Maven的镜像远程仓库 前言 我在之前写了一篇博客,是介绍Maven的基本概念和下载安装,但是由于篇幅过长,Maven的下载与安装写的并不详细🐶&#x…

redis删除策略和淘汰策略

1、redis的删除策略 Redis 是一种内存级数据库,数据都存在内存中,但是针对于已经过期的数据,reids 不 会立刻删除只是会存储在 expires 中,当执行删除策略的时候,才会从 expires 中寻找对应的数据存储的地址&#xff…

React@16.x(60)Redux@4.x(9)- 实现 applyMiddleware

目录 1,applyMiddleware 原理2,实现2.1,applyMiddleware2.1.1,compose 方法2.1.2,applyMiddleware 2.2,修改 createStore 接上篇文章:Redux中间件介绍。 1,applyMiddleware 原理 R…

二、GD32F407VET6使用定时器点灯

零、所需文件及环境: 1、第一章建立好的LED灯闪烁程序 2、编译环境MDK5(KEIL5) 3、一个GD32F407VET6硬件 4、一个下载器j-link 或 st-link等 5.代码编辑器 Notepad (可以不要 用记事本也能编译 都是习惯的问题) 壹、复制LED灯闪烁程序…

Spark的动态资源分配算法

文章目录 前言基于任务需求进行资源请求的整体过程资源申请的生成过程详解资源申请的生成过程的简单例子资源调度算法的代码解析 申请资源以后的处理:Executor的启动或者结束对于新启动的Container的处理对于结束的Container的处理 基于资源分配结果进行任务调度Pen…

【事件排查】网络问题排查H3C无线优化方案

目录 背景 问题一 排查思路 解决方法 问题二 排查思路 解决方法 背景 公司进行搬迁,网络进行了调整 基于上篇文章《H3C Intelligent Management Center无线认证新增设备如何配置》 来做了一些网络配置,公司后续出现以下2个问题: …

【大型实战】企业网络实验(华为核心交换、ESXI7.0vmware虚拟机、DHCP中继、服务端网络及用户端网络配置)

需求 实验 vmware网络配置(企业内部一般为ESXI) 这样服务器虚拟机使用192.168.200.X网段才能与用户侧互通 vmware虚拟机配置(DHCP服务器网络配置) 打开网络管理页面 nmtui重置一下网络连接(重启网卡) …

VUE3实现两张图片滑动对比效果实现

封装组件 <template><div id"bottomImg" class"bottomImg" :style"{ height: imgHeigth, width: imgWidth, backgroundImage: url( props.bottomImg ) }"><span class"imgLabel">{{ props.bottomLabel }}</sp…

Dify v0.6.14源码部署

一.前置条件 1.安装和配置poetry 通过Windows PowerShell安装poetry&#xff1a; (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -关于poetry相关配置参考文献[1]。 2.下载dify和启动中间件容器 克隆Dify v0.6.14代码&am…

Ubuntu/Kali简洁高效安装最新版的docker-compose

基于docker已安装的情况下&#xff0c;通过执行一下代码完成docker-compose的安装 sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep \"tag_name\": | sed …

Unity不用脚本实现点击按钮让另外一个物体隐藏

1.首先在场景中创建一个按钮和一个其他随便什么东西 2.点击按钮中的这个加号 3.然后将刚刚你创建的物体拖到这里来 4.然后依次点击下面这些给按钮绑定事件 5.运行游戏并点击按钮&#xff0c;就会发现拖进来的物体消失了 总结&#xff1a;如果按钮的功能单一&#xff0c;可以使用…

数据结构之线性表表示集合详解与示例(C,C#,C++)

文章目录 基本特征线性表的特点&#xff1a;线性表的表示方法&#xff1a;C、C#和C语言如何实现一个线性表表示集合1. C实现2. C#实现3. C实现 总结 线性表是计算机数据结构中的一个基本概念&#xff0c;它是一种最简单的抽象数据类型。在线性表中&#xff0c;数据元素之间的关…

相对定位语法:css+xpath基础语法使用-定位页面元素

文章目录 CSS相对定位获取元素关系定位顺序关系 XPath相对定位基础语法顺序关系-通过索引获取元素选取元素 总结 ✨✨✨学习的道路很枯燥&#xff0c;希望我们能并肩走下来&#xff01; 编程真是一件很奇妙的东西。你只是浅尝辄止&#xff0c;那么只会觉得枯燥乏味&#xff0c…