译者:shan66
预估稿费:190RMB
投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿
当下,恶意软件的一大发展趋势是,将恶意软件包“纳入”合法应用程序中。因此,在本文中,我们将同读者一道来分析一个下载合法ffmpeg的恶意软件。借助这个应用程序,这款使用.NET语言编写间谍软件貌似简单,但是却有着非常强大的威力。现在,虽然大多数恶意软件都能够在被感染的机器上定期发送截图了,但是这个恶意软件却可以进一步记录完整的视频,从而窥探用户的各种活动。
上述恶意软件家族是由MalwarHunterTeam于2015年首次发现的,最近这种势头正在呈现蔓延之势。
分析的样本
2a07346045558f49cad9da0d249963f1 – 注入器(JS)
049af19db6ddd998ac94be3147050217 – 可执行文件(C#)
9c9f9b127becf7667df4ff9726420ccb – 加载器
85d35dd33f898a1f03ffb3b2ec111132 – 最终有效载荷
下载的插件:
e907ebeda7d6fd7f0017a6fb048c4d23 – remotedesktop.dll
d628d2a9726b777961f2d1346f988767 – processmanager.dll
行为分析
JS文件首先将包含的可执行文件放入%TEMP%文件夹中,然后运行它。而可执行文件则利用一个随机的文件名完成自动安装,并在%APPDATA%中创建自己的文件夹。代码的持久性是通过注册表run键来实现的。该恶意软件的另一个副本将被放入启动文件夹中:
在运行期间,可执行文件会在其安装文件夹内创建.tmp文件。这些文件的内容没有进行加密,如果我们仔细观察的话,就会发现它实际上用于记录按键和正在运行的应用程序的相关信息:
我们注意到的另一个有趣的事情是,该恶意软件会下载一些合法的应用程序:Rar.exe、ffmpeg.exe以及相关DLL:DShowNet.dll,DirectX.Capture.dll
此外,我们发现该恶意软件在运行时将关闭并删除某些应用程序。在测试过程中,它从被攻击的机器中删除了ProcessExplorer和baretail。
网络通信
该恶意软件通过TCP的98端口与CnC服务器进行通信。
如果服务器向客户端发送一个命令“idjamel”,那么客户机就会返回收集到的受害机器的基本信息,例如machinename / username、安装的操作系统以及正在运行的进程的列表。之后,服务器会向客户端发送相应的配置信息,即目标银行列表。
该Bot将配置信息保存在注册表中:
之后,CnC发送一组Base64编码的PE文件。每个文件的内容都可以通过文件名的前缀来进行识别:非恶意的二进制文件由关键字“djamelreference”标识,恶意插件则由“djamelplugin”标识。
下载DShowNET.dll:
下载插件 – remotedesktop.dll (e907ebeda7d6fd7f0017a6fb048c4d23):
ffmpeg应用程序从下面的URL地址下载:
打开地址我们可以看到一些页面,这可能是攻击者所控制的。 Facebook的按钮指向“AnonymousBr4zil”帐户:
这个bot会向服务器报告正在运行的应用程序,即通过标题栏发送Base64编码的文本:
例如:
awt||UHJvY2VzcyBFeHBsb3JlciAtIFN5c2ludGVybmFsczogd3d3LnN5c2ludGVybmFscy5jb20gW3Rlc3RtYWNoaW5lXHRlc3Rlcl0=djamel
解码后的内容:
Process Explorer - Sysinternals: www.sysinternals.com [testmachinetester]
解开该恶意软件的神秘面纱
脱壳
该样本是利用CloudProtector加壳的,这一点要特别感谢@MalwareHunterTeam的提示。它使用的加壳软件,与我们之前分析的样本所使用的加壳软件完全相同(之前的分析文字请访问这里)。就像在之前所了解的一样,它使用自定义算法和存放在配置中的密钥来解密有效负载。然后,借助RunPE技术(也称为ProcessHollowing),将解密的可执行文件加载到内存中。
核心代码
解压后的有效载荷,含有所有恶意功能。它不会做进一步的混淆处理,所以我们可以轻松地对其进行反编译(可以使用dnSpy),并读取其代码。
我们可以看到一些类,单看其名称就猜到它们的作用,如ProtectMe、ScreemCapture和SocketClient。
首先,我们可以发现这个恶意软件的用途:监视用户,以及为受感染的机器添加后门。
Form1类是主要模块,负责与CnC沟通和协调行动。它包含了用于恶意软件安装的硬编码数据和CnC服务器的地址:
37.187.92.171:98
受害者机器的名称将从二进制文件复制并保存在注册表项中:
如果bot检测到e-Carte Bleue(一款法国支付卡)的软件,它会将相应的字符串添加到标识符中,并向服务器发送相应的附加信息:
这个软件的每个模块都是独立运行的,所以都会开启一个新线程:
视频录制
我们可以看到负责下载ffmpeg应用程序的代码段:
恶意软件作者的主要目标是窥探用户的银行业务。这就是为什么当受害者打开特定网站,与网上银行相关的时候,录像事件被触发。目标列表由CnC提供,并通过“ve”保存到注册表中,例如:
该软件会定期检查列表中的目标是否已在浏览器中打开。如果检测到,该恶意软件就会开始录像:
函数“VeifyingTime”的作用是将标题栏与提供的字符串进行比较。
然后,在ffmpeg应用程序的帮助下录制视频:
之后,它们被发送到CnC,通过Base64进行编码:
该恶意软件还具有简单截图的功能,并将其保存为JPG格式。图片和捕获的日志由Rar应用程序定期进行压缩处理,然后也将其发送到CnC:
键盘记录器
类名kyl表示键盘记录器:
它还具有枚举已经打开的窗口的功能:
这是负责创建之前提到的.tmp文件的类。
自我保护
这个类负责禁用可能用于监控恶意软件活动的应用程序:
插件
该bot的功能可以通过从CnC下载的附加插件来进一步加以扩展:
根据我们的观察,该bot下载了两个插件,为其提供了典型的RAT功能:
processmanager.dl,写于2015年:
以及remotedesktop.dll,写于2016年:
与主模块和之前提到的插件不同,remotedesk.dll被进行了混淆处理,因此,其类和变量的名称基本就是乱码,猜不出其具体含义:
结束语
很明显,这个恶意软件是由一个“天真”的家伙编写的。 二进制和通信协议都没有进行有强度的混淆处理。此外,使用的加壳软件也是众所周知的,很容易被破解。 然而,该恶意软件得功能却非常丰富,同时也进行了更积极的保护。不过,该恶意软件具有窥探受害者和植入后门的功能,所以不容轻视,因为即使是一个“天真的”的攻击者,也可以在被忽视时造成很大的危害。
该恶意软件被Malwarebytes识别为Backdoor.DuBled。