记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

对最近热销的新型间谍软件Baldr的分析

2019-04-15 12:25

Malwarebytes安全实验室观察到,在过去几个月的时间里,间谍软件无论是在活动频率上还是出新的数量上都有所增长。间谍软件不像银行木马那样,需要被动等待受害者登录银行网站,它们通常都是“即来即取”模式。也就是说,一旦成功感染目标,它们就能收集所需数据,并立即将其发送给攻击者。而由于间谍软件通常不会在本地留存(没有持久性机制),除非攻击时被发现,否则受害者很难知道他们的信息已经被盗走。

这类恶意软件在网络犯罪分子中很流行,使用程度比银行木马更广。间谍软件除了能捕获浏览器历史记录、存储的密码和cookie外,还会寻找可能有价值的文件。

我们将在本文中详述Baldr stealer,它于2019年1月首次出现在地下论坛,2月时被微软在野外发现。

Baldr的来源

Baldr很可能是三名威胁行为者共同合作的作品:第一位是Agressor,也被称为Agri_MAN,早在2011年就以销售黑客工具而闻名;第二位是Overdot,负责销售和推广的工作;而最后一位LordOdin则是负责开发。Baldr于今年1月首次亮相,很快就在俄罗斯最具人气的黑客论坛clearnet上收获了许多好评。

1.png

Overdot之前曾参与过Arkei stealer间谍软件(见下图)的攻击行动。而如今,在clearnet的多处留言板上都可以看见他发的关于Baldr的广告。Overdot通过Jabber为客户提供服务,并负责处理买家的投诉。

2.png

论坛的某一篇帖子中提及到了Overdot之前与Arkei背后的威胁团伙的合作过程,并声称Baldr和Arkei的开发人员也有些许关联。

与发布在clearnet展示板上的大多数产品不同,Baldr以可靠性而出名,并且它还提供了良好的售后服务。

3.png

LordOdin,也被称作BaldrOdin,相对低调得多,但会跟踪与Baldr有关的帖子。

4.png

他会在跟帖中阐述Baldr与Azorult等对手产品的区别,并承诺Baldr绝不仅仅是Arkei的一个复制品:

5.png

Agressor/Agri_MAN是最后一位出现的参与者:

6.png

7.png

Agri_MAN在俄罗斯黑客论坛上销售工具的历史大约可以追溯到2011年。与LordOdin和Overdot相比,他的名声似乎并不好,曾被列入过退款黑名单,还因为使用假账号刷好评而被点名。

Agri_MAN还有一个备用帐户Agressor,此账户名下有一个自动化商店service-shop[.]ml,商店中并非所有商品都跟Baldr相关,并引起了某些误购客户的抱怨:

8.png

这可能表明,Agressor并非是核心成员,与Baldr的开发没有直接关联。Overdot和LordOdin似乎才是管理Baldr的主要参与者。

分发

在对Baldr的分析中,我们收集了几个不同的版本,侧面反映了Baldr开发周期是很短的。本文分析的版本是3月20日发布的2.2最新版:

9.png

Baldr传播主要途径之一就是伪装成破解工具或黑客工具的木马程序。在我们获得的样本中,有一个就是通过YouTube视频进行宣传的,视频内容是介绍一个能免费生成比特币的应用程序,但实际上它的真身是Baldr stealer。

10.png

Fallout exploit kit也有帮助Baldr进行传播:

11.png

技术分析(Baldr 2.2)

Baldr提供的功能相对简单直接,跟之前的间谍软件相比并没有什么突破性的进步,它的与众不同之处其极其复杂的逻辑实现。

大多间谍软件都像是为了快速赚钱而用多种工具组合在一块的拼凑品,做工粗糙,而Baldr显然是为了长期运行而精心设计的。无论是封装器的使用、payload的代码结构,还是是它的后端C2和分发,Baldr的作者显然是花了很多时间投入其中。

功能概述

Baldr的主要功能可分为五个步骤,按顺序完成。

步骤1:用户分析

Baldr首先收集用户分析数据列表。从用户帐户名到磁盘空间再到操作系统类型等信息都会被收集。

步骤2:过滤敏感数据

接下来,Baldr开始循环遍历计算机关键位置内的所有文件和文件夹。特别是在用户AppData和temp文件夹中查找与敏感数据相关的信息。以下是它搜索的关键位置和应用程序数据列表:

