偷窃者

2023年 10月 8日 80.6k 0

在我们之前对涉及 Facebook 窃取者的活动进行分析时,我们发现了另一个有趣的窃取者。它是用Node.js编写的,打包成可执行文件,通过Telegram bot API 和命令与控制 (C&C) 服务器窃取被盗数据,并使用GraphQL作为 C&C 通信的通道。这篇博客文章调查了这个新的窃取程序,并对其例程和功能进行了深入分析。

感染载体

最近的活动

与之前的活动一样,我们注意到该窃取者是通过恶意大型语言模型 (LLM) 主题的 Facebook 广告进行传播的。这些恶意广告包含指向Google 协作平台上托管的页面的链接,该页面又包含指向Trello(在线项目和任务管理工具)上托管的存档的链接。

图 1. 一个提供 MetaAI 软件包的假 LLM 主题网站

之前的活动

进一步搜索,我们设法找到了滥用 Trello 托管包含窃取者的档案的较旧活动。文件名中使用的关键字包括“营销专家”、“营销招聘”、“简历样本”、“广告活动”、“营销项目”以及 Google、Facebook 和 TikTok 等服务的名称。

图 2.“雇用”列表中的恶意托管包

另一个例子显示了一个冒充 CapCut 视频编辑器的虚假网站,用于欺骗受害者下载该软件包。

图 3. 假装提供 CapCut 视频编辑器的虚假网站

图 4. Trello 上托管的窃取程序的存档名称包含视频编辑工具的名称

Node.js 打包

存档通常包含一个大小在 50 – 70MB 之间的可执行文件。请注意,窃取程序本身的 JavaScript 代码非常小(不到 100KB),但是,嵌入Node.js二进制文件和所有带有pkg​​ 的包会显着增加整体大小。打包后,开发人员将获得一个文件,无需下载和安装任何依赖项。在打包过程中,pkg 使用源映射,其中所有源都合并到一个文件中。

该源映射的偏移量和长度可以在打包的可执行文件的末尾找到。然后,研究人员可以使用提供的信息从包中提取所需的组件。如图 5 所示,app.js(主文件)是应用程序的起点。

图 5. 源映射包含包中包含的所有文件的列表

偷窃者

当窃取程序执行时,它会运行其主要功能,从多个基于Chromium的 Web 浏览器窃取 cookie 和凭据,然后将数据泄露到 C&C 服务器和 Telegram 机器人。它还将客户端订阅到运行GraphQL 的C&C 服务器。当C&C服务器向客户端发送消息时,窃取功能将再次运行。

