吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1161|回复: 19
上一主题 下一主题
收起左侧

[PC样本分析] Go语言低门槛背后的风险,初级勒索攻击或致解密无门

  [复制链接]
跳转到指定楼层
楼主
火绒安全实验室 发表于 2024-12-11 16:23 回帖奖励
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
本帖最后由 火绒安全实验室 于 2024-12-12 11:22 编辑

Go 语言凭借其高效的并发处理能力和强大的标准库支持等特点,在开发效率和性能上具有一定的优势,备受软件开发者青睐。然而,这种优势也吸引了部分初学者以及勒索组织的目光,他们利用 Go 语言编写勒索病毒并进行传播,催生了各种基于 Go 语言的勒索实验样本和勒索组织样本。
近期,火绒工程师在日常关注安全动态时发现一个基于 Go 语言的勒索样本。分析发现,该样本会利用 AES 进行数据加密,并将加密秘钥发送至 youtube.com ,导致被加密文件完全无法恢复。推测该样本属于基于 Go 语言勒索样本中的实验样本。随后对基于 Go 语言的勒索样本进行调查分析发现,实验样本在该类勒索样本中较为常见,而勒索组织样本除了勒索步骤比较完善,使用的技术手段与实验样本仍有一定相似。火绒安全产品可对上述勒索木马进行拦截查杀,请广大用户及时更新病毒库以提高防御能力。
查杀图

勒索病毒通常是黑客攻击链的最后一个环节,属于直接可以获利的病毒。在前期攻击中,黑客已将目标环境改造成可以执行任意程序而不被检测的状态。因此, 基于 Go 语言的勒索病毒无需采用免杀等特殊技术手段,便能直接进行加密和上传操作。本文将主要对勒索实验样本以及勒索组织样本分别进行简要分析。基于 Go 语言的勒索样本进行勒索的步骤概括流程图如下:
基于 Go 语言的勒索样本进行勒索的步骤概括

一、样本分析
基于 Go 语言的勒索样本经常利用到的库函数按照使用先后顺序排列,有以下几种:
crypto/rand.Read:获取随机数
path/filepath.Walk:遍历文件
crypto/aes.NewCipher:初始化 AES 加密器
os.WriteFile:写勒索信或者将加密数据写入原文件
encoding/json.Marshal:转化为 JSON 字符串
net/http.Get/Post:接收或发送数据
os/exec.Run:打开勒索信

勒索实验样本
一些初学者或第一次开发勒索病毒的作者可能会制作出实验样本,这类样本的特点为勒索步骤不完整,例如缺少勒索信、勒索信无意义,或在对称加密过程中未能上传必要的数据等,最终导致受害者的数据无法被恢复,除非能够在内存中及时捕获密钥或在用户界面中获取相应密钥。而对于采用 RSA 非对称加密的样本,只有在私钥被保存至本地的情况下,才有可能实现数据恢复。
此次发现的勒索样本(下称 A 样本)即为实验样本,由于该样本最终将秘钥和用户标识符等数据发送至  youtube.com ,使得被加密文件无法恢复。此外,本文还将对同类型样本 B 和 C 进行简要阐述,展示实验样本的大致步骤和勒索信的无意义。

A 样本
A 样本调用 crypto/rand.Read 函数生成 1 字节的随机数,并通过计算从 a-z、A-Z 和 0-9 的字符集中选取一个字符,循环此操作九次,生成一个长度为 9 的 UserId 字符串,用于识别用户。
获取随机 UserId 字符串

随后,使用一个 32 字节的随机密钥和 AES 加密算法,对 C:\Users 文件夹下的所有文件进行加密。加密完成后,创建以 [源文件名].mtxv21 命名的加密文件,并删除源文件。
加密 Users 目录

还原后的加密算法如下。
AES 加密算法

接着,将 UserId 、加密目录以及 32 位加密秘钥通过 JSON 数据发送至 youtube.com 。这一操作使得勒索病毒的作者无法获取加密密钥,因此他们无法解密被加密的文件。即使受害者支付赎金也无法成功恢复数据。
发送 JSON 数据至 youtube.com

该 JSON 数据的内容格式与 Discord Webhook 请求体完全一致。如果将目标 URL 替换为  Discord Webhook 链接,那么信息将直接被链接指向的频道接收。在后续处理中,可以通过 ID 分辨用户,并利用加密目录和加密秘钥对加密文件进行恢复。
JSON 数据

其中的部分 JSON 数据键说明如下:
avatar_url:Webhook 消息的头像 URL
embeds:嵌入对象
fields:额外数据数组

在测试过程中存在桌面变黑的现象。分析发现,在 Win10 系统中,桌面背景图通常保存在
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Themes\TranscodedWallpaper 路径中,该路径文件被加密则会导致桌面变黑的现象发生。

最后,该样本会打开勒索信 README-NOW.txt ,其中显示的 Your ID 即是 UserId。
勒索信

B 样本
B 样本首先获取随机 32 字符秘钥和 16 字符初始化向量。随后利用 AES 算法的 CFB 加密模式对文件进行加密,并且在该过程中并未保存秘钥。加密完成后,将当前文件移动至临时目录中,同时打开名为 readme.txt 的勒索信,但该勒索信中的内容并没有意义。
获取随机秘钥和初始化向量
AES 算法 CFB 加密模式加密
移动至临时目录
readme.txt

