网络钓鱼工具包:WikiKit

admin 2024年12月29日22:39:40评论16 views字数 4846阅读16分9秒阅读模式
网络钓鱼工具包:WikiKit网络钓鱼工具包:WikiKit

TRAC Labs 最近发现了一个网络钓鱼工具包,我们将其命名为 WikiKit,因为它具有在 JavaScript 被禁用或网络钓鱼链接无效时重定向到维基百科页面的功能。

这个特殊的网络钓鱼活动始于 2024 年 10 月初,针对汽车、制造、医疗、建筑、咨询和娱乐行业。

WikiKit 网络钓鱼活动的独特之处在于它使用托管在 Jimdosite 上的登录页面,背景中带有目标公司的徽标,如下所示。这些页面提示用户单击 ,这会将他们重定向到凭据收集页面,如下所示。Review Document Here

网络钓鱼工具包:WikiKit网络钓鱼工具包:WikiKit
登陆页面

威胁行为者或组织最初获得了对与 IOC 部分中列出的登录页面相关的各种公司凭据的未经授权的访问。然后,他们利用受感染用户的电子邮件帐户进一步分发网络钓鱼链接。这些电子邮件通常包含带有嵌入链接的“附件”。其中一些链接以 开头,让用户觉得该 URL 是合法 Salesforce 重定向的一部分,从而增加用户信任和交互的可能性,例如 。以前,Google Ads 服务用于重定向。app.salesforceiq.comhxxps://app.salesforceiq[.]com/r?target=<redacted>&url=hxxps://<victim-lookalike-domain>.jimdosite.com

网络钓鱼工具包:WikiKit网络钓鱼工具包:WikiKit
WikiKit 感染链

受害者将看到上述登录页面。以下文本在所有着陆页中都相似:

收到新的 PDF 文档

您有 (2) 个新的 PDF 文档供您审阅
请签名并返回

单击后,用户将面临 Cloudflare Tursntile CAPTCHA 检查。Review Document Here

该标签会在 JavaScript ID 被禁用时提供替代内容或行为。因此,将进行重定向。<noscript>

我们分析了一些示例,其中重定向链接将是以下之一:

  • https://href.li/?https://en.wikipedia.org/wiki/Category:Office_365
  • https://href.li/?https://en.wikipedia.org/wiki/List_of_Microsoft_365_Applications
  • https://href.li/?https://en.wikipedia.org/wiki/Internet_Explorer_11
  • https://href.li/?https://en.wikipedia.org/wiki/Windows_Server_2019
  • https://href.li/?https://en.wikipedia.org/wiki/Email
  • https://href.li/?https://en.wikipedia.org/wiki/Email_client
  • https://href.li/?https://en.wikipedia.org/wiki/Microsoft_365
  • https://href.li/?https://en.wikipedia.org/wiki/Client_access_license
  • https://href.li/?https://en.wikipedia.org/wiki/Windows_Server_2016
  • https://href.li/?https://en.wikipedia.org/wiki/Microsoft_Exchange_Server
  • https://href.li/?https://en.wikipedia.org/wiki/List_of_Microsoft_365_Applications
  • https://href.li/?https://en.wikipedia.org/wiki/Microsoft_Office_Mix
  • https://href.li/?https://en.wikipedia.org/wiki/Category:Office_365

WikiKit 一直在使用 href.li 匿名服务进行重定向。

网络钓鱼工具包:WikiKit网络钓鱼工具包:WikiKit
/verify 的源代码

输入电子邮件地址后,将发送请求以验证电子邮件地址。如果电子邮件正确无误,服务器将响应以下内容:hxxps://yugaljeeautomotive[.]com/z/pro/mentanance/auth/rUADZcQ3GvV5Gl0r8ijP2l0EbMGF93CFwuqd54Zosi9LiJYgAQtjQfSDI4kmB7RER8PNhNEeClpv8A6z6dboxLHvHSapudmgeIsmHLzTXsq5SWuxcUr4Kqfnyoo1O7WBTk2fV9MkgPy0KwxBOXJIRo/validate

{
"live":true,
"grablogo":"1",
"email":"email address",
"icon":"https://aadcdn.msauthimages.net/<redacted>",
"background":"https://aadcdn.msauthimages.net/<redacted>"
}

哪里:

  • live — 指示用户提供的电子邮件是否被视为有效(true 或 false)。
  • grablogo — 充当标志,以确定是否应将动态品牌推广应用于网络钓鱼页面(1 或 0)。
  • email — 表示受害者在网络钓鱼过程中提供的电子邮件地址。
  • icon — 指向图像文件(徽标)的 URL。
  • background — 指向背景图像的 URL。

用户输入有效凭证后,该凭证将发送到服务器:

em=email_address
pa=password

来自服务器的响应将包含以下示例:

{
"live":true,
"email":"email address",
"twofactor":true,
"role":false,
"edu":false,
"type":"business",
"twofactor_info":[
{
"method_name":"PhoneAppOTP",
"display":"",
"isDefault":true
},
{
"method_name":"PhoneAppNotification",
"display":"",
"isDefault":false
}
]
}

