“暗黑天使”降临:DarkAngels勒索病毒全解密

news2024/10/7 4:28:39

恶意文件分析

恶意文件描述

近期,深信服深盾终端实验室在运营工作中发现了一种 ELF 格式的勒索软件,该勒索软件近期开始出现,其释放的勒索信中的 Onion
链接似乎已关闭,这表明该勒索软件可能仍在开发中。

经过分析,发现该勒索软件与今年5月出现的 DarkAngels 勒索信内容非常相似。而 DarkAngels 与 Babuk 勒索软件也存在相似之处。
本文主要分析最新捕获的针对 Linux 平台的 ELF 格式的勒索软件以及针对 Windows 平台的 DarkAngels
两种格式的样本,探究其中的相似与不同之处。

左图为针对 Linux 系统下的勒索信内容,右图为针对 Windows 系统下的勒索信内容。

恶意文件分析

(一)Windows 版本分析

总体功能框架

图片

使用静态分析,发现恶意文件是基于 32 位 GUI (图形用户界面)的二进制文件。

获取命令行参数,通过调用 SetProcessShutdownParameters(0,0) ,恶意软件为指定进程设置它相对于其它程序的关闭顺序,参数为
0,意味着较其他进程关闭得最迟。

终止服务

为了确保在系统加密过程中不中断其加密过程,恶意软件会枚举和检索受害者机器上所有可用的服务,在加密系统之前尝试终止服务。

打开服务控制管理器数据库 (0xF003F = SC_MANAGER_ALL_ACCESS)。

调用 OpenServiceA,打开一个目标服务(0x2c = SERVICE_STOP )。

查询服务状态,判断上一步骤参数是否正确传递。

检索每个依赖于指定服务的服务的名称和状态;也就是说,在依赖服务能够运行之前,指定的服务必须运行 (0x1 =
SERVICE_ACTIVE)。

终止服务 (0x1 = SERVICE_CONTROL_STOP)。

终止的服务列表

终止进程

函数 CreateToolhelp32Snapshot() 获得当前运行进程的快照后,我们可以利用 process32First
函数来获得第一个进程的句柄。

将当前进程与硬编码中的进程表对比,如果当前进程句柄与表中匹配。则打开指定进程的句柄,并传入 0x1 参数(0x1 =
PROCESS_TERMINATE),随后终止进程,最后关闭该进程句柄。

继续枚举下一个进程。

重复上述操作,直至遍历完所有进程。

终止进程列表

防止恢复

(1)删除卷影

(2)清空回收站

使用 SHEmptyRecycleBinA() API,恶意软件会从回收站中删除所有项目,以确保加密后不会恢复已删除的文件。

最大化执行加密操作

首先创建互斥变量 DarkAngels:

(1)当命令行参数中包含"shares"

使用 NetShareEnum () API 检索有关服务器上每个共享资源的信息。

检查 $ADMIN 共享并开始加密文件:

(2)当命令行参数中包含 “path”

勒索软件会调用 GetDriveTypeW() API 来找出连接到受感染机器的网络驱动器。一旦识别出网络驱动器,勒索软件就会开始加密文件。

(3)当命令行参数中既不包含 "shares"又不包含 “paths”

勒索软件会递归遍历所有本地驱动器并加密所有目标文件。加密后,文件被赋予 .crypt 扩展名。

遍历所有本地驱动器图片

枚举卷及本地磁盘

获取驱动器类型,判断路径是否有效GetDriveTypeW(0x1),如果路径有效,则对卷进行枚举。调用
GetVolumePathNamesForVolumeName 获取路径信息,查看该卷是否被安装,若未被安装,则调用SetVolumeMountPointW
安装未被安装的卷。

枚举网络资源

文件加密

(1)被加密文件添加扩展

调用 SetFileAttributesW(0x80 = FILE_ATTRIBUTE_NORMAL )
设置文件属性,取消文档的只读、隐藏、系统、存档权限。调用 MoveFileExW 函数,被加密文件添加扩展 .crypt。

调用CreateFileW(0xC0000000 = GENERIC_READ | GENERIC_WRITE,0x3 =
OPEN_EXISTING),打开一个已经存在的文件。

(2)处理密钥

调用 CryptGenRadom 随机生成 AES 密钥,之后使用Session Key 中的 RSA 公钥对 AES 密钥进行加密。

(3)文件加密大小

从文件头部开始遍历文件,先加密 0-64,接着加密 64-5242880,其次加密 5242880-20971520,最后加密20971520 之后的字符。

(3)不进行加密的文件、目录及扩展

不进行加密的目录:

AppData

|

Boot

—|—

Windows

|

Windows.old

不进行加密的文件:

autorun.inf

|

boot.ini

|

bootfont.bin

—|—|—

不进行加密的文件扩展:

.babyk 是著名的 Babuk 勒索软件扩展名,表明 DarkAngels 与 Babuk 勒索软件可能存在关联。