C 样本
C 样本首先获取 Desktop、Documents、Pictures 目录路径。随后获取随机秘钥,同时利用 RC4 算法将获取的目录下的文件进行加密。在加密过程中,将生成的秘钥保存至 C:\Users\Administrator 目录下。加密完成后,将勒索信创建在用户桌面上。
获取目录路径
RC4 加密
秘钥和勒索信

勒索组织样本
与实验样本不同,勒索软件组织样本的勒索步骤完整,能够实现完整的勒索以及恢复的操作。除此之外,此类样本还具有获取系统信息、上传文件以及持久化等操作,但其主体逻辑还是对文件进行加密。

LAPSUS$ 组织样本
LAPSUS$ 组织样本首先通过向  hexalockbeta.000webhostapp.com/index.php 发送 GET 请求以获取用户信息。获取的信息如下:
computername:利用 os.Hostname 获取电脑名。
hwid:利用 wmic csproduct get UUID 获取计算机的唯一标识符。
ip:默认 192.168.1.1
method:默认 new
password:30 字符随机秘钥
发送 GET 请求

随后进行数据上传,并通过?Discord?Webhook?将文件压缩包发送至指定 URL https://discord.com/api/webhooks/1258768913898930306/rctIsQgwuuUEsHdFMdgzuCDXzgtpFv_yKz1aGVa6xKXzqJpTLz5Gv8DxuaSOK_z_Z-Eb中。压缩包内包含Desktop、Documents、Downloads、Pictures、Music、Video等目录下的文件。
压缩文件夹

接着生成随机秘钥和盐值,通过 pbkdf2 算法生成 32 个字符秘钥后,利用 AES-GCM 模式对 C:\Users 目录进行加密。最后打开勒索信。
加密
勒索信

GhostLocker 组织样本
GhostLocker 组织样本首先会将自身复制到开机自启目录中。
复制文件

接着,获取随机 32 字节秘钥,并通过 POST 请求将 JSON 数据发送至 http://94.103.91.246/addInfectioncrypto/aes 。JSON 数据中的有效字段为 id 和 key,其中,id 用于识别被勒索的受害者,而 key 用于后续文件的解密。
发送 JSON 数据

随后,通过 AES-GCM 模式以及随机 32 字节秘钥对 C:\ 目录进行加密,在加密过程中会避开 Windows 文件夹。最后打开勒索信。
AES-GCM 模式加密
勒索信

同时我们发现,近年来基于 Go语言的勒索样本整体趋于工具化。其主体逻辑与加密器相似,主要通过基础函数来实现文件的遍历、加密、上传以及展示勒索信等操作。后续,我们将会持续关注基于 Go 语言勒索样本的发展动态,以应对该类勒索病毒的各种变化,提高火绒安全产品的查杀率以及防护能力。

二、附录
HASH:

讲点大白话:
有的小伙伴表示没有学过计算机知识,看不太懂这篇文章,那么你可以参考如下说明。
计算机星球里有一个大仓库,生活在这里的居民们会把自己的宝盒装进这个仓库里。可是有一个恶霸会偷偷打开仓库大门,溜进仓库,把居民们的宝盒转移到其他地方,只留下一个相同外观的带锁盒子和一个纸条。有时候恶霸会在纸条上留下要求居民付钱赎回自己的宝盒的信息;但是有时候纸条上什么有用的信息都不会写。更可恶的是,恶霸有时候还会丢掉解锁的钥匙,即使居民付了钱,也找不回自己的宝盒。
“大仓库”是我们存储文件的路径,“宝盒”是保存的文件,“纸条”是不法分子留下的勒索信。
目前,火绒安全产品能够拦截查杀这种勒索病毒,同时我们也将持续关注此类病毒的发展动态,不断提高火绒安全产品的查杀率。大家记得要及时更新病毒库,提高防御能力哦~

免费评分

参与人数 12吾爱币 +12 热心值 +11 收起 理由
beihai1314 + 1 + 1 我很赞同!
SpiralTower + 1 + 1 我很赞同!
bbclinux + 1 + 1 用心讨论,共获提升!
ehu4ever + 1 + 1 谢谢@Thanks!
wari01 + 1 + 1 谢谢@Thanks!
stilt6642 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
jaffa + 1 谢谢@Thanks!
杨辣子 + 1 + 1 我很赞同!
BlueRiverLHR + 1 + 1 谢谢@Thanks!
uluckyXH + 1 + 1 谢谢@Thanks!
mr88fang + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
冷柠 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
mytect 发表于 2024-12-12 11:17
看看,谢谢分享
3#
linnimei 发表于 2024-12-12 12:24
现在已经不用c++改用go了吗,看样子go的未来挺美好啊
4#
uluckyXH 发表于 2024-12-12 14:49
5#
lsb2pojie 发表于 2024-12-12 15:20
分析的好详细,受教了,安全是真的很重要
6#
pomxion 发表于 2024-12-12 16:46
支持一下感谢  感谢分享
7#
qqycra 发表于 2024-12-12 21:21
支持,火绒大大的文章必看
8#
37724861 发表于 2024-12-12 22:34
什么时候能研发出来解密,或者是完全防御
9#
wari01 发表于 2024-12-12 22:37
感谢分享,很好的学习材料
10#
Vn丶兮 发表于 2024-12-13 00:15
正在学习go语言,还没入粉墨登场
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-23 17:09

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表