ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

瞄准Chrome凭据的新威胁已现身

2021-04-12 20:53:13  阅读:197  来源: 互联网

标签:文件 Google Chrome 恶意软件 凭据 URL 现身 cURL


 Change 嘶吼专业版

图片

CyberArk最近捕获了一个有趣的恶意软件样本。它与常规的盗窃凭证恶意软件,如Pony或Loki的不同之处在于,它只针对最常见的浏览器——谷歌Chrome。

该恶意样本没有被混淆,但却能够逃避大多数反病毒软件(AV)的检测,这是由于它所使用的一种不常见的逃避技术。

图片隐藏在资源里——Dropper分析

图片

图1.Dropper的VirusTotal评分

在我们开始之前,让我们先讨论一下负责程序植入和执行payload来收集凭据的dropper。当我们发现这个恶意软件时,VirusTotal (VT)的得分只有11/71(图1),现在它的得分是33/71,仍然较低。

事实上,这个dropper真的很基础。它首先在当前路径中创建一个\ temp文件夹作为dropper的父文件夹,在此文件夹中再创建一个名为“death.bat”的批处理脚本,目的是后续将\ temp删除。之后dropper将其他六个文件放入此文件夹中(图2),这六个文件分别是五个DLL文件和一个二进制文件“virus.exe”。从文件名中我们可以看出,此二进制文件似乎需要使用cURL库(和libcurl)。而使用cURL的恶意软件类型并不多,这点是值得注意的。

图片

图2.文件植入

文件夹的总大小约为6MB,并且没有发生下载行为,这与dropper的文件大小是非常相似的。实际上,文件夹中的所有文件都保存在文件资源中(图3)。此恶意软件没有加密,也没有被混淆,显示的文件名都是很直白的。

image.png图3 BrowserHax显示的二进制资源

image.pngdropper和潜在payload的执行流程

创建并填充文件夹后,恶意软件运行主二进制文件“virus.exe”(图4),等待五秒钟后执行删除恶意软件所有痕迹的批处理脚本。

image.png图4 BrowserHax的流程

接下来恶意软件弹出带有错误消息的对话框(图5)。在IDA中可以很明显看出,此对话框的目标只是欺骗用户,旨在让用户认为执行中存在错误,单实际上这是程序的正确流程。(图4)。image.png

图5.提示错误

image.png以隐私为目标——payload分析

该恶意软件目前在VT上的检测率为零(图6)。image.png

图6 .Virus.exe的VT分数

Chrome是当今世界上最常见的浏览器。它不仅可以存储您的所有密码,还可以存储您的信用卡数据。此外,没有管理员权限的普通用户也可以访问Chrome凭据文件。这意味着恶意软件不需要任何提权机制即可访问Chrome凭据。

此恶意软件遵循流程如下:它首先收集计算机的相关信息;然后检查cURL库是否已成功加载;再获取当前会话的用户名,然后阅读Chrome文件并获取密码。

Google Chrome的凭据存储在名为Login Data(无扩展名)的SQLite DB文件中,该文件通常位于以下文件夹中:

C:\Users\<USERNAME>\AppData\Local\Google\Chrome\User Data\Default\

当Google Chrome运行时,它会锁定DB文件,以便在此过程的运行时间内无人可访问。为了解决这个问题,恶意软件会首先杀死所有的chrome进程(图7)。

image.png

图7.关闭Chrome进程

在杀死Chrome进程之后,打开DB文件并执行SQL查询来读取其中保存的密钥。通过下图所示的SQLite查询能看出(图8),恶意软件目标是logins表,其中包含origin_url、用户名和密码等字段;之后它将所有数据保存到堆中分配的结构中。

image.png

图8.从Chrome DB获取URL、用户名和密码

获得后,它只需通过cURL(图9)将数据发送到自己的Google Form。

这里解释下什么是cURL以及***者为什么要使用它。image.png

图9运行中的cURL命令

cURL代表客户端URL。cURL是一个非常简单和强大的命令行工具,使用URL语法进行数据传输。它支持许多协议,包括HTTP和HTTPS。cURL也是交叉平台,使用起来非常简单。cURL的作者还提供了一个C语言库,其中包含将其集成到任何应用程序所需的功能,而不需要在被***的一方上获得额外的资源。此外,使用cURL的恶意软件类型的数量非常少,因此对***者来说,cURL就成了一个很好的工具,还能避免触发AV检测。image.png

图10. curl_easy_setopt方法中的cURL对象初始化和函数指针定义

image.pngGoogle Form一探究竟

Google Forms是一个著名的基于web的免费应用程序,经常被公司和学生用作调查工具,收集数据并将其存储在电子表格中。它还提供用户友好的Web界面。除了Google Forms提供的网络界面外,还可以通过cURL提交表单。

此样本包含一个硬编码的Google Forms URL(图11)。表单简单但清晰(图10):它只包含一个数据字段。此数据字段设置为段落,可以包含大量字符——默认情况下最多为1,000,000,000,000,000,000,这足以支持受害者的所有Chrome数据。

image.png

图11.硬编码的Google Forms 的URL

image.png

图12.***者的Google表单