.exe

|

.dll

|

.babyk

—|—|—

DarkAngels 在加密文件的末尾附加了一个签名 “choung dong looks like hot dog!!”,表明该勒索软件与 Babuk
相关。

(二)Linux版本分析

总体功能框架

1、定制化加密路径

该勒索软件二进制文件需要一个文件夹作为加密参数。给定文件夹路径后,DarkAngels 会加密文件夹中的文件并将 .crypted
扩展名附加到加密文件中。如果没有添加需要加密的路径,则会显示 Usage:%s [-m (10-20-25-33-50) ] Start Path 。

图片

该恶意程序使用 pthread_create 函数创建了一个新的线程,新的线程通过调用 start_routine 执行主模块。

图片

start_routine 函数为该勒索软件主要功能模块,分析内容如下所示:

(1)被加密文件添加文件扩展 .crypted

图片

(2)将添加过 .crypted 扩展的文件设置写锁

调用 open64 函数打开目标文件,并且使用 fcnt 函数将目标文件设置为 F_WDLCK 写锁,随后 close 关闭目标文件。

图片

(3)终止进程

终止 pid>10 且占用文件的进程,尽可能多的加密文件且避免在加密过程中造成文件的损坏。

图片

(4)将进程的工作目录修改为"/"根目录,创建守护进程。

图片

(5)勒索信

打开另一个与目标文件同名但附加了README_TO_RESTORE 扩展的文件,写入了勒索信内容并关闭文件。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gpcZQ3wv-1673936172055)(null)]

写入的勒索信内容如下所示:

图片

(6)避免加密的文件扩展、目录、文件

不进行加密的文件扩展:

图片

不进行加密的目录:

图片

不进行加密的文件:

图片

(7)加密

打开被添加 .crypted 扩展的文件,调用 lseek 和 write 函数写入已加密的内容。

图片

(8)加密记录

所有被加密文件存储在 wrkman.log.0 文件中。

图片

IOCs

Windows 版本

Sha256 38e05d599877bf18855ad4d178bcd76718cfad1505328d0444363d1f592b0838

Linux 版本

Sha256 3b56cea72e8140a7044336933cf382d98dd95c732e5937a0a61e0e7296762c7b

处置建议

1. 避免将重要服务在外网开放,若一定要开放,需增加口令复杂度,避免使用弱口令。

2. 避免打开可疑或来历不明的邮件,尤其是其中的链接和附件等,如一定要打开未知文件,请先使用杀毒软件进行扫描。

3. 安装信誉良好的防病毒/反间谍软件,定期进行系统全盘扫描,并删除检测到的威胁,按时升级打补丁。

4. 使用官方和经过验证的下载渠道,使用正版开发人员提供的工具/功能激活和更新产品,不建议使用非法激活工具和第三方下载器,因为它们通常用于分发恶意内容。

5.重要的数据最好双机备份或云备份。

最后

分享一个快速学习【网络安全】的方法,「也许是」最全面的学习方法:
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全网最全的网络安全资料包免费领取!
扫下方二维码,免费领取

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

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


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

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

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

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

相关文章

AtCoder Beginner Contest 281 (A-F,口胡G)青大acmer 日常vp

A - Count Down 输出小于等于nnn的数 代码 B - Sandwich Number 题意 问字符串是否是第一个和最后一个字符是大小写,中间的字符是100000−99999100000-99999100000−99999之间的数字。 暴力模拟即可,需要注意的例子是A0100000AA0100000AA0100000A 代码 …

day14-常用API

1.API 1.1 API概述【理解】 什么是API ​ API (Application Programming Interface) :应用程序编程接口 java中的API ​ 指的就是 JDK 中提供的各种功能的 Java类,这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的&#xff…

VScode-git提交 无法推送refs到远端

在将代码同步到远端仓库时,弹窗提醒”无法推送refs到远端。您可以试着运行”拉取”功能,整合您的更改“ 但尝试后发现“拉取”功能也无法解决问题,最后是因为文件过大原因,在这里记录一下解决方法,并整理了另一种可能…

传输层协议:套接字Socket

介绍 socket是一种操作系统提供的进程间通信机制。 在操作系统中,通常会为应用程序提供一组应用程序接口(API),称为套接字接口(英语:socket API)。应用程序可以通过套接字接口,来使…

大数据分析案例-基于决策树算法构建金融反欺诈分类模型

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

春节期间外贸老鸟们都会掌握的那些事(内含祝福话术及邮件模板)

中国外贸规模在长期疫情的大环境下,外贸业界克服诸多困难,实现了量稳质升。随着我们迈入2023年,外贸人除了需要继续“强身健体”外,同时也将面临更多的挑战,本期Boom将从四个维度给大家分享临近中国春节期间&#xff0…

入门PostgreSQL,pg的历史,为什么说pg是国产化的方向,与mysql的比较

