情报背景
近期,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 = UTF16uint8_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。