AppData\Local\Google\Chrome\User Data\Default
AppData\Local\Google\Chrome\User Data\Default\Login Data
AppData\Local\Google\Chrome\User Data\Default\Cookies
AppData\Local\Google\Chrome\User Data\Default\Web Data
AppData\Local\Google\Chrome\User Data\Default\History
AppData\Roaming\Exodus\exodus.wallet
AppData\Roaming\Ethereum\keystore
AppData\Local\ProtonVPN
Wallets\Jaxx
Liberty\
NordVPN\
Telegram
Jabber
TotalCommander
Ghisler

扫描的文件从简单的sqlite数据库到其他类型的定制格式都有涵盖,数据被提取后被加载到数组中。在解析并准备好所有目标数据之后,继续它的下一个阶段。

步骤3:ShotGun文件抓取

DOC,DOCX,LOG和TXT文件是此阶段的目标。Baldr从Documents和Desktop目录开始,递归迭代所有子目录。当遇到任何上述扩展名的文件时抓取整个文件的内容。

步骤4:ScreenCap

这是最后一个数据收集的步骤,Baldr让控制器选择抓取用户计算机的屏幕截图。

步骤5:网络过滤

数据装载到数组/列表中之后,Baldr压缩数组,并为网络发送做好准备。

Baldr没有试图隐藏传输过程。我们在分析时,故意为Baldr提供了大量的文件来抓取,想知道它是分批次传出这些数据,还是一次性发送回C2。

12.png

从结果来看是后者。Baldr没有内置功能可以驻留在受害者的计算机上,在它收获了所需的数据后,并不会重新感染同一台机器。此外,代码中没有传播机制。

封装器代码级别分析

此版本的Baldr一开始是内置在可执行程序中的一个AutoIt脚本。使用AIT反编译器,我们进入了封装器的第一阶段。

13.png

如图所示,这段代码经过严重混淆,混淆工作主要由前两个函数负责。这里我们只需要根据作为第二个参数传入的索引,对字符串进行简单的重新排序即可。字符串很容易提取,只需修改此脚本,在返回前就能ConsoleWrite出去混淆的字符串。

14.png

提取的字符串如下:

Execute
BinaryToString
@TempDir
@SystemDir
@SW_HIDE
@StartupDir
@ScriptDir
@OSVersion
@HomeDrive
@CR
@ComSpec
@AutoItPID
@AutoItExe
@AppDataDir
WinExists
UBound
StringReplace
StringLen
StringInStr
Sleep
ShellExecute
RegWrite
Random
ProcessExists
ProcessClose
IsAdmin
FileWrite
FileSetAttrib
FileRead
FileOpen
FileExists
FileDelete
FileClose
DriveGetDrive
DllStructSetData
DllStructGet
DllStructGetData
DllStructCreate
DllCallAddress
DllCall
DirCreate
BinaryLen
TrayIconHide
:Zone.Identifier
kernel32.dll
handle
CreateMutexW
struct*
FindResourceW
kernel32.dll
dword
SizeofResource
kernel32.dll
LoadResource
kernel32.dll
LockResource
byte[
VirtualAlloc
byte shellcode [

除了这些明显的函数调用之外,我们还有一些二进制blob对象被去混淆。这里只截取了一部分字符串。

在main可执行文件加载到内存之前,它会从中提取和解密资源DLL。Baldr以前的版本没有在第一阶段使用AIT,而是用到了一个名为Dulciana的辅助文件,文件里包含了我们在这里看到的相同DLL的加密字节:

15.png

继续前进到第二阶段,在所有版本的Baldr封装器中,本质都是保持不变的。将DLL加载到内存中,会创建Baldr main可执行文件挂起状态下的子进程,接着使用进程hollow技术,将其替换为main .NET的payload。我们可以使用ollyDbg手动解压,因为在可执行子进程加载中断之后,我们可以逐步执行父进程的剩余代码,把这些代码写入进程内存,并最终调用ResumeThread()命令。

16.png

加载子进程后,Baldr设置的用于调用的函数有VirtualAlloc、WriteProcessMemory和ResumeThread。如果我们在resume thread调用之前转储这个写入的内存,就可以轻松地提取核心payload。

Payload代码分析

解压缩payload后可以看到恶意软件的实际功能。虽然Baldr是用c#编写的,但对它源码的调试和分析并不容易。

17.png

Baldr的代码写得并不直白。所有功能都是高度抽象的,封装在包装器函数中,并利用了大量的实用程序类。代码库包含了大约80个独立类和模块,很难看出关键功能在哪里,需要对代码库进行多次静态传递。此外,函数名是被改过的,代码中还有插入一些垃圾指令,下一步我们将开始用DnSpy调试可执行程序。

另外一个问题是线程。Baldr每一分钟的操作都是通过一个单独的线程执行的,这么做的目的显然是为了干扰分析人员的解析过程。线程内部调用了100多个函数,还不包括递归调用的线程,算上可能有上千个函数。

18.png

幸运的是,我们可以查看正在被写入的本地数据,最终我们能够找到代码的关键部分:

19.png

20.png

上面的函数用于收集用户的配置文件,包括CPU类型、计算机名称、用户帐户和操作系统。

21.png

在整个过程完成后,它将存储该数据的数组压缩,得到如下字符串:

22.png

代码的下一节显示了用于循环目录的众多枚举器类中的一个,这些枚举器类用于查找应用程序数据,比如存储的用户帐户,我们特意将其保存下来以进行测试。

23.png

24.png

检索到的数据按如下格式保存到列表中:

25.png

26.png

在数据收集的最后阶段,我们有以下线程,它们循环查找txt和doc文件的关键目录。它将保存它找到的每个txt或doc的文件名,并将文件的内容存储在各类数组中。

27.png

28.png

29.png

30.png

部分代码执行的屏幕截图:

31.png

类2d10104b函数1b0b685()是执行大部分功能的主要模块之一,例如循环遍历目录。一旦收集了所有数据,线程就会聚在一起,剩下的代码行继续单线程运行。然后开始网络调用,所有数据被发送回C2。

压缩后的数据通过XOR加密,密钥为4字节,版本号是通过第一个网络请求与C2联系获得的。第二个请求将加密的数据发送回C2。

面板

与其他间谍软件一样,Baldr提供了一个面板,允许客户查看高级统计数据,并检索被盗信息。下面是一个登录页面板:

32.png

在发布在论坛的截图中,我们看到了面板:

33.png

总结

Baldr是一类制作完善的间谍软件。目前,它背后的团队还在积极参与各种论坛,努力宣传和改进自己的产品。在短短几个月的时间内,Baldr经历了许多版本的变化,表明其作者正在不断修改漏洞,并可能在研发新的功能。

在同类产品竞争激烈的情况下,Baldr将不得不是自己变得更加出色。不过,市场对这类产品的需求很高,所以预计在不远的将来,可能在多个攻击行动中我们都能看到Baldr的身影。

IoC

Baldr样本:

5464be2fd1862f850bdb9fc5536eceafb60c49835dd112e0cd91dabef0ffcec5 -> version 1.2
1cd5f152cde33906c0be3b02a88b1d5133af3c7791bcde8f33eefed3199083a6 -> version 2.0
7b88d4ce3610e264648741c76101cb80fe1e5e0377ea0ee62d8eb3d0c2decb92 > version 2.2
8756ad881ad157b34bce011cc5d281f85d5195da1ed3443fa0a802b57de9962f (2.2 unpacked)

网络跟踪:

hwid={redacted}&os=Windows%207%20x64&file=0&cookie=0&pswd=0&credit=0&autofill=0&wallets=0&id=BALDR&version=v1.2.0
hwid={redacted}&os=Windows%207%20x64&file=0&cookie=0&pswd=0&credit=0&autofill=0&wallets=0&id=BALDR&version=v2.0
本文翻译自:https://blog.malwarebytes.com/threat-analysis/2019/04/say-hello-baldr-new-stealer-market/如若转载,请注明原文地址: http://www.hackdig.com/04/hack-54819.htm
知识来源: https://www.4hou.com/web/17345.html

阅读:43561 | 评论:0 | 标签:Web安全 Baldr

想收藏或者和大家分享这篇好文章→复制链接地址

“对最近热销的新型间谍软件Baldr的分析”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

关注公众号hackdig,学习最新黑客技术

推广

工具

标签云

本页关键词