目录一、PG简介1、PG的历史2、PG的社区3、PostgreSQL与MySQL的比较一、PG简介 PostgreSQL 是一个免费的对象-关系数据库服务器(ORDBMS),在灵活的BSD许可证下发行。 PostgreSQL 开发者把它念作 post-gress-Q-L。 PostgreSQL 的 Slogan 是 “世界上最先进的开源关系…

python-MySQL数据库基础(三)MySQL与python交互

MySQL与python交互 用python代码来连接数据库,执行SQL语句,来查询到数据库中的数据。 当一张表中的数据量比较多时,而我们只需要查询其中的某个字段数据,直接查询会导致效率降低,此时就需要建立分表。 python操作MySQ…

君乐宝,高端之路不好走

文|螳螂观察 作者|kinki 近日,奶粉巨头雅培发表声明称,将逐步停止中国大陆市场的婴幼儿和儿童营养产品的运营和销售,一直以来,雅培都是中国奶粉市场前十名的“常客”,但近年却跌出了“前十”的位置。 雅培的退出&am…

2023年DataWhale 1月Free Excel 第三次打卡

第三章 Excel的表合并 Excel的合并计算工具可以快速完成多个表的行列记录合并。 1.多表行合并 问题:在3个消费表格中,每个客户的消费金额不同,使用多表合并功能统计每个客户消费的总金额。 具体步骤: 1.选择需要汇总的单元格…

ZooKeeper 技术内幕|Leader 选举是一个什么样的过程

几个问题,引发思考: 什么时候 leader 选举? 选举的过程? 选举过程中,是否能提供服务? 选举结果,是否会丢失数据? 服务器角色 2 个小问题: 服务器节点有多少角色&…

如何实现连杆码垛机械臂的逆解计算?

1. 连杆码垛机械臂介绍 连杆码垛机器人是工业应用场景中常用的一种机械臂,常用于简单的大负载搬运作业场景。常见的连杆码垛机械臂都是4个自由度,相较于6轴和7轴的机械臂成本较低。 连杆码垛机械臂的运动特性是:末端始终平行于地面。第一个平…

【算法】一篇文章弄清楚KMP算法的实现

目录 前言: 一.KMP算法简介: 二.next数组的介绍及实现 三.next数组的优化 四.伪代码和完整代码的实现 总结: 博客主页:张栩睿的博客主页 欢迎关注:点赞收藏留言 系列专栏:c语言学习 家人们写博客真…

小白的性能测试探索之路(1)

​​​​​​​ 某一天,领导突然就拉了个会说,我们成立稳定性专项,以测试为主力提升服务的整体稳定性? 当时我的内心是:“what”,性能测试我完全没接触过呀,i am a little tester~而…

华为MPLS-HubSub组网实验配置

目录 配置接口IP地址以及底层IGP协议 配置MPLS LDP协议 Sub与Hub建立Vpnv4邻居 配置PE与CE对接命令 Sub-PE与CE对接配置 Hub与CE对接配置 发现问题 PE与CE之间都采用EBGP方式进行路由传递 MPLS隧道——Hub&Spoke组网_静下心来敲木鱼的博客-CSDN博客_hub spokehttps…

Flume第二章:企业案例

系列文章目录 Flume第一章:环境安装 Flume第二章:企业案例 文章目录系列文章目录前言一、复制和多路复用1.案例需求2.案例实现3.结果查看二、负载均衡和故障转移1.需求案例2.案例实现3.结果查看三、聚合1.案例需求2.案例实现3.查看结果总结前言 这次我…

用python写的代码输入助手小程序(附源码)

命令太多,很容易忘记,还有很多代码片段想保存下来用到的时候能够快速输入,提高开发效率。在网上找了很多,发现都不是自己想要的。于是就用python写了一个自己用的代码输入助手小程序,我自己已经用了很长时间了&#xf…

工业中常用流量计及其测量原理

一、流量计单位 工程上常用单位m3/h,它可分为瞬时流量(Flow Rate)和累计流量(Total Flow),瞬时流量即单位时间内过封闭管道或明渠有效截面的量,流过的物质可以是气体、液体、固体;累…

Introduction to Multi-Armed Bandits——02 Stochastic Bandits

Introduction to Multi-Armed Bandits——02 Stochastic Bandits 参考资料 Slivkins A. Introduction to multi-armed bandits[J]. Foundations and Trends in Machine Learning, 2019, 12(1-2): 1-286. 在线学习(MAB)与强化学习(RL)[2]:IID Bandit的一些算法 B…

化繁为简、性能提升 -- 在WPF程序中,使用Freetype库心得

本人使用WPF开发了一款OFD阅读器,显示字体是阅读器中最重要的功能。处理字体显示有多种方案,几易其稿,最终选用Freetype方案。本文对WPF中如何使用Freetype做简单描述。 OFD中有两种字体:嵌入字体和非嵌入字体。1) 非…