ANY.RUN 的网络安全研究人员发现了一种复杂的新型 Android 恶意软件,名为 Salvador Stealer,它通过精心策划的网络钓鱼方案来窃取银行账户凭证和一次性密码(OTP)。
这种多阶段恶意软件伪装成合法的银行应用程序,诱骗用户泄露敏感的金融信息。
该恶意软件采用两阶段感染过程,首先是一个 dropper APK(应用程序包),它会在用户毫无察觉的情况下安装并启动真正的银行信息窃取有效载荷。
一旦激活,Salvador Stealer 就会显示一个看似可信的银行界面,提示受害者输入个人信息,包括手机号码、Aadhaar 号码、PAN 卡详细信息以及网上银行账户凭证。
ANY.RUN 的安全分析师在 2025 年 4 月 1 日的常规恶意软件监测操作中发现了这一威胁。
他们的分析显示,该恶意软件的名称源于在其代码内部对 Salvador 的引用,具体是在用于保存配置数据的 SharedPreferences 存储键中。
研究人员在其详细分析报告中解释道:“Salvador Stealer 特别危险的地方在于,它既能窃取登录凭证,又能窃取绕过双因素身份验证所需的一次性密码。”
“这实际上使金融机构实施的最常见安全措施之一失效了。”
短信拦截机制
该恶意软件最令人担忧的功能是其复杂的短信拦截机制,这使得攻击者能够捕获银行发送的验证码。
安装后,Salvador Stealer 会请求关键权限,包括接收短信(RECEIVE_SMS)、读取短信(READ_SMS)和发送短信(SEND_SMS)权限。
拦截过程从 Fitzgerald 服务类开始,该类注册了一个名为 Earnestine 的广播接收器来监控传入的消息:
this.smsReceiver = new Earnestine();
registerReceiver(this.smsReceiver, new IntentFilter(“android.provider.Telephony.SMS_RECEIVED”));
当一条短信到达时,该恶意软件会提取消息内容、发件人号码和时间戳:
SmsMessage sms = SmsMessage.createFromPdu((byte[]) pdu, “3gpp”);
String messageBody = sms.getMessageBody();
String senderId = sms.getOriginatingAddress();
long timestamp = sms.getTimestampMillis();
Salvador Stealer 采用双数据外发渠道来确保数据盗窃成功。它首先尝试将拦截到的消息转发到从命令服务器 “https://t15.muletipushpa.cloud/json/number.php” 获取的一个电话号码。
如果此操作失败,该恶意软件会转而使用 HTTP POST 请求,将捕获到的数据作为 JSON 有效载荷发送到另一个端点。
为了保持持久性,该恶意软件实施了复杂的重启机制。
即使用户终止了该服务,Salvador Stealer 也会使用Android 的 WorkManager 重新安排自身运行。
它还通过注册监听 BOOT_COMPLETED广播,在设备重启后仍能存活。
该恶意软件管理面板的发现(目前可公开访问)显示了一个带有印度国家代码的 WhatsApp 联系号码,这表明它可能与该地区的威胁行为者存在关联。
安全专家建议用户在安装银行应用程序时保持警惕,并且仅通过官方渠道验证所有应用程序。
发表评论
您还未登录,请先登录。
登录