如果特定身份验证方法未标记为默认 ( is ),则函数会从用户界面中隐藏该方法。这可确保用户仅看到 default 方法。isDefaultfalsehideOption()

该代码使用正则表达式进行一些检查,以检测环境或代码本身是否被调试工具、注入的脚本或检测篡改。还存在自我验证检查和控制台篡改:

  • const _0x55de0f = new RegExp(‘function *\( *\)’);
    正则表达式以特定格式查找函数定义:或 .调试工具有时会在环境中引入额外的代码,例如 .function() { … }function () { … }function() { debugger; }
  • const _0x1da82d = new RegExp(‘\+\+ *(?:[a-zA-Z_$][0–9a-zA-Z_$]*)’, ‘i’);
    此正则表达式查找对变量名称 (++variableName) 的增量操作。调试工具可能会通过递增变量来循环访问对象或属性,例如:
let counter =0;
while (counter <100) {
 ++counter;
}
  • 该方法将两个正则表达式应用于与字符串(如 或 )连接的结果。如果任一检查失败,代码将调用 ,这可能是中断或停止执行的方法。否则,它会调用 ,后者将继续进一步验证。test_0x47c7e9chaininput_0x47c7e9('0')_0x5e3e02()
网络钓鱼工具包:WikiKit网络钓鱼工具包:WikiKit
测试方法和前两项检查
  • 在 中,如果输入参数的类型为 ,则它使用 JavaScript 的机制创建一个包含无限循环 () 的新函数。这可以防止调试器在运行时注入字符串类型数据或篡改执行流。_0x5152d1()_0x1001fastringwhile (true) {}constructor
function_0x5152d1(_0x1001fa) {
if (typeof _0x1001fa ==='string') {
returnfunction (_0x1599e0) {}
 .constructor('while (true) {}')
 .apply('counter')
  • 如果不是字符串,则函数执行数学运算 () 来检测异常。在正常情况下,此操作应返回,因为任何数字除以自身等于 。但是,如果发生篡改或是意外值(例如非数字输入),则结果可能是 NaN (Not-a-Number)。_0x1001fa_0x1001fa / _0x1001fa11_0x1001fa0
{
 ;('' + _0x1001fa / _0x1001fa).length !==1 || _0x1001fa %20 ===0
 ?function () {
returntrue
 }
  • _0x1001fa % 20 === 0也可能是 debugger 检查的一部分:condition 检查 input 值是否能被 20 整除。如果为 true,则脚本假定输入可能是调试器的重复循环或自动化过程的一部分。调试器有时会系统地循环访问数字或变量以分析程序行为。_0x1001fa

因此,每当脚本通过上述这些检查检测到异常或篡改时,就会触发该语句。该语句有时在脚本中用于挫败分析。例如,它可以通过强制调试器反复暂停来中断调试。debuggerdebugger

网络钓鱼工具包:WikiKit网络钓鱼工具包:WikiKit
Debugger 语句
  • Function 通过遍历常见的日志记录方法 ( 、 、 、 和 )并将其替换为占位符函数 (no-op) 来操作浏览器的对象。这将禁用将消息、警告或错误记录到控制台的功能,从而阻止分析师使用浏览器开发人员工具来分析脚本的行为。_0x2af670consolelogwarninfoerrorexceptiontabletrace

代码片段中的 、 、 、 、 、 和 等变量用于存储 Base64 编码的图像或图标。每个 Cookie 表示在特定错误条件下显示在网页上的图像。unRequnEmpwdRequnPwunCodeunSmsemCode

描述输入验证 (捕获用户输入) 和错误处理的表。

网络钓鱼工具包:WikiKit网络钓鱼工具包:WikiKit
存储 base64 编码图像的变量

WikiKit 根据用户的配置调整认证方式。三种主要方法(、 和 )是指与多重身份验证 (MFA) 机制对应的不同身份验证工作流程。PhoneAppNotificationPhoneAppOTPOneWaySMS

每种方法都会将特定参数(、 或 )与其他参数(如输入的电子邮件地址 () 和验证码 () )一起发送到 C2 服务器。auth=verify_appauth=verify_codeauth=verify_smsemcode

如果身份验证成功,用户将被重定向到 。outlook.office365.com/Encryption/ErrorPage.aspx?src=0&code=10&be=DM8PR09MB6088&fe=1

最近的活动(2024 年 12 月)一直在对凭据收集页面使用相同的 URL()。您可以在 Indicators of Compromise (入侵指标) 部分中查看 IOC。yugaljeeautomotive[.]com/z/pro/mentanance/auth

威胁搜寻

  • 查找到包含 “.jimdosite” 的远程 URL 的出站连接,检查 URL 中是否有此博客中描述的模式。
  • 查找 的出站连接 ,这表示用户已输入有效的凭据。outlook.office365.com/Encryption/ErrorPage.aspx?src=0&code=10&be=DM8PR09MB6088&fe=1
  • 任何。RUN 威胁情报查询:
    domainName:"yugaljeeautomotive.com" OR domainName:"app.salesforceiq.com"  

原文始发于微信公众号(安全狗的自我修养):网络钓鱼工具包:WikiKit

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月29日22:39:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   网络钓鱼工具包:WikiKithttps://cn-sec.com/archives/3567274.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息