对近期被发现通过RIG Exploit Kit进行分发的银行木马Karius详细分析

阅读量    30509 |   稿费 180

分享到: QQ空间 新浪微博 微信 QQ facebook twitter

 

前言

尽管银行本身已采取措施加强其认证过程的安全性,但银行木马仍是窃取用户财务细节和提取银行账户资金的流行工具。

Check Point Research团队最近发现了一个正在开发中的银行木马程序,这个木马程序已经通过RIG Exploit Kit分发,木马程序名为“Karius”,其目的是执行web注入,向银行的合法登录页面添加其他字段,并将输入的信息发送给攻击者。

虽然 Karius 还没有完全的感染模式,但我们已经完成的初步测试研究表明了这种恶意软件如何发生的演变过程。我们的分析还显示了像 Karius 这样的银行木马是如何组合在一起的,并利用了其他知名银行木马,如Ramnit、Vawtrak和TrikBot。

 

恶意软件分析

Karius的工作方式与其他银行恶意软件相比显得相当传统,它由三个部分组成:

injector3264.exe

proxy3264.dll

mod3264.dll

这些组件本质上是配合工作的,可以在几个浏览器中部署Web注入,从而拦截用户的通信。

通常在截取的流量中寻找的内容是受害人访问过的特定银行网站。然后该站点将被修改,以欺骗用户输入其密码,然后将其发送给攻击者。但是这个恶意软件好像还处于开发阶段,甚至还处于测试阶段,这就是为什么web注入还没有特别针对任何金融机构的原因。

要执行的初始组件是injector32.exe(或injector64.exe,对应于64位系统)。它主要负责若干行动,即:

修改几个注册表项,以便禁用Internet Explorer中的保护机制。这些注册表项包括:

  1. HKCUSoftwareMicrosoftWindowsCurrentVersionInternet SettingsZones32500 = DWORD:3
  2. HKCU SoftwareMicrosoftInternet ExplorerMainTabProcGrowth = DWORD:0
  3. HKCU SoftwareMicrosoftInternet ExplorerMainNoProtectedModeBanner = DWORD:1

作为持久性手段,使用名称TEMP APPLICATION.lnk将自身复制到启动目录,并在名称 %USERPROFILE%/music/temp.exe下创建一个副本。

将批处理脚本写入磁盘,该脚本将删除原始文件。

使用以下JSON结构的消息与C&C服务器联系以注册bot:

  {“id”: “<computer_name_hash><digital_product_id_hash>”

  “action”: “register”

  “os”: “<os_version>”

  “lang”: “<lang>”

  “integrity”: “None”

  “admin”: “admin”

  “group”: “group”

  }

在与C&C服务器联系之后,恶意软件将发送一条具有类似id的消息和一个“ping”操作,然后由服务器使用以下两个命令之一进行响应:

更新-发送带有新版本的恶意软件的二进制文件。
配置-发布一个web注入配置payload,保存到一个名为“tem.bin”的文件中。

然后,到C&C服务器的所有流量都将通过RC4使用在该模块二进制文件的.cfg部分中驻留的配置结构中硬编码的密钥进行加密。

cfg部分:

创建命名管道“.pipeform”,以便与其他模块通信,而其他模块则使用它把窃取的凭据转发给它。然后这些数据将使用以下消息格式定期发送给C&C(根据内部配置部分预定义的时间间隔):

{“id”: “<computer_name_hash><digital_product_id_hash>”

“action”: “report”

“url”: “<url_of_stolen_credentials>”

“browser”: “UNK”

“Data”: “<data_of_stolen_credentials>”

}

使用aPLib解压缩后续组件(proxy32.dll和proxy64.dll),并将与系统体系结构对应的组件注入“explorer.exe”进程。

注入“explorer.exe”的dll组件用于挂接CreateProcessInternalWAPI函数,这个函数在资源管理器下启动进程时调用。在本例中,钩子函数将查找几个特定浏览器中的一个,并将为它注入另一个名为mod32.dll(或64位系统的mode64.dll)的解压缩dll文件。这些浏览器包括:InternetExplorer、Chrome、Firefox和Edge。

这个最终的dll payload将在一个或多个上述浏览器的上下文中执行,它是一个组件,就像许多其他银行恶意软件所做的那样,通过应用一些钩子来实现Web注入机制。钩子函数可以在下面找到。

如前所述,web注入驻留在“tem.bin”文件中,并具有以下格式:

host: <url_of_host>

path: <path_in_url>

data:

inject: <data_to_inject>

before: <what is before the injected data>

after: <what is after the injected data>

然后通过web注入窃取而来的凭据将使用命名管道发送到injector组件,然后转发给C&C服务器。

下面是一个说明上述所有行动的图片:

 

与已知银行特洛伊人的相似性

正如在前面看到的,恶意软件的内部工作是相当标准的银行木马。然而,更有趣的是恶意软件的主要部分是基于在野外可以找到的知名银行木马。例如,以前在Vawtrak中使用aPLib压缩来存储文件中的32位模块和64位模块。

此外,在一个恶意软件的检查样本中,我们能够跟踪硬编码的web注入,让我们惊讶的是,这正是Ramnit以前使用。

web注入的相似性:

但我们所能发现的最明显的相似之处可能是与广泛分布的TrickBot的相似之处。特别是,我们看到这两个恶意软件在二进制代码上有很高的相似性。注入和hook方法的功能显示了非常相似的代码元素。

对于注入功能,这可能并不那么令人惊讶,因为这两种方法都使用反射加载注入方法,这个方法具有一个开源实现,可以在这里找到。

但是,不清楚内联钩子实现是否取自任何特定的已知源代码。

值得注意的是,在Karius中观察到的一个类似的钩子函数中,我们可以发现对OutputDebugString函数的调用,这个函数包含一个提示函数名称的字符串。这可能意味着Karius的作者拥有用于实现TrikBot钩子机制的源代码,并为调试目的添加了这一行代码。它还暗示该恶意软件仍在进行一些开发,还有更多的版本尚未发布。

HttpSendRequestA_Hook_Function

 

进化中的恶意软件

通过对这个恶意软件的研究,我们观察到了两个主要版本,它们勾画了它在发展过程中的某种演变。第一个版本似乎有严重缺陷,可能只用于测试目的,而第二个版本虽然功能更强,但仍未完全完成。这可以在各种“占位符”字符串中看到,如下所示:

下表概述了这两个版本之间的主要变化:

IOCs:
Md5 hashes:
728911a915d9ec3b6defa430d24bc0d5
857430b8c9dc78ce4eabbe57cb3ae134

域名:
http://proxyservice.site/updates/gateway.php

分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
|发表评论
|评论列表
加载更多