主要函数例程

  • 主要功能是防止窃取者过于频繁地运行。窃取程序将其上次运行的时间戳保存到主目录 ( c:Users)中的文本文件中。如果距离上次运行的时间小于大约 30 分钟(准确地说,0x1cd6d0 ms = 1890000 ms = 1890 s = 31.5 分钟),则本次运行将跳过窃取例程。
  • 它通过查询/bk/map.txt 来检查使用 Base64 编码的备份 C&C 服务器地址。此备份响应还保存在用户主目录中的另一个文本文件中以供将来使用。
  • 它通过查询whoer.net网站来检索外部 IP 地址。
  • 它初始化graphql-ws、ws和其他必要的库,以启用GraphQL over websockets与 C&C 服务器的通信。然后它初始化Apollo 客户端以访问自托管的超级图。
  • 它订阅C&C 服务器,使其能够将消息推送到受害者的计算机。它使用zen-observable库通过回调订阅 observables 。订阅操作包含外部IP地址作为参数,响应(推送消息的内容)返回字符串值_id。
  • 它运行信息盗窃过程。
  • 然后它将自身复制到主目录并设置自动运行持久性。
  • 处理推送消息

    如果威胁参与者将消息推送到受感染的客户端,则收到的消息将具有如图 6 所示的 JSON 格式。该消息的目的是将 _id 分配给受感染的客户端。

    图6. 接收到的推送消息格式

    客户端收到 _id 后,会向 C&C 服务器发送另一条消息以修改一些后端数据(GraphQL 术语中称为突变)。突变操作包含先前分配的 _id,后跟与当前日期和时间连接的状态消息。随后,目标计算机中所有浏览器的凭据就会被盗。

    图 7. 客户端向服务器发送状态消息的变异操作

    窃取过程完成后,客户端会向服务器发送另一条状态消息,表明窃取过程已完成。如果服务器在窃取过程中推送消息,客户端会回复“等待完成”消息。

    执行处理此类消息的原因是窃取过程的激活。威胁行为者维护着一个正在等待激活(通过接收消息)的受感染客户端的 IP 地址列表。威胁行为者向客户端推送消息后,窃取过程将重新启动。

    信息窃取过程

    窃取者主要针对以下网络浏览器:

    • Microsoft Edge
    • Google Chrome
    • Opera / OperaGX
    • Brave

    对于每个浏览器,窃取者都会在“用户数据”文件夹中搜索可用的配置文件。然后,它从 User DataLast Version文件收集用户主路径、配置文件路径、用户数据路径和版本信息。接下来,它从 User DataLocal State中提取加密密钥(用于解密 Chrome cookie 和密码)  并解密。最后,它会杀死浏览器进程。

    对于每个可用的配置文件,窃取者都会从NetworkCookies获取所有已保存的 cookie 数据库。然后它会检查名为xs的 Facebook cookie 是否 存在。此 cookie 是一个会话 ID,指示用户是否已登录 Facebook 并使用该个人资料。如果未找到此 cookie,则会跳过配置文件。

    它提取属于 Facebook、Google 和 Outlook (live.com) 的所有 cookie,并使用之前从User DataLocal State获取的密钥对所有这些 cookie 进行解密。它还从Login Data检索所有已保存登录凭据的数据库。

    此外,窃取者还使用从User DataLocal State获取的密钥解密所有 Facebook、Google 和 Outlook 登录信息(用户名、电子邮件和密码) 。

    然后,它检查Local Extension Settings中是否存在 MetaMask 扩展,然后将整个 MetaMask 扩展目录打包到 zip 存档中并将其渗透到 Telegram 机器人。

    它获取 Facebook 的c_user cookie 和其他浏览器信息,例如操作系统、版本和体系结构。窃取者还将尝试窃取Facebook 的访问令牌。如果不成功,它将泄露 Facebook cookie、浏览器名称、可执行路径、保存的登录信息、IP 地址和国家/地区代码。然后,窃取者会跳过目标配置文件,继续访问另一个配置文件。

    然后,它通过对 C&C 服务器的 GET 请求按顺序泄露以下内容:

  • Facebook 身份号码、完整用户名、电子邮件地址、生日、访问令牌、Facebook cookie、浏览器名称、可执行路径、保存的登录信息、IP 地址和国家/地区代码
  • Gmail 凭据和 cookie
  • Outlook 凭据和 cookie
  • 其他 Facebook 信息,例如电子邮件地址和位置信息
  • 企业帐户信息,例如用户名和标识符。对于每个企业帐户,它将窃取名称、广告帐户限制、创建时间、企业 ID、允许的角色、验证状态以及与该企业关联的企业用户数量。
  • 页面信息,包括用户名和页面访问令牌
  • 广告帐户信息,包括用户名。对于每个广告帐户,窃取者会提取广告帐户 ID、广告帐户机构、支出限额、延期信用(发票和计费频率)、与美元的货币比率、时区、下一个计费日期、创建时间、计费阈值、余额、支付卡、支付卡到期日期、支付卡验证状态、广告帐户洞察和帐户状态
  • 最有可能出于备份目的,之前提取的信息也被保存到文本文件中并发送到 Telegram 机器人。

    渗漏到 C&C 服务器

    将被盗数据渗漏到 C&C 服务器是通过对随机生成的路径 ( /image/.png ) 发出 GET 请求来完成的。泄露的内容在授权标头内传递。

    图 8. 带有泄露数据的 GET 请求

    授权标头中的有效负载经过加密和十六进制编码。作者可能打算使用简单的字符串进行加密,如以下代码片段所示。

    图 9. 用于生成实际加密密钥的密码

    然而,在代码中,加密和解密是通过不正确/不合逻辑地使用map/ reduce来实现的。这意味着密码短语中的所有字符都经过异或运算,从而使加密成为单字节异或加密。

    图 10. 对于硬编码密码“haha123444”,生成的加密密钥只是一个单字节 0x04

    反分析功能

    为了使安全研究人员的分析更加困难,应用程序通过调用node-hide-console-window包中的 hideConsole 命令来隐藏其控制台窗口。

    此外,控制台对象中选定的方法将被空函数覆盖,以抑制记录错误和调试消息。

    图 11. 被空函数覆盖以抑制日志记录的方法列表

    威胁行为者背景

    在代码中,我们注意到一些越南语的注释、状态消息和变量名称,这表明该恶意软件的作者可能了解这种语言。

    图 12. 一些选定的越南语变量名称列表

    结论

    诸如我们刚刚在本博客文章中分析的窃取者窃取的大量信息意味着用户必须格外小心,因为此类恶意软件通常会导致重大危害,并可能导致成为后续攻击的目标。一如既往,保持警惕和适当的网络安全卫生对于确保个人在线活动的安全大有帮助。

    用户可以采取以下一些步骤来最大限度地降低与使用恶意广告进行分发的恶意软件相关的风险:

  • 避免点击广告,尤其是当它们看起来可疑或提供一些看起来好得令人难以置信的东西时。
  • 处理要求提供个人信息的弹出窗口或广告时要小心。除非完全确定所访问的应用程序或网站的合法性,否则切勿提供敏感信息。
  • 投资于信誉良好的防病毒和反恶意软件技术。这些工具可以帮助检测和减轻可能通过广告传播的恶意软件的影响。
  • 了解如何识别恶意广告最常见的迹象,例如印刷错误、语法错误以及看起来好得令人难以置信的优惠。
  • 下载或点击推广软件的广告时,请确保它们来自信誉良好的来源。下载工具和应用程序时,请坚持使用官方应用程序商店和受信任的网站。
  • 妥协指标

    SHA256

    01d087c6cb4d555b4aa33627e399961a97928a930b87e663913943c4ebad6513
    0d29ffd8d56c1810689ce1be01c671a6483349e3ae65411cfa62483a7f6db71c
    1f2bc4916c926b10ae994816e6d3a88e365440e7c0af2d213fcc5779510ec3bd
    278d3bb34a10d6d9c63154a51c57c7f39e1a486b90d2d8e430d456d5c12cc071
    2c077cb4d6b614f21887eb7872f387e3c575661eb73ac03fbb9aa60332f4537e
    2d157cfb6879bd829c5919e371495a3ab8fb10344c9b4ada386a1923c817c4f2
    2e2a63dcc4f49a1e090972f423c90427d8ef900cc7cd3077f7d87bb68e1e3eca
    3140614ebc53d8ad4f6a98f7fb4b2a5b2cc9305027c60a44b3d87c459edf7c1d
    3196ab53085c70e5025aa1c99c58f46654a043ab471720f5c1f2e5b45c761096
    33fa398d3f8d3817f419ba466836730cb142d5e0e4d37cd85f26b66cebf74407
    3d1e25a47e08123e9bf36cb7904a976252c8555f3c109e78f5faeba9b2b26842
    3fcff67d0df202f15305d7d8e685cbef1d9ae2d118f1170295ce848ae549553e
    41376302c3161453de3b7c627223d5fc121f7f864a2352ac72def48e1fdd5391
    463bc348097332bb5e02ba3c0f93ef550556243032482121b6a98ba2c7274dc6
    483fb09caafc5e4fb759b997b859291e683fc55b880fa421c2ac7b19f4ab9ea5
    55a4e88656b958ca23964ba585d31d04553b6ac30a327730c8f8f35a5e9bc705
    593700e7242b31a28b528d9082a178b7e83c41519ba9b966cd3bf7c311d28254
    5d4994814ae736182f7f609b5b45c122b40509175212c40bf6225573987020d6
    5e810b7a7448633fd4728b78c8d4ba37073490c0d7361eb7daf470b603986858
    62f843d63869fe61b3e6d3e20bbaf723676cb057cddeb28fc274125bbbb7c4c3
    63d55dba5982d39b73b11ee8fe62e8da884985c208d12c6b14db625916eb4011
    85277459c0ebc5bc35a43412e5688b4db26901c371ab4ac5944a979ae16704f0
    8915ce5008f9998eae8528108c30241fc708ce174b0b4c59229ce346057fe5e7
    90483b64a3c8517bb128c39a2f96f4d96c70ba1c147eafc5fe826cc168470c8c
    906bdadcd9fd21b46326953ca6ae64749f21b422899351d2a330663a33df7708
    93a0db0ac2e3f13b77277f5229d936ae38b327a4afce8c98478b9f01b1db41b3
    94c2886a05a5cf48c367d4219f05b3271aa17c7b7566e3a66b179f327f262927
    a9ae37cded5b9105854380a6113980fb8e3bbd881fa9557eacf2efe2c892b852
    a9afeddc26763afd505cf62b78d657d9129ccbdf9499e85259520b5f18157274
    a9f23c62831c57eda326002ae5108896a154e87c4da485aa2177cc294daf7fc8
    aa01009b433baf1894494143aec57f979f85ddb717a0962c6d6129b56e9c146e
    ac064e3a44e4527684b2be3f188dee210d8b203000100671b08909629f7ddc0c
    ac15f8d6a041a9d29b2b400c8ea7ca6a21abeedf3b95f1aeb90ee4b95cf05915
    afa0580a4567941c504d3fc2b765e9189cc17a7f28e35fb4a9ef16042f9ba070
    b03debf09e41d4e6041cecf99ddf31d24c2d4680d1ce09cef8dc50e99bf34c52
    b3fc6033a7f12021f89c3dd0f483395065b8dcab22da57b308ea0f428622e951
    b9d31ad82305ccc68b9af166ec123a3df2c26707571d0e46b7b7ead0987f4ec9
    bc0f1133ed78f70d60f602dc74c779658cc3cfd61bd16af58a61f68f17b8453f
    c65c682195524c3717b394aafe700d3023f727ef3db6fbc1f11e26c5048e1123
    c7b23e435cb8a3034692e215f6cf64564867837fed63839618af53fd3eb41837
    cf91cc5a683459f2c77b04c93ac130b25853f16f1f85f36a540c108ac95e46d8
    d1c90bd7294be2ff29b58248ad2c526ca59341f39967bb31565cac1681aa906a
    d617df1bc6b7f9c592773296ac0ee0732223c1ac697ba0c9e9b7ae4f6ec26b0e
    d6aee63ffe429ddb9340090bff2127efad340240954364f1c996a8da6b711374
    d8ef83f76be03e8fee4cda9423bf14aee5e9094ebe287ce91fc58b358ff4d39c
    ea51ee96dc01f2349750b728f74e4cbe8f789ab7cf6ee454a45c892df236aaeb
    f1123d10e046f585bf8c5eecab7881f8a154d7b3070129be1113d340cb33bc36
    f4802439a6029c24836c9adbe511c3be71eaefcbabefaa43f16b85e8500626b5
    f5bcf93535afb75305a5ec28a85407239ee3d4e185acf9d98837ea89a0753c4c
    f92184e39fc2a785ee8ac9f79f75e89419bbd78d8bfe7a7f24cfaf3c71216aee
    fe59e4ca14963b2f54792367a518756f3c71253fb2cd513b50e4861f652f559f
    8dea290f9404eafbf2f2e301b5dc7919bed525a9d3dc52f6b446b8813b86f7f0
    d485ae16965c1459e57b19d7335992c44423062536c5979b791866b3937b86f2
    2f1021543f4a27ae4fff3cbd7e9d0f05994fd129814c0d0379de184d56ffdb7c
    6bcb5e4c4baf09e79827a3b44b96e1272c69ddd50cc0c09bf35552989aaac561
    f9b98586a41cff4fdbb50cab4b56fdc8675451fa52fd0b5b30bee65f236bb81a
    2c6feabbb07a3806d6e19e9bcbb212df249334068040e81b210940900a6660e5
    3975137d160f37aad067c1b43794e48ed2cbede33d569abf405a966a9745eb77
    5d0d53af70b50dd9a20e83ffe6c7f3f3191a6415118c572a157995f4b0b6fd7a
    2a7fec5bbb84733f8134450235df2c3f25cefc9e272cd6f07e4bdfa70fb4bab9
    4e9f53cfb42e93ad99f70a6a8535f27625f57c9660e1629c36c4490e1294ac73
    850d4d8a5fdd18b7ac294e2c48ad7261c83d4cec061306e721bced06ab444e84
    36e3165ef71bed7bfe55309ac66096b29383ce29e55c08054338bbc2ab71e299
    216a33aea6eab06a04b36ff13b496d08ec3952aba0e8d45c9f30a8ee139aa080
    a6c00cf13bb81d643906bb8ec63546faac25e3a23b8805ee7fb2b84e78b8cba7
    a4db3098e98b4cfe93068cb8e805ce58145854512e48204f07fa1128a69d379e
    95fb539fcaf59ecd38f596debad3cd33ebf77d74ab8cf51e9f01a93c388dc444
    b3eceddd2623395efc3987e83b30372c75f5b00170453ad00bd2ed21d66caa7a
    4171398ef0cb342c94e435c032e0c66b9f888502fc4821093ca70a22d90b0715
    fe787e78c05bc70545d1105df9e460fbbef21d3ffc085fc80243a3fc29849c37
    5f7305ac6c3b8295f871833a53c2697dc6d57774983c92f37f96caca9ba5b7e2
    55380e746e993d315eafe84af3ad614165c470efb7d570da24dcb838e8e3a3e7
    480165df508ee6bed5712d34c6a572b0af64d818856a97c634c14e53a70099ab
    40273636c1a6fb5f4303c9780d686be8eb2e2a766dba163fbdefd500e1b9e874
    0e52ea9d12841f2657c4f36e55d60c73556b351fa087883667f3df1ee9ffadda
    78ef09bfce5b9c44e211b99d8c734f54200f1cb9c4923147cdf5fdcb25343daf
    8e9a3b1d9c6969814271ab3b42c3a85c8e7be1464b38e4fc715b4a0b15e0eeb0
    d8aca8c29707671e2ad02e87f613dab746141dafb6187668044ed1fce56a8ad2
    690c974573c507bb860448204557d58d531fd2f376c939273768a56851918112
    585a57323f7bad482946508347c080f89e639697fd08850c66670b32adf82a78
    1edd6efebbf63dd583328c16c7dca9a2ecc62d8e54c90eb6ca5a2e5dcbe92421
    225f7c732885365cbec02305bfe6a2af16d026b1ed59c82e46ed1a1321bf2cb0
    5e4c035b29f82ba278fe362cd9751f7315f8cd34c2d2573464b6fd9a0963aa70
    2e52b01667f59f2cbffcd0dbe7f987c954f7d630779d0ad5ced4ff36648873ea
    d7d82fbfe229e6ec6d24eff0a08965104067e40eb311fdd1b12123478f1b845b
    77888a898f3ebd1ca59e426c1e935df551b40b1b75360d3b98b5a76a706b7f3f
    ca6cab12c9dafa920dbfc274ed57f244105575701f5f55b955a640d8f3f80850
    050393999bc9da7cdb6aac986a3e36b4b28863cdb3639dfa46c9a909f5152444
    

    交付网站

    https://download-desktop-capcut.com

    Trello 上托管的项目

    https://trello.com/c/XNHss5CC/1-hiring
    https://trello.com/c/R5MvKYXS/1-kickoff-meeting
    https://trello.com/c/oK8WCHAX/2-project-planning

    重定向器和恶意档案链接

    https://rebrand.ly/vprkfjt
    https://trello.com/1/cards/64ad5575937a4704c3269a00/attachments/64ae30d375dc7983ea96e914/download/CapCut_2_2_0_491_capcutpc_0.7z

    C&C 服务器

    AVATARCLOUD.TOP
    Cloudimages.net
    EDITORIMAGE.INFO
    TOIMAGEAI.TOP
    Getavatar.top
    Hahaimage.top
    Hahaimage.info
    Hahaimage.xyz
    HEHEIMAGE.XYZ
    HEHEIMAGE.INFO
    HEHEIMAGE.TOP
    Heyavatar.top
    Heyavatar.info
    Heyimage.info
    Nametoimage.com

    转载来源:https://www.trendmicro.com/en_us/research/23/i/analyzing-a-facebook-profile-stealer-written-in-node-js.html

    图片来源网络侵权可联系删除

    相关文章

    Mallox勒索软件新Linux变种现世
    伪装成破解程序和商业工具的新型恶意软件正在传播
    Orcinius后门新样本分析
    Poseidon窃取程序通过Google广告感染Mac用户
    大选开始之际,欧盟各政党遭受 DDoS 攻击
    微软2024

    发布评论