Genesis Market - 恶意浏览器扩展
Cybereason GSOC发现了一起恶意软件感染事件,与2023年初被执法部门取缔的Genesis Market恶意活动表现出高度相似性。
事件概述
Cybereason安全服务正在调查Lummastealer活动。 Lummastealer最终投放的是Genesis Market恶意浏览器扩展。 Genesis Market在受感染机器上安装并执行自己的JavaScript脚本。 这些脚本旨在系统性地从受害者设备收集重要信息。 收集的数据确保为Genesis Market市场中的机器人提供一致的信息。
什么是Genesis Market
Genesis Market于2018年3月首次亮相,已促成访问全球约150万台受感染计算机的数据,提供超过8000万条被盗账户访问凭证。在Genesis Market上出售的凭证包括与金融部门、关键基础设施和各级政府相关的凭证。Genesis Market提供了勒索软件攻击者用来针对美国许多组织以及私营部门组织的访问权限。
Genesis Market是一个非法在线平台,宣传和销售从全球受恶意软件感染的计算机获取的访问凭证、被盗账户,如电子邮件、银行和社交媒体的用户名和密码。
Genesis Market设计为用户友好型,允许个人根据位置和账户类型(包括银行、社交媒体和电子邮件)搜索被盗凭证。除了访问凭证外,它还提供设备"指纹",这是设备标识符和浏览器cookie的独特组合,可以规避许多网站的反欺诈保护。这使得购买者能够冒充受害者,欺骗第三方网站认为他们是实际账户所有者。
Genesis Market用户遍布全球超过225个国家。联邦执法机构一直在识别购买和使用被盗凭证进行欺诈和其他网络犯罪的用户。这项努力为美国各地的FBI和国际执法机构提供了数百条线索。作为该计划的一部分,名为"Operation Cookie Monster"的行动允许当局根据美国威斯康星州东区地方法院授权的令状,查获了11个对Genesis Market基础设施至关重要的域名。
关键发现
恶意Genesis扩展执行以下操作:
- 针对Chrome、Opera、Brave和Microsoft Edge等浏览器
- 收集浏览器数据并发送到C2服务器
- 设置反向代理(ws://
:4343) - 使用区块链交易解析C2服务器
该扩展访问了以下浏览器数据:
- 浏览器剪贴板数据
- Cookie
- 历史记录
- 当前打开的标签页
- 电子邮件数据(outlook.live、mail.yahoo、mail.google)
- 剪贴器数据
- YouTube频道数据
- 加密货币交易所和加密货币钱包
- Coinbase钱包
- Facebook支付数据
- Google Pay
- 已安装的扩展
- 用户代理数据
- 按定义时间间隔截取的浏览器页面截图
- 文件系统数据
技术分析
概述
Cybereason在Lumma信息窃取器活动中检测到Genesis Market恶意浏览器扩展有效载荷。
攻击流程
Lumma信息窃取器组织在此次攻击中使用setup/installer文件。受害者从社会工程学/网络钓鱼网站下载初始有效载荷(Zip文件)。Zip文件(例如v6.20.0_installer_x64_.zip)包含一个MSI文件(例如app__v6.20.0_.msi),该文件打包了以下文件:
- 可执行文件(例如nvidia geforce experience.exe)
- 归档文件(RAR格式)
RAR文件包含第二阶段的LummaStealer DLL。在MSI安装期间(通过msiexec.exe),它会启动包含的可执行文件(例如nvidia geforce experience.exe),然后:
- 使用DLL侧加载或DLL空心化等技术加载LummaStealer DLL
- 启动子进程(powershell.exe)运行以下脚本
- 脚本连接到C2域(例如root-head[.]com)并检索Base64编码的第三阶段有效载荷(2709.bs64)
解码后的第三阶段有效载荷是一个添加了混淆层的PowerShell脚本。
攻击树
解码的PowerShell脚本部署恶意Genesis Market浏览器扩展,并将用户数据发送到攻击者管理的C2域。
Base64编码PowerShell分析
PowerShell脚本尝试在多个浏览器(包括Chrome、Microsoft Edge、Opera和Brave)中安装恶意浏览器扩展。它执行以下步骤:
- 启动Chrome、Microsoft Edge、Opera和Brave的浏览器进程
- 创建新文件夹并安装Javascript
- 修改Secure Preferences JSON文件以确保扩展在浏览器重启时自动激活,实现持久化
针对以下特定目录:
- Google\Chrome\User Data
- BraveSoftware\Brave-Browser\User Data
- Microsoft\Edge\User Data
- Opera Software\Opera Stable
扩展具有访问以下数据的权限:
|
|
扩展设置为访问所有URL:
|
|
扩展路径为:
|
|
Javascript有效载荷存储为base64编码数据。PowerShell脚本将解码数据并安装扩展。base64编码数据包含以下Javascript文件:
- src\finder\initializeFinder.js
- modules\content-scripts-register-polyfill.4.0.0.js
- src\background.js
- src\finder\instructions.js
- src\content\clipboard.js
- src\content\main.js
- src\finder\matches.js
- src\finder\extract.js
- src\finder\helpers.js
- src\finder\traverse.js
- src\finder\zip.js
- src\functions\clipper.js
- src\functions\commands.js
- src\functions\csp.js
- src\functions\domain.js
- src\functions\exchangeSettings.js
- src\functions\extensions.js
- src\functions\getMachineInfo.js
- src\functions\injections.js
- src\functions\notifications.js
- src\functions\proxy.js
- src\functions\screenshot.js
- src\functions\screenshotRules.js
- src\functions\settings.js
- src\functions\tabs.js
- src\functions\utils.js
- src\mails\gmail.js
浏览器扩展分析
恶意浏览器扩展安装"Save to Google Drive"扩展,并将网页内容或屏幕截图直接保存到Google Drive。定义了后台密钥以在扩展的后台页面中运行脚本(/src/background.js)。
删除了以下响应头以访问浏览器的文档对象模型(DOM):
- Content-security-policy:缓解跨站脚本(XSS)攻击
- Content-security-policy-report-only:允许Web开发人员发送CSP违规报告
- X-webkit-csp:基于WebKit的浏览器的内容安全策略
- X-frame-options:防止网站遭受点击劫持攻击
Javascript分析
src\background.js 为当前浏览器会话创建新警报。这些浏览器警报设计用于在指定时间触发代码执行。建立了以下警报以与C2C连接:
- checkCommands
- checkProxy
- updateDomain
- checkInjections
还调用其他javascript文件中的许多函数。
src\content\clipboard.js 复制系统剪贴板的文本内容,并将指定文本写入系统剪贴板。
src\content\main.js 从Google Payment、YouTube频道、加密货币钱包(交易所)和Facebook Payment等来源检索数据。按设定间隔捕获截图并运行脚本。
src\finder\extract.js 从目录中提取文件,检查其详细信息,并读取文件流。
src\finder\helpers.js 查询机器用户列表并创建新用户(C:/Users/) 将检索到的数据编译为ZIP文件并传输到服务器:hxxps://true-lie[.]com/api/machine/set-files-v
src\finder\traverse.js 在目录中定位文件,并遍历文件系统中的文件和文件夹。
src\functions\commands.js 从攻击者URL获取命令:Attackerdomain/machine/commands?uuid=uuid
发出的命令:
- Extension:调用setEnableExtension、initMachine函数
- info:调用getInjections、getSettings、initMachine函数
- push:调用createNotification函数
- Cookies:从浏览器获取所有cookie
- Url:调用openUrl
- Current_url:调用getCurrentTab
- History:调用getHistory
- Injects:调用getInjections
- Clipper:调用getClipperData
- Settings:调用getSettings
- Proxy:调用setIsEnabled启用代理
- Screenshot_rules:调用getScreenshotRules
命令输出使用POST方法发送回攻击者。
src\functions\csp.js 禁用内容安全策略(CSP)。CSP有助于检测跨站脚本(XSS)和数据注入攻击。
src\functions\domain.js C2域使用区块链交易解析。检测到以下C2域: bc1q4fkjqusxsgqzylcagra800cxljal82k6y3ejay - gzipdot[.]com
示例链接: hxxps[:]//mempool[.]space/api/address/bc1q4fkjqusxsgqzylcagra800cxljal82k6y3ejay/txs hxxps[:]//" + _0x41d66f[_0x1c70b5] + “/api/machine/sign?d=
src\functions\exchangeSettings.js 从攻击者域检索数据以利用Exchange/Coinbase钱包、Facebook支付页面、YouTube频道页面和Google Pay页面。
src\functions\extensions.js 查询已安装的应用/扩展并启用恶意扩展。
src\functions\getMachineInfo.js 根据其清单提供有关应用或扩展的信息,从特定cookie存储收集所有cookie,并收集用户代理字符串以及当前浏览器、主机操作系统和硬件设置的详细信息。
向URL发送POST请求:Attackerdomain/machine/init
src\functions\injections.js 从攻击者URL获取注入数据:domain/machine/injections?uuid=“uuid”。收集有关所有活动窗口的详细信息,并验证URL是否匹配:
- payments.google
- adsmanager.facebook.com
- hxxps://accounts.google.com
- hxxps://consent.youtube.com
src\functions\notifications.js 创建自定义通知和新标签页。
src\functions\proxy.js
在startProxy()和stopProxy()函数之间切换。创建新的WebSocket对象并建立反向代理(ws://
通过调整标头、密钥令牌和cookie来定制HTTP请求。最后,将HTTP请求发送到:URL/redirect-hack.html?id=,并通过(redirect-hack.html)将请求重定向到攻击者域。
src\functions\screenshot.js 捕获指定窗口中当前活动标签页可见区域的截图。
src\functions\settings.js 从攻击者URL检索扩展设置:domain/machine/settings
src\functions\tabs.js 收集有关当前标签页的所有信息,使用给定URL打开新标签页,并调出浏览器历史记录。
src\mails\gmail.js 从outlook.live、mail.yahoo或mail.google等平台上的当前页面收集电子邮件数据(提取显示的每封电子邮件的主题、电子邮件地址和内容)。扫描包含验证码的电子邮件以规避双因素认证。
与后期利用相关的IOC
我们检测到以下与浏览器扩展有效载荷相关的IOC列表:
| 类型 | 值 | 注释 |
|---|---|---|
| Sha1 | 95d2980786bc36fec50733b9843fde9eab081918 | obs-ffmpeg-mux.exe |
| Sha1 | 359354ea44356f2ddea3f2c8bc558810533f95be | kafkjo.rar |
| Sha1 | c07e49c362f0c21513507726994a9bd040c0d4eb | app__v7.2.8_.msi |
| Sha1 | 9f3b02b148aa17094e7a13dbba3b49a279e12e80 | v7.2.8_installer_x64_.zip |
| Sha1 | 0cbca4dbbdcb61e8336753bdabda33b56c51c52e | v6.20.0_installer_x64_.zip |
| Sha1 | b08f8b87efc450368816c769c8c1c54ff6da53b9 | nvidia geforce experience.exe |
| Sha1 | d363b062d0d8df89449faa0b9ac2e6e578054696 | app__v6.20.0_.msi |
| IP | 104.21.16[.]110 | 解析为hit-kick[.]com |
| IP | 172.67.210[.]204 | 解析为hit-kick[.]com |
| IP | 104.21.53[.]8 | 解析为sergei-esenin.com |
| IP | 104.21.80[.]87 | 解析为l-back[.]com |
| IP | 172.67.176[.]159 | 解析为l-back[.]com |
| IP | 104.21.13[.]217 | 解析为last-blink[.]com |
| URL | last-blink[.]com/2709[.]bs64 | 下载base64编码数据的URL |
| URL | root-head[.]com/25082[.]bs64 | 下载base64编码数据的URL |
| URL | exilepolsiy[.]sbs | C2域 |
| URL | laddyirekyi[.]sbs | C2域 |
| URL | isoplethui[.]sbs | C2域 |
| URL | offeviablwke[.]site | C2域 |
| URL | ghostreedmnu[.]shop | C2域 |
| URL | gutterydhowi[.]shop | C2域 |
| URL | offensivedzvju[.]shop | C2域 |
| URL | reinforcenh[.]shop | C2域 |
| URL | gzipdot[.]com | C2域 |
| URL | true-lie[.]com | C2域 |
Cybereason建议
- 隔离并确定是否执行取证分析。如果是,应创建取证映像(保存副本)进行分析,以确定潜在数据风险的范围和威胁行为者活动的程度。如果不是,继续使用内部/现有IT流程恢复到"黄金映像”(基线)。
- 对本文"关键发现"部分下"扩展访问了以下浏览器数据"中识别的"风险"数据进行取证分析,该部分详细说明了哪些数据元素可能面临风险,应考虑进行清点、重置和后续调查未经授权或意外活动。
- 告知用户有关欺骗性验证码页面或"点击修复"的信息,这些页面提示他们复制和粘贴PowerShell脚本。
- 将Lumma信息窃取器C2域添加到防火墙的出站阻止列表中。
MITRE ATT&CK映射
| 战术 | ATT&CK技术(ID) |
|---|---|
| 初始访问 | T1566 网络钓鱼 |
| 执行 | T1204.002 用户执行:恶意文件 T1059.007 命令和脚本解释器:Javascript |
| 持久化 | T1176 浏览器扩展 |
| 防御规避 | T1055.012 进程注入:进程空心化 T1027.013 加密/编码文件 |
| 凭证访问 | T1539 窃取Web会话Cookie |
| 发现 | T1082 系统信息发现 |
| 收集 | T1113 屏幕捕获 |
| 命令与控制 | T1071.001 应用层协议:Web协议 |
关于研究人员
Hema Loganathan,T2 GSOC分析师 Hema Loganathan是Cybereason全球SOC团队的GSOC分析师。她参与MalOp调查、恶意软件分析、逆向工程和威胁狩猎。Hema拥有信息系统的理学硕士学位。
Peter Moote,T2 GSOC分析师 Peter Moote是Cybereason全球SOC团队的GSOC分析师。他参与威胁狩猎、Malop调查和修复。他的专业认证包括GCIH和GPEN。