因此,Google Form(图12)充当了服务器角色,用于收集和存储数据。Google Form中的数据可以通过post请求提交。

自发现Google Form的这种恶意使用方式后,我们已经通知了Google。这种对合法在线服务的滥用已经不是第一次出现了,之前也出现过使用pastebin甚至Twitter作为其基础架构的恶意软件。 

让我们看看使用cURL的数据发送流程。在通过curl_global_init和curl_easy_init初始化cURL对象之后,需要先配置对象,然后才能使用curl_easy_setopt执行一系列操作。为了加强分析,它在curl_easy_setopt函数(图14)上使用一个函数指针(图13),并在整个函数中使用,以便正确配置对象。此函数的一个参数是cURL对象的选项——CURLOPT——***者可对其设置。可以在此处找到带有相应十进制代码的完整选项列表。

例如在本例中,设置的第一个选项可以通过堆栈0x2712 = 10015中的代码来识别,该代码对应于CURLOPT_URL。此选项允许您设置发送请求的URL。显然,在这种情况下,它被设置为Google Form的URL。image.png

图13在调用之前设置函数指针并在堆栈中设置参数

image.png

图14设置cURL对象的其他选项并执行请求

标识为0x271F = 10015,下一个选项集为CURLOPT_POSTFIELDS,它包含将通过POST请求发送到之前定义的URL的数据。如前所示,包含的是从Google Chrome中提取的所有数据。

然后将CURLOPT_WRITEFUNCTION设置为一个简单的乘法函数——精确计算size * nmemb,其中size始终设置为1,nmemb是数据大小——这是库所要求的。

最后将CURLOPT_SSL_VERIFYPEER设置为0,这意味着它不会验证对等证书的真实性,这很可能是为了防止在奇怪的数字签名配置情况下请求被阻止。再之后执行对curl_easy_perform的调用,调用将请求发送到预期的URL。这就是完整的传递过程。

那这个恶意软件是已知的还是全新的呢?

您可能已经猜到,有很多针对Chrome凭据的恶意软件。因此,我们不能仅根据其目标来识别恶意软件家族。

我们的恶意软件,即名为“virus”的payload,不会更改任何注册表,也不包含奇怪的字符串。恶意软件运行速度非常快,完成任务只需不到五秒钟(图4)。它不会在磁盘上创建任何文件,而是会在安全的Google Forms上发送所有数据。指向其家族的唯一指示是它的行为:加载libcurl、读取SQLite数据库、窃取Chrome凭证,并使用cURL将此数据发送回Google Forms。这些行为中没有哪个能明确对应上已知的恶意软件家族。

让我们看看Yara规则能否提供更多有价值的数据。基于目前的分析,突出了以下五个指标:

1. 使用名为libcurl的cURL库

2. 杀死Chrome进程:taskkill / f / im chrome.exe

3. 使用Google Forms

4. 使用SQLite

5. 读取存储在Login Data中的Chrome凭据

rule browserhax_rule

{

    meta:

        author = "David Cohen"

        company = "CyberArk"

        date = "28-07-2019"

    strings:

        $lib_curl = "libcurl" nocase

        $taskkill = "taskkill /f /im chrome.exe" nocase

        $doc_form = "https://docs.google.com/forms/" nocase

        $sqllite = "sqlite" nocase

        $cred_file = "Login Data" nocase

    condition:

        all of ($*)

}

使用Yara规则查找其他样本的方法没有提供它所属家族的信息。相反,我们发现了其他非常相似的样本,也是未检测到的样本(图15)。

image.png

图15.通过Yara规则捕获的样本

image.png

图16.类似样本的关系

事实证明,图16中的样本使用完全相同的Google Forms,dropper看起来与我们在本文中分析的非常相似。dropper的资源包括所有相同的库和virus.exe二进制文件。它还向我们提供了它如何诱使用户执行恶意软件的信息(图17)——它假装是Microsoft的Minecraft安装程序或CAB文件提取程序,还包含了文件属性中的Microsoft签名,但这实际上不是一个有效的签名,数字签名验证证明了这一点。

image.png

图17.dropper信息

image.png面对新威胁,做好防御准备

此威胁另一特性是非持久性,除了盗窃Chrome凭证之外,不会损坏受害者的计算机。而使用cURL库和Google Forms也使得它很难被捕获。滥用合法工具再一次验证了在抵御AV产品上的有效性。

对端点上进行防御是防止此类***的最佳方法。例如CyberArk Endpoint Privilege Manager等解决方案可以保护驻留在内存,注册表或文件中的端点凭据存储。

image.pngIoC

· 恶意活动

taskkill /f /im chrome.exe

· SHA-256

2774a1a4155a9bb874eebad7f24b94571285d9ebf064cb64f64b3aa02f2494d5 – browserhax.exe

[Dropper]

939511e83f40e3ba73c019b6722a5a02a220e4f5947409115a69fa07e71ce9ba – virus.exe

[恶意软件和主要payload]

image.png

标签:文件,Google,Chrome,恶意软件,凭据,URL,现身,cURL
来源: https://blog.51cto.com/u_15127538/2701923

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有