APT、浏览器扩展、kimsuky、朝鲜、sharpext、sharptongue、威胁情报
Volexity的威胁情报分析师跟踪到一个经常以 Kimsuky 为名称被公开提及的朝鲜攻击组织 SharpTongue。需要说明的是,分析人员对于哪些威胁活动应归属于Kimsuky尚具争议,一些出版物将Volexity跟踪的与SharpTongue无关的其他朝鲜的威胁活动称为 Kimsuky。分析人员观察到 SharpTongue的目标通常是为美国、欧洲和韩国的组织工作的个人,这些组织的工作涉及朝鲜、核问题、武器系统和其他对朝鲜具有战略意义的问题。
SharpTongue 的工具集在公共资源中有很好的记录,Huntress 于 2021 年发布了涵盖该工具集的最新英文帖子。然而,在 2021 年 9 月,研究人员观察到SharpTongue 使用的一个有趣的、未记录的恶意软件系列。去年,研究人员对多起涉及 SharpTongue的事件做出了响应,并且发现了一个名为“SHARPEXT”的恶意Google Chrome 或 Microsoft Edge 扩展程序。
SHARPEXT 不同于之前记录的“Kimsuky”组织使用的扩展,因为它不会试图窃取用户名和密码。相反,恶意软件会在受害者浏览网页时直接检查并窃取受害者网络邮件账户中的数据。自发现以来,该扩展的内部版本已经发展到 3.0 版。它支持三种网络浏览器并能从 Gmail 和 AOL 网络邮件中窃取邮件。
本文描述了 SHARPEXT 的工作原理、扩展如何加载到浏览器中以及不同的组件如何协同工作。
SHARPEXT 是 SharpTongue 在成功入侵目标系统后部署的恶意浏览器扩展。在调查的第一个 SHARPEXT 版本中,该恶意软件仅支持 Google Chrome。最新版本(内部版本3.0)支持三种浏览器(图 1):Chrome、Edge和Whale。
图1:SHARPEXT 3.0 版中支持的进程名称表示支持的浏览器
前两种浏览器在全球范围内普遍使用,但第三种浏览器“Whale”鲜为人知。Whale 由韩国公司 Naver 开发,它几乎完全由韩国人使用。这三种浏览器都基于 Chromium 引擎,因此这种额外的支持可能不需要攻击者进行大量的额外开发。
在部署 SHARPEXT 之前,攻击者从受感染的工作站手动窃取安装扩展程序(如下所述)所需的文件,然后由攻击者编写的 VBS 脚本手动安装 SHARPEXT。安装脚本的工作流程如下:
-
恶意浏览器扩展文件
-
浏览器配置文件
-
附加脚本(pow.ps1和dev.ps1)以保证扩展被加载
1. 下载支持文件:
2. 运行设置脚本(pow.ps1)
VBS脚本的全部内容如图2所示。
图2. 部署脚本以下载和安装恶意扩展
第一个执行的脚本 (pow.ps1) 会终止当前浏览器进程,并将“首选项”和“安全首选项”文件替换为从命令和控制 (C2) 服务器获取到的文件。Secure Preferences 文件包含用户配置文件信息的已知良好状态。在基于 Chromium 的浏览器启动时,如果 Preferences 文件与加载的配置不匹配,则当前配置将被 Secure Preferences 文件的内容替换。Chromium 引擎有一个内置机制,要求 Secure Preferences 文件包含有效的“super_mac”值,以防止手动编辑此文件。没有很好的文档介绍如何在浏览器之外创建有效的安全首选项文件,但以下资源提供了所需原则的概述:
-
安全公司 AdLice 的解释性帖子,解释了有时如何安装恶意扩展
https://www.adlice.com/google-chrome-[sec]ure-preferences/
-
瑞典查尔姆斯大学学生2020 年发表的论文
https://www.cse.chalmers.se/~[and]rei/cans20.pdf
-
一个包含 Perl 脚本的俄语论坛帖子,解释如何生成有效的 super_mac 值
https://kaimi.io/2015/04/google-chrome-and-[sec]ure-preferences/
总的来说,攻击者必须收集以下信息来生成一个将被基于 Chromium 的浏览器接受的文件:
-
来自浏览器的 resources.pak 文件的副本(其中包含 Chrome 使用的 HMAC 种子)
-
用户 S-ID 值
-
来自用户系统的原始首选项和安全首选项文件
攻击者使用这些文件创建新的Secure Preferences 和 Preferences 文件,这些文件将在部署时被浏览器接受(并保留用户配置的现有设置,避免用户产生任何混淆)。图 3 显示了添加到 Secure Preferences 以加载扩展及其参数的新内容。
图3. 添加到安全首选项文件的新扩展数据
修改后的首选项文件生成后,浏览器将自动加载位于文件夹“%APPDATA%RoamingAF”中的恶意扩展。该扩展主要依赖于在扩展设置中设置的“DevTools”权限(参见图 1)。
第二个 PowerShell 脚本 (dev.ps1) 将在下一节中介绍。
安装程序部署的第二个 PowerShell 脚本 dev.ps1 用于在用户访问的浏览器选项卡中启用 DevTools。该脚本在无限循环中检查与目标浏览器关联的进程。如果发现任何目标浏览器正在运行,脚本会检查选项卡的标题以查找特定关键字(例如“05101190”或“Tab+”,具体取决于 SHARPEXT 版本)。当活动选项卡更改或加载页面时,恶意扩展程序会将特定关键字插入标题中。然后,该脚本使用前台窗口句柄来发送按键操作,如图 4 所示。
图4. dev.ps1 向基于Chromium 的浏览器发送的按键操作
发送的按键操作相当于 Ctrl+Shift+J,启用 DevTools 面板的快捷方式。最后,PowerShell 脚本使用 ShowWindow API 和 SW_HIDE 标志隐藏新打开的 DevTools 窗口。在此过程结束时,DevTools 在活动选项卡上启用,但窗口被隐藏。
此外,此脚本会隐藏任何可能提醒受害者的窗口。例如,如果扩展程序在开发人员模式下运行,Microsoft Edge 会定期向用户显示警告消息(图 5)。该脚本不断检查此窗口是否出现并使用 ShowWindow() 和 SW_HIDE 标志将其隐藏。
图5. 加载 SHARPEXT 时 Microsoft Edge 显示的警告消息
DevTools 模块由两个文件组成:dev.html(每次启用 DevTools 时自动加载)和 dev.js(由 dev.html 加载)。该模块的目的是将两种类型的消息发送到组件三(在下一节中描述):
-
“监控”消息:模块发送当前标签的标签ID,目的是维护受监控选项卡的内部列表。
-
“包”消息:模块执行图 6 所示的检查;它发送任何匹配的请求和正文以进行解析和泄露。
图6. 过滤以识别相关请求
SHARPEXT 扩展的主要功能位于根目录中名为“bg.js”的文件中。在早期版本中,该功能直接包含在扩展中。然而,在较新的版本中,大部分代码都存储在 C2 服务器上。它在执行时被下载并传递给 eval() 语句。这种在运行时从 C2 加载功能的技术对攻击者有两个主要好处:
-
它允许攻击者动态更新扩展代码,而无需将新代码部署到受感染的机器上。
-
扩展程序本身并没有太多明显的恶意代码。这意味着它不太可能被防病毒扫描引擎检测为恶意软件。
扩展的内部机制可以分为两部分:
-
在激活选项卡和加载网页时添加监听器。
-
在运行时消息上添加一个监听器。
下面进一步描述每个部分。
(1)选项卡监听器
选项卡监听器的目的是更改活动选项卡的窗口标题,以便添加前面描述的 PowerShell 脚本 dev.ps1 使用的关键字。该代码将关键字附加到现有标题(“05101190”或“Tab+”,具体取决于版本)。在选项卡上启用 DevTools 时,该关键字将被删除。
(2)运行时信息监听器
运行时消息监听器用于处理上一节中描述的 DevTools 模块发送的消息。扩展可以接收两种类型的消息:
-
“监控”:侦听器收到要检查的标签 ID。
-
“包”:监听器收到响应请求的内容
“监控”消息用于通过 DevTools API 维护受监控的选项卡列表。“包”消息用于解析目标网站的响应。分析人员遇到的第一个恶意扩展版本仅支持 Gmail 账户。最新版本同时支持 Gmail 和 AOL 邮件账户。
响应解析的目的是从用户邮箱中窃取电子邮件和附件。该扩展程序可以生成网络请求以从网页下载其他电子邮件。图 7 显示了 AOL 请求检索其他电子邮件的示例。
图7. AOL 响应
恶意扩展可以执行以下请求:
HTTP POST Data |
Description |
mode=list |
列出以前从受害者那里收集的电子邮件,以确保不会上传重复的电子邮件。该列表会随着 SHARPEXT 的执行而不断更新。 |
mode=domain |
列出受害者之前与之通信的电子邮件域名。该列表会随着 SHARPEXT 的执行而不断更新。 |
mode=black |
收集从受害者那里收集电子邮件时应忽略的电子邮件发件人黑名单。 |
mode=newD&d=[data] |
将域名添加到受害者查看的所有域名的列表中。 |
mode=attach&name=[data]&idx=[data]&body=[data] |
将新附件上传到远程服务器。 |
mode=new&mid=[data]&mbody=[data] |
将 Gmail 数据上传到远程服务器。 |
mode=attlist |
被攻击者评论;接收要被泄露的附件列表。 |
mode=new_aol&mid=[data]&mbody=[data] |
将 AOL 数据上传到远程服务器。 |
SHARPEXT 使用几个全局变量来维护其当前状态的知识并防止复制被盗数据。这些变量中存储的信息包括但不限于以下内容:
-
要忽略的电子邮件地址列表
-
已被盗的电子邮件列表
-
受监控的选项卡列表
-
以前泄露的附件列表
图 8 给出了不同 SHARPEXT 组件的编排摘要:
图8 . SHARPEXT 处理流程
朝鲜威胁攻击者使用恶意浏览器扩展程序并不罕见。这种策略通常用于感染用户,作为攻击传递阶段的一部分。然而,这是研究人员第一次观察到恶意浏览器扩展被用作入侵后利用阶段的一部分。通过在用户已登录会话的上下文中窃取电子邮件数据,攻击对电子邮件提供商隐藏,使得检测非常具有挑战性。同样,扩展程序的工作方式意味着可疑活动不会记录在用户的电子邮件“账户活动”状态页面中。
SHARPEXT 的部署是高度定制的,因为攻击者必须首先获得对受害者原始浏览器安全首选项文件的访问权限。然后修改此文件并用于部署恶意扩展。研究人员观察到 SharpTongue 针对目标部署 SHARPEXT 已有一年多了;并且,在每种情况下,都会为受感染用户创建一个专用文件夹,其中包含扩展所需的文件。
研究人员一直在跟踪 SHARPEXT 的演变。第一次遇到 SHARPEXT 时,它似乎是一个包含许多错误的早期开发工具,表明该工具不成熟。最新的更新和持续的维护表明攻击者正在实现其目的,并在继续改进它时发现有价值的目标。研究人员获得的日志显示攻击者能够通过恶意软件的成功部署窃取来自多个受害者的数千封电子邮件。
为了检测和调查此类攻击,研究人员建议如下:
-
由于 PowerShell 在恶意软件的设置和安装中发挥了关键作用,因此启用和分析PowerShell ScriptBlock 日志记录的结果可能有助于识别和分类恶意活动。
-
负责保护该威胁攻击者所高度针对的目标的安全团队可以定期检查高风险用户计算机上已安装的扩展程序,以识别非来自 Chrome 网上应用商店的扩展程序或从非正常途径加载的扩展程序。
为了防止这些特定的攻击,研究人员建议如下:
-
使用YARA 规则来检测相关活动。
https://github.com/volexity/threat-intel/blob/main/2022/2022-07-28%20SharpTongue%20[Sharp]Tongue%20Deploys%20Clever%20Mail-Stealing%20Browser%20Extension%20SHARPEXT/yara.yar
-
阻止列出的IOC。
https://[git]hub.com/volexity/threat-intel/blob/main/2022/2022-07-28%20SharpTongue%20SharpTongue%20Deploys%20Clever%20Mail-Stealing%20Browser%20Extension%20SHARPEXT/indicators.csv
编辑|陈潇
审校|何双泽、金矢
本文为CNTIC编译整理,不代表本公众号观点,转载请保留出处与链接。联系信息进入公众号后点击“关于我们”可见。
原文始发于微信公众号(国家网络威胁情报共享开放平台):SharpTongue部署智能邮件窃取浏览器扩展 “SHARPEXT”
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论