情报背景

近期,Volexity发现了一个在成功入侵目标系统后部署于Google Chrome上的恶意扩展。扩展利用VBS脚本通过修改相应配置文件,绕过Chrome安全首选项机制进行安装而无需用户交互,本文将就其中出现的技术进行分析研判。

组织名称

SharpTongue

战术标签

持久化

技术标签

浏览器扩展

情报来源

https://www.volexity.com/blog/2022/07/28/sharptongue-deploys-clever-mail-stealing-browser-extension-sharpext/

01 攻击技术分析

攻击者在成功入侵到目标系统后,通过修改配置文件的方式部署恶意Chrome扩展,利用扩展监听特定的标签ID以及接收的响应内容,在受害者浏览网页时检查并窃取受害者网络邮件帐户中的数据。

亮点:修改配置文件无交互安装恶意扩展

在Chrome的安装路径下,存在首选项Preferences和安全首选项Secure Preferences两个配置文件,这两个文件都是Json格式的文件,其中Preferences记录着用户的配置信息,如用户设置、主页、历史记录等;而Secure Preferences记录着Preferences文件中某些节点的HMAC SHA256哈希,以确保首选项Preferences文件不被篡改:

部分设置的哈希值

可以看到,Chrome对于主页、书签等配置的哈希记录。HMAC SHA256是一种散列机制,它利用种子和消息生成SHA256哈希值。种子被记录在文件resources.pak中。该文件的文件头格式如下:

struct header {

uint32_t version;

uint8_t encoding; // 0 = BINARY, 1 = UTF8, 2 = UTF16

uint8_t padding[3];

uint16_t resource_count;

uint16_t alias_count;

};

随后是一系列资源结构体:

struct resource {

uint16_t resource_id;

uint32_t file_offset;

};

第一个长度为64Bytes的资源即为HMAC种子的值。种子信息被明文记录在资源文件中,能够被攻击者轻易获得。

HMAC种子值

在启动时,Chrome会读取Preferences配置文件中所有的哈希值进行校验,如果与Secure Preferences中的对应值不匹配则会被要求恢复:

启动时读取配置文件

HMAC的计算依赖于以下信息:

1.记录在浏览器安装目录下resources.pak文件中的HMAC种子(hmac_seed)

2.计算机SID(machine_id)

3.原始Secure Preferences和Preferences配置文件(json_path)

以上信息都可以通过Windows API和从Chrome配置文件读取获得,这意味着构造Preferences配置配置文件以通过验证成为可能。本次事件中,攻击者通过重新构造Secure Preferences和Preferences文件,在文件中加入恶意扩展信息,并重新计算HMAC,生成合法的配置文件通过校验,达到绕过Chrome安全首选项安装扩展的目的。

攻击者将扩展文件放置于恶意配置文件指定的路径下,扩展的功能将在浏览器启动时被自动加载执行。通过修改配置文件的方式安装浏览器扩展,整个安装过程无需用户交互即可实现,受害者难以察觉。攻击者利用恶意扩展监听特定的标签ID以及接收的响应,在受害者已登录会话的上下文中窃取电子邮箱账户数据、邮件、附件等信息。

除了无感安装以外,本次事件中的恶意扩展文件在C2控制上也有其得天独厚的优势。扩展的主要功能由JS实现,恶意功能可以由扩展在执行时从C2服务器上拉取执行,这一方面使得攻击者可以很方便地更新代码;另一方面减少了扩展程序中的特征,减少了暴露面,使之更加难以被发现。

Chrome虽然是一个闭源浏览器,但其主要功能都基于开源的chromium浏览器引擎,很多基础性的代码都来源于chromium,这为攻击者寻找与利用其中缺陷与安全弱点提供了可乘之机。

02 总结

今年以来,恶意浏览器扩展屡见不鲜,一些恶意插件摇身变为上架浏览器扩展商店的实用扩展,达成窃取数据的目的。但等待受害者愿者上钩仍然较为被动,本次事件中攻击者采取更主动的攻击策略,通过修改配置文件绕过了Chrome的安全配置检查实现无交互安装扩展。这种攻击流程使得感染过程更加隐蔽,适应更灵活的实战思路。

参考

https://www.adlice.com/google-chrome-secure-preferences/

https://stackoverflow.com/questions/10633357/how-to-unpack-resources-pak-from-google-chrome

https://source.chromium.org/chromium/chromium/src/+/main:chrome/browser/prefs/profile_pref_store_manager.cc;l=100

声明:本文来自M01N